测试经典API调用
匿名 · 更新于 2013/11/5
测试经典API调用
贝宝Sandbox是一个自包含的,模仿活贝宝生产环境的虚拟测试环境。它提供了一个屏蔽的空间,在那里你可以启动并观看您的应用过程中,贝宝的API调用,而不触及任何带电的PayPal帐户。
使用贝宝Sandbox测试和调试你的程序,利用贝宝的API。
本指南
本指南介绍了如何创建,管理和使用沙盒测试账户:
关于贝宝应用
当你的代码的PayPal应用程序,确保它的行为根据与贝宝应用的政策和指导方针。当你完成测试您的应用程序,将它投入生产,并去住!
开发者资源
沙箱概述
贝宝Sandbox反映在贝宝的生产服务器的功能。虽然一些贝宝的功能并不适用于沙箱(如关闭帐户,发放每月报表,存储航运喜好,以及贝宝店铺的支持),沙箱,平价与PayPal API的功能设置支持现场环境。这意味着你可以测试你的PayPal流程,并知道他们会在生产服务器上,因为他们做的沙箱环境中的行为相同。
通过使用虚构的沙盒测试帐户和其相关的身份验证凭据在您的PayPal API调用,您可以测试和调试应用程序没有引用任何真正的PayPal用户或他们的现场PayPal帐户。沙箱可以让你在安全的环境中运行你的应用程序,并为您提供一种方式来微调您的贝宝移动产品投入生产之前的例程。
当你开始使用沙盒测试帐户的交易,贝宝创建一个模拟交易的行为完全像一个事务环境中生活。所有交易的沙箱上的沙箱测试网站(https://www.sandbox.paypal.com)的跟踪,就像跟踪现场交易在贝宝的现场直播(https://paypal.com)。
沙箱环境
贝宝Sandbox环境包括以下内容:
- 沙盒测试网站(https://www.sandbox.paypal.com/)
- 沙箱帐户页面(通过https://developer.paypal.com访问)
在测试阶段,使用沙箱端点在每个贝宝的API请求你让你的测试帐户的详细资料。从Sandbox 帐户页面,创建和管理你的测试帐户。使用沙盒测试现场审查呼叫你使用你的测试帐户的关联交易。
提示: 任何测试的凭据登录到沙盒测试网站帐户与该帐户相关联的模拟交易的状况进行审查。
测试过程
与通过创建沙盒测试帐户,在您的PayPal交易过程中每一个用户实体表示。这里是测试过程的总结:
- 创建一个PayPal帐户登录开发人员网站
https://developer.paypal.com的。 - 创建一组虚拟沙盒测试帐户。
- 格式化您的PayPal API请求使用的细节,从你的测试帐户,并运行它们Sandbox的端点(次)。
- 审查和修改您的应用程序需要。
- 当你的应用程序是完全错误的功能和免费的,更新的API认证和端点目标去住。
提示: 当你创建一个新的PayPal账户,您必须验证帐户的电子邮件地址,然后才可以使用该帐户。做到这一点,应对PayPal发送的验证邮件。在几分钟之内签署,如果您没有收到验证邮件,请检查它没有被阻止或转移到垃圾邮件文件夹。
提示: 当创建您的PayPal的开发者账户,考虑创建一个帐户,你不介意与他人分享您的开发团队。通过这种方式,你就可以分享您的沙盒测试帐户,不影响你个人的PayPal账户的安全。然后,访问沙箱功能,登录到PayPal的开发者网站上使用您的开发人员PayPal帐户。
创建沙盒测试帐户
沙盒测试帐户都是虚拟的PayPal帐户只存在于沙盒环境。这些帐户代表用户参与模拟交易,你创建你运行你的应用程序在测试阶段的实体。至少创建一个测试帐号为每个用户表示在与PayPal的API生成的交易。
沙箱支持两种不同的测试帐户类型:
- 个人,代表买方,或发件人,在一个事务中。
- 企业,商家,或接收器,在一个事务中。
重要提示: 要测试一个典型的贝宝交易,你既需要业务测试帐户和一个个人的测试帐号。当您注册一个PayPal的开发者,沙箱会自动创建业务测试帐户(如调解人pp.merch01 @ example.com)及其相关的的经典API测试凭据。然而,要在沙箱中的测试呼叫,你还必须建立个人帐户作为买方在你的模拟交易。
提示: 如果你有一组现有的沙盒测试帐户,请参阅导入沙盒帐户从现有的开发中心帐户。
创建一个个人的测试帐户
创建一个个人的测试帐户,代表买方的交易中。
当你创建一个新的测试帐户,分配给您创建的电子邮件地址和密码值。您可以使用引用的测试帐户的电子邮件地址,在您的测试API调用。您还可以使用的电子邮件地址和密码登录到沙盒测试站点来查看和配置测试帐户值。
提示: 为了简化测试过程中,应考虑为所有的沙盒测试帐户使用相同的密码。
创建沙盒测试帐户
- 登录到开发人员网站https://developer.paypal.com和导航应用程序“>”沙箱帐户。
-
单击“ 创建帐户“按钮,填入以下字段:
<table class="table" style="max-width: 100%; background-color: transparent; border-collapse: collapse; border-spacing: 0px; width: 903px; margin-bottom: 22px;"> <tbody> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">帐户类型</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">勾选无论是<strong>个人</strong>或<strong>商业的</strong>单选按钮。</td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">电子邮件地址</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);"> <p style="margin: 0px 0px 11px;">不需要的电子邮件地址是真实的电子邮件地址,沙箱不发送任何电子邮件之外的沙箱环境。对Sandbox帐户的电子邮件,产生测试API请求的结果,列出<a href="https://developer.paypal.com/webapps/developer/dashboard/email" style="color: rgb(0, 136, 204); text-decoration: none;">通知</a> “选项卡上的开发人员网站,以及沙盒测试网站上。</p> <p style="margin: 0px 0px 11px;">使用指定的电子邮件参考价值在你的API调用,这个测试帐户登录到Sandbox的网站,当你想要查看详细信息与帐户相关联。</p> </td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">密码</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">密码必须是8-20个字母数字字符的长度。</td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">第一个和最后一个名字</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">可选的name字段接受字母数字字符。</td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">PayPal余额</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">虽然此字段是可选的,它是一个好主意,建立测试帐户与积极的银行结余。输入1和5000之间的整数值。</td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">银行验证帐户</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">您应该创建<em>验证的</em>和<em>未验证的</em>测试帐户,让你可以充分测试你的应用程序。</td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">选择支付卡</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">测试用不同的支付卡通过选择<b>发现</b>或<b>贝宝</b>支付<br /> (<em>个人账户</em>) <em>。</em></td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">信用卡类型</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">每个测试帐户,您必须选择一个单一的信用卡类型。沙盒一个模拟的信用卡号码与帐户相关联。</td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">登录贝宝</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">勾选<b>我要登录贝宝我的网站</b>中,并完成以下字段,使贝宝测试登录: <ul style="padding-right: 0px; padding-left: 0px; margin: 0px 0px 0px 25px;"> <li style="line-height: 22px;"><strong>显示名称</strong></li> <li style="line-height: 22px;"><strong>返回的URL</strong></li> <li style="line-height: 22px;"><strong>隐私政策网址</strong></li> <li style="line-height: 22px;"><strong>用户协议URL</strong></li> </ul> <p style="margin: 0px 0px 11px;">(<em>业务仅占</em>)<em>。</em></p> </td> </tr> <tr> <th style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">笔记</th> <td style="padding: 8px; line-height: 22px; vertical-align: top; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 221, 221);">添加此测试帐户的具体细节。</td> </tr> </tbody> </table> </li> <li style="line-height: 22px;">单击“ <strong>创建帐户“,</strong>完成帐户的详细资料后。</li>
与其他的测试帐户的帐户页面上被列为新的测试帐户。
创建业务测试帐号
沙箱会自动创建你的第一个商业的测试帐户,当你签署了开发人员帐户developer.paypal.com。贝宝生成测试业务由调解人追加到您的电子邮件名称,帐户名和帐户被分配了一套经典的测试API认证,在沙箱中,你可以用它来 创建模拟的PayPal交易。
为了测试经典的API调用,使用测试企业账户价值随着从个人测试您创建的帐户(如创建一个个人的测试帐户)的值。
一些贝宝电话涉及超过一个单一的买方和卖方对。在测试阶段,您需要创建满足用户参加你的PayPal交易的实体所需的所有的测试帐户。例如,平行支付电话和自适应调用都需要两个不同的商业账户,但出于不同的原因。在这些情况下,您需要创建额外的业务测试帐户的实体交易中发挥应有作用。
对于不同的测试帐号角色的更多信息,请参阅规划您的测试帐号。
在测试交易接受信用卡
使用信用卡作为付款方式,在您的测试交易,您必须配置一个测试企业账户作为PayPal付款Pro帐户:
- 创建一个测试企业账户。
- 导航到商业帐户的个人资料页面,并点击升级到Pro的链接。
- 在结果屏幕上,单击“ 启用“。
提示 一旦您启用PayPal付款临测试业务帐户,设置是永久性的,你不能撤消该帐户的配置。我们建议您创建多个业务测试帐户使用不同的设置,以测试所有的变化,您可能需要与您的应用程序处理。
让你的API的测试认证
所有的PayPal API请求要求API凭据来验证呼叫正在通过有效的PayPal帐户。沙箱环境的呼吁并没有什么不同,但它们需要使用测试分配到一个沙箱业务帐户的凭据。你需要一个特定的API调用的凭据的详细信息,请参阅API参考的(S)你正在使用PayPal的操作。
沙箱分配给每个企业帐户的一组的经典API测试凭据。测试认证通过导航简介> API凭据 “选项卡上的企业帐户,你要使用在您的请求:

提示: 贝宝沙箱和生产环境使用两套不同的API证书。请务必使用正确的凭据集你解决端点。
注意: 要获得测试认证的PayPal REST API调用,创建一个应用程序从应用>我的应用程序“页面,您的开发人员帐户。创建应用程序生成测试和现场的凭据与您的应用程序,你可以使用。
自适应的API的AppID
另外的API认证,API操作自适应使使用的AppID价值。沙箱中使用一个全球测试的App ID值保持不变:
#沙盒测试APPID: APP-80W284485P519543T
重要提示: 如果您的应用程序使用一个AppID,你必须提交最终应用到PayPal进行审查,以获得环境中生活,你可以用一个AppID值。
测试要求
一旦你设置你的测试帐户,并有你的API测试凭据,你准备好,使贝宝的沙箱环境的要求。
下面卷曲命令是一个快速结帐调用的沙箱。在命令行中执行请求替换命令中的那些从沙箱业务帐户凭据值,并删除换行符。如果您的计算机上安装卷曲,你应该得到成功响应请求:
卷曲-S - 不安全的https://api-3t.sandbox.paypal.com/nvp-D
“USER = {YourUserID}
PWD = {YourPassword}的
签名= {YourSignature}
与方法= SetExpressCheckout
VERSION = 98
与PAYMENTREQUEST_0_AMT = 10
&PAYMENTREQUEST_0_CURRENCYCODE =美元
&PAYMENTREQUEST_0_PAYMENTACTION =销售
cancelUrl = http://www.example.com/cancel.html
RETURNURL = http://www.example.com/success.html“
您还可以使用的API浏览器到一个测试经典的API调用。使用测试凭据分配到一个沙箱业务帐户的API浏览器的相应字段。
查看交易通知
在交易处理,贝宝发送各种通知的账户参与交易。根据不同的处理流程,通知可以被发送到的买方(发送方)和商人帐户(接收器)。
沙箱发送交易活动的通知,就像现场直播。然而,从来没有发送电子邮件通知所产生的沙箱之外的沙箱环境中。相反,所有的沙箱通知发送到测试帐户发送通知,通知页面。
通过审查帐户通知或者帐户的通知页面(如下图所示),或者通过登录到沙盒测试现场使用测试帐户凭据,您要查看。

要查看测试网站上的帐户关联的电子邮件,使用要检查测试帐户相关联的电子邮件和密码登录到网站。
去住!
你已经完全调试你的应用程序后,你会想更新您的PayPal的所有请求,因此他们解决现场环境,移动你的代码投入生产。要做到这一点,在API请求中使用更新端点和身份验证凭据。此外,如果你使用任何自适应的API,你会需要提供的App ID的贝宝的问题后,您提交您的申请进行审核。
请参阅与您的应用程序的完整细节如何将您的应用程序的测试阶段生猪生产阶段将现场直播。
提示与技巧
以下各节将展示如何充分利用贝宝Sandbox:
规划你的测试帐户
测试帐户,你需要的数量取决于参与您的PayPal交易的用户实体的数量。每一个PayPal交易涉及至少两个实体,一个“买方”和“卖方”。然而,根据交易流程的复杂性,你可能需要创建额外的测试帐户。例如,平行付款和自适应API调用每一个涉及两个以上的用户实体。
沙盒测试帐户有两种类型,每种类型可以扮演不同的角色在您的PayPal交易:
- 个人测试帐号
- 业务测试帐号
下表描述了这些帐户类型扮演的角色:
| 帐户类型 | 昵称 | 描述 |
|---|---|---|
| 业务 | 卖方, 接收器, 商人, API来电 |
用户是谁提供的商品或服务的实体。这是该帐户,接收交易资金,并代表商家,在您的沙箱交易。
|
要启动,你需要至少一个个人帐户(买方)和一个业务(卖方)帐户。如果需要,创建其他帐户来表示您的贝宝交易流程中存在额外的实体。
商人的API与自适应的API
经典的状态的API被分成两个不同的集
- 商人的API
- 商人API包括API。
- 自适应的API
- 自适应的API包括自适应付款,自适应核算,进销存服务,许可服务。
注: 经典的API是不同于贝宝的REST API集。上的REST API的详细信息,请参阅您的第一次通话。
通常情况下,商人API操作只需要两个用户,发送(个人账户)和一个接收器(企业账户)。
自适应API操作,但是,还需要一个API的来电,这是代表的API调用的应用程序,它的所有者的卖家帐户。在这里,API呼叫者帐户是有别于卖方帐户,代表商人(和用户单位,收集从交易的所得款项)。
除了API证书,你还需要一个作出自适应的API的所有请求的AppID。虽然在沙箱中进行测试,使用下面的AppID测试值:
沙箱测试应用程序ID:APP-80W284485P519543T
管理您的沙箱帐户
要管理的沙箱帐户:
- 登录到PayPal的开发者网站和导航应用程序“>”沙箱帐户。
- 点击您要管理的帐户的相关资料链接。

账户详细信息 “对话框显示,它可以让你查看和配置各种帐号设置。

更改测试帐户密码
通过配置文件 “选项卡上的帐户的详细信息 “对话框中,你可以改变一个测试帐户的密码。
删除沙箱帐户
从Sandbox帐户页面,您可以删除现有的沙盒测试帐户:
- 在左栏的帐户(S)你想删除的框中打勾。
-
单击“ 删除“按钮。
<p style="margin: 0px 0px 11px;">沙盒将显示一条消息,确认该测试帐户已被删除。</p> </li>
从现有的开发人员中心帐户导入沙盒帐户
如果你有一组现有的沙盒测试帐户在开发中,你可以直接将它们导入到沙盒帐户如下:
在帐户页面的顶部,单击“ 导入数据“。PayPal开发商Central帐户,你要导入并单击“ 导入数据“输入电子邮件地址和密码。
沙盘经理将导入所有的测试帐户和相关的数据与指定的开发人员中心帐户,您的PayPal付款专业版帐户转换业务测试帐户,买家疮帐户转换为个人测试帐户。
使用沙盒测试网站
沙盒测试网站(https://www.sandbox.paypal.com)是面向客户的沙箱环境中的元素。测试网站是一个几乎相同的实例,现场的PayPal生产现场。除了 少数例外,测试网站上的行为,确切地反映现场的PayPal网站上看到什么贝宝的客户,商户和开发商。
使用沙盒测试站点项目如下:
- 查看和管理您的沙箱文本账户。
- 创建和测试PayPal付款标准功能:
- 接受PayPal作为一种支付机制的网站上进行测试。
- 测试在单一交易中使用一个单一的支付(购物车)购买多个项目。
- 测试从测试买方退还款项。
- 测试订阅按钮。
- 回顾你的模拟交易产生的通知,以及通知由IPN模拟器生成。
注意: 您需要一个买家测试帐户,以完成交易,在沙箱中。完成交易,通常需要经历一个PayPal作为买家的采购流程。一定要执行测试测试现场交易(https://www.sandbox.paypal.com)的,而不是在现场的PayPal网站(https://www.paypal.com)。
测试付款回顾交易
贝宝付款审查现场环境始终活跃在贝宝的生产服务器会自动扫描所有支付的各种风险因素。在沙箱中,这是相反的,所有的交易通过支付违约审查。
如果选择付款付款审查,它的状态设置为待。要测试您的应用程序如何处理支付审查方案,使一个单独的测试帐户的付款审查选项,然后开始使用该帐户的交易。
为了使审查测试帐户上支付,导航到该帐户的个人资料“>”设置“选项卡,并设置在审查付款。启用时,发起该帐户所有交易的状态将被设置为待。
负面测试测试错误条件
默认情况下,沙盒模拟尽可能接近现场PayPal网站,你必须复制特定的错误在您的测试呼叫通过创建所需的确切条件触发错误条件。沙盒,在其默认设置,是一个积极的测试环境,非常适合测试程序,因为它遵循着一个错误的路径。
输入负面测试,一个关键的测试工具,可以让你迫使流经你想测试的特定错误条件。使用负的测试触发以下类型的错误:
- 错误,导致一个PayPal的API调用。
- 相关的错误虚拟的码头和
DoDirectPayment操作(验证和信用卡验证错误)。
您可以强制两种类型的API错误:涉及的交易金额,不涉及金额。
注: 负面测试仅适用于沙盒,你不能强迫或模拟现场的PayPal环境的错误条件。负面测试可以用经典的PayPal API 2.4及更高版本。
启用负面测试
- 导航的简介商家的测试企业账户“>”设置“页面(请参阅管理您的沙箱帐户的详细信息)。
- 在“ 个人资料 “选项卡,设置负面测试。
设置沙箱进入的负面测试状态,包括商家的交易。没有此配置中,沙箱不会引发错误条件,除非通过正常的事务处理引发错误。
测试API的错误处理例程
通过设置特定的参数错误代码值要触发抛出一个错误条件。
选择从下表中要使用的参数,并指定要触发错误使用通用API错误中列出的代码值的。
例如,使用值10755触发一个“不支持的货币”的错误。您传递的实际值,使用触发错误的字段,取决于要触发的错误:
-
触发错误条件的数量相关的领域中,指定用两位数字到小数点右侧的一个数字一个错误代码值。例如,指定一个值
107.55触发10755错误。 -
要触发并不构成相关领域上的错误,指定整体中的错误代码。例如,使用值
10539,触发“拒绝付款”的错误。
下表列出了API操作触发错误的字段的NVP名或SOAP元素,并描述如何设置字段中的值:
| API名称 | NVP场 | SOAP元素 | 描述 |
|---|---|---|---|
BAUpdate V2.4及更高版本 |
MPID |
MPID |
指定完整的错误代码触发错误。例如,触发器10755错误代码10755。 |
BAUpdate v3.0和更高版本 |
REFERENCEID |
ReferenceID |
指定完整的错误代码触发错误。例如,触发器10755错误代码10755。 |
BillUser |
AMT |
量 |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,107.55触发器错误代码10755。 |
DoAuthorization |
AMT |
量 |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,106.23触发器错误代码10623。 |
DoCapture |
AMT |
量 |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,106.23触发器错误代码10623。 |
DoDirectPayment |
AMT |
的OrderTotal |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,107.55触发器错误代码10755。 |
DoExpressCheckoutPayment |
AMT |
的OrderTotal |
指定完整的错误代码触发错误。例如,触发器10539错误代码10539。 |
DoReauthorization |
AMT |
量 |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,106.23触发器错误代码10623。 |
DoVoid |
AUTHORIZATIONID |
AuthorizationID |
指定完整的错误代码触发错误。例如,10623触发器错误代码10623。 |
GetExpressCheckoutDetails |
TOKEN |
象征 |
指定完整的错误代码触发错误。例如,触发器10539错误代码10539。 |
GetTransactionDetails |
transactionId的 |
transactionId的 |
指定完整的错误代码触发错误。例如,触发器10539错误代码10539。 |
MassPay |
电子邮件主旨 |
电子邮件主旨 |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,107.55触发器错误代码10755。 |
RefundTransaction |
AMT |
量 |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,107.55触发器错误代码10755。 |
SetExpressCheckout |
MAXAMT |
MaxAmount |
指定的错误代码,用两位数字的小数点右边的数值作为触发。例如,107.55触发器错误代码10755。 |
TransactionSearch |
INVNUM |
InvoiceID |
指定完整的错误代码触发错误。例如,触发器10539错误代码10539。 |
UpdateAuthorization |
transactionId的 |
transactionId的 |
指定完整的错误代码触发错误。例如,11094触发器错误代码11094。 |
AddressVerify |
不支持负面测试。 |
注: 如果触发值不是一个有效的错误代码的API被测试的,积极的测试发生的请求。在这种情况下,可能会出现不同的错误。
测试值相关的错误
考虑这样一个例子,测试授权错误(#106210)DoAuthorization。错误涉及到的交易金额,所以我们指定的错误代码在AMT领域:
卷曲- Ş - 不安全的HTTPS :/ / API - 3吨沙箱贝宝COM / NVP - ð
“USER = {yourUID}
&PWD = {yourPSWD}
与签名= {yourSig}
方法= DoAuthorization
&VERSION = 100
&TRANSACTIONENTITY = ORDER
transactionId的= O-1N564174MM387483R
AMT = 106.10“
如果负面测试已开启为业务测试帐户,您会收到以下(换行的可读性)类似的错误消息:
TIMESTAMP=2013%2d08%2d13T00%3a29%3a00Z
&CORRELATIONID=78d43b44c9e0e
&ACK=Failure
&VERSION=100
&BUILD=7161310
&L_ERRORCODE0=10610
&L_SHORTMESSAGE0=Amount%20limit%20exceeded%2e
&L_LONGMESSAGE0=Amount%20specified%20exceeds%20allowable%20limit%2e
&L_SEVERITYCODE0=Error
非量测试相关的错误
下面的例子演示了如何强制一个错误代码,不涉及交易金额。我们将使用一个的呼叫触发DoVoid误差#10603,买方账户受到限制。正如我们在表中,需要使用AUTHORIZATIONID领域触发一个错误DoVoid的。
的DoVoid逆转(或释放),那就是商人与客户订单或授权。这里有一个呼叫负面测试模式会产生一个错误:
卷曲- Ş - 不安全的HTTPS :/ / API - 3吨沙箱贝宝COM / NVP - ð
“USER = {yourUID}
&PWD = {yourPSWD}
与签名= {yourSig}
与方法= DoVoid
&VERSION = 100
AUTHORIZATIONID = 10603“
呼叫触发#10603错误,因为我们看到以下响应:
TIMESTAMP=2013%2d08%2d13T19%3a53%3a09Z&CORRELATIONID=cfcf54037bca8
&ACK=Failure
&VERSION=100
&BUILD=7161310
&L_ERRORCODE0=10603
&L_SHORTMESSAGE0=The%20buyer%20is%20restricted%2e
&L_LONGMESSAGE0=The%20buyer%20account%20is%20restricted%2e
&L_SEVERITYCODE0=Error
返回多个响应的测试错误
考虑这样一个例子,触发RefundTransaction错误#10009,返回一个错误,14套不同的错误。这是一个量的错误类型,所以我们设定触发在AMT的输入字段:
卷曲- Ş - 不安全的HTTPS :/ / API - 3吨沙箱贝宝COM / NVP - ð
“USER = {yourUID}
&PWD = {yourPSWD}
与签名= {yourSig}
与方法= RefundTransaction
&VERSION = 100
&transactionId的6M473779DJ437830A
&REFUNDTYPE部分
AMT = 100.09“
正如你可以看到从以下回应(截断清晰),沙箱返回所有可能的错误代码集。一个强大的应用程序正常处理所有可能的变化。
TIMESTAMP=2013%2d08%2d13T20%3a16%3a56Z
&CORRELATIONID=196d832d49033
&ACK=Failure
&VERSION=100
&BUILD=7161310
&L_ERRORCODE0=10009
&L_ERRORCODE1=10009
&L_ERRORCODE2=10009
&L_ERRORCODE3=10009
&L_ERRORCODE4=10009
&L_ERRORCODE5=10009
&L_ERRORCODE6=10009
&L_ERRORCODE7=10009
&L_ERRORCODE8=10009
&L_ERRORCODE9=10009
&L_ERRORCODE10=10009
&L_ERRORCODE11=10009
&L_ERRORCODE12=10009
&L_ERRORCODE13=10009
&L_ERRORCODE14=10009
&L_SHORTMESSAGE0=Transaction%20refused
&L_SHORTMESSAGE1=Transaction%20refused
&L_SHORTMESSAGE2=Transaction%20refused
...
&L_SHORTMESSAGE13=Transaction%20refused
&L_SHORTMESSAGE14=Transaction%20refused
&L_LONGMESSAGE0=You%20can%20not%20refund%20this%20type%20of%20transaction
&L_LONGMESSAGE1=You%20are%20over%20the%20time%20limit%20to%20perform%20a%20refund%20on%20this%20transaction
&L_LONGMESSAGE2=The%20refund%20amount%20specified%20for%20eBay%20dispute%20refund%20is%20invalid
...
&L_LONGMESSAGE13=This%20transaction%20has%20already%20been%20fully%20refunded
&L_LONGMESSAGE14=The%20partial%20refund%20amount%20must%20be%20less%20than%20or%20equal%20to%20the%20remaining%20amount
&L_SEVERITYCODE0=Error
&L_SEVERITYCODE1=Error
...
&L_SEVERITYCODE13=Error
&L_SEVERITYCODE14=Error
&REFUNDSTATUS=None
&PENDINGREASON=None
测试虚拟的终端和DoDirectPayment错误处理
您可以使用负面测试设置,以测试虚拟终端或DoDirectPayment例程。沙箱支持测试AVS和CCS的错误类型。
测试AVS错误
地址生成验证错误使用AVS的错误,你想测触发值。
虚拟终端,输入到地址1号线的虚拟终端显示领域的触发值。
对于电话DoDirectPayment,在街上领域的调用(使用SOAP调用的详细地址)指定的代码。例如,在所有的情况下,使用以下值触发AVS代码A:123 AVS_A街
注: AVS码值是大小写敏感的(所有字符必须为大写)。例如,AVS_A是有效的触发而avs_a不是。
下表列出了有效的AVS编码,相应的触发器,每个错误的条件和说明:
| AVC代码 | 触发值 | 描述 |
|---|---|---|
一 |
AVS_A |
被指定的地址匹配,但没有邮政编码,设置如果“PartialAddress匹配”的风险控制在一个错误的结果。 |
乙 |
AVS_B |
被指定的地址匹配,但没有邮政编码,设置如果“PartialAddress匹配”的风险控制在一个错误的结果。 |
Ç |
AVS_C |
国际地址没有地址信息,结果在一个错误,如果“无地址匹配”的风险控制设置。 |
ð |
AVS_D |
精确匹配(没有错误)。国际地址和邮政编码比赛。 |
ê |
AVS_E |
不允许MOTO(互联网/手机)的交易。 |
F |
AVS_F |
精确匹配(没有错误)。英国地址和邮政编码比赛。 |
ĝ |
AVS_G |
全球服务不可用;一个错误,如果“服务不可用”/“不支持”的风险控制设置。 |
我 |
AVS_I |
国际服务不可用,在一个错误的结果,如果“服务不可用”/“不支持”的风险控制设置。 |
Ñ |
AVS_N |
没有地址信息,结果在一个错误,如果“无地址匹配”的风险控制设置。 |
P |
AVS_P |
邮政编码的比赛,但没有指定地址,结果在一个错误,如果“部分地址匹配”的风险控制设置。 |
ŗ |
AVS_R |
重试,如果在一个错误的结果“服务不可用/不支持”的风险控制设置。 |
Ş |
AVS_S |
不支持的服务,结果在一个错误,如果“服务不可用”/“不支持”的风险控制设置。 |
ü |
AVS_U |
服务不可用;一个错误,如果“服务不可用”/“不支持”的风险控制设置。 |
W |
AVS_W |
9位邮政编码的比赛,但没有指定地址,设置一个错误,如果“部分地址匹配”的风险控制的结果。 |
X |
AVS_X |
精确匹配(没有错误)。完整的地址和9位数的邮政编码比赛 |
Ÿ |
AVS_Y |
精确匹配(没有错误)。完整的地址和5位数的邮编匹配。 |
Ž |
AVS_Z |
5位数的邮政编码的比赛,但没有指定地址,结果在一个错误,如果“部分地址匹配”的风险控制设置。 |
测试采用AVS代码DoDirectPayment
考虑设立一个例子,AVS码à随着API错误代码#10755在DoDirectPayment呼叫测试。代码A表示“没有邮政编码被指定为”和“部分地址匹配结果中的一个错误,如果”风险控制设置,是否有其他错误的发生:
卷曲- Ş - 不安全的HTTPS :/ / API - 3吨沙箱贝宝COM / NVP - ð
“USER = {yourUID}
&PWD = {yourPSWD}
与签名= {yourSig}
方法= DoDirectPayment
&VERSION = 100
&CREDITCARDTYPE =签证
与ACCT = 4683075410516684
EXPDATE = 112007
和CVV2 = 808
AMT = 107.55
FIRSTNAME =设计师
&LASTNAME =图片查看
与IP地址= 255.55.167.002
&STREET = 1234%20AVS_A%20Street
&CITY =圣%20Jose
STATE = CA
&COUNTRY =美国%20States的
ZIP = 95110
&COUNTRYCODE =美国
&SHIPTONAME =的莱尼%20P%20Rico
&SHIPTOSTREET = 1234%20Easy的%20Street
SHIPTOSTREET2 =机场%2022%20bis
&SHIPTOCITY =%20Orleans
&SHIPTOSTATE LA
&SHIPTOCOUNTRY =美国
&SHIPTOZIP = 70114
&PAYMENTACTION授权
&FIZBIN = foo的
的请求调用以下响应:
TIMESTAMP=2013%2d08%2d13T20%3a16%3a56Z
&CORRELATIONID=a7cbf2d4d83dc
&ACK=Failure
&L_ERRORCODE0=10555
&L_SHORTMESSAGE0=Filter%20Decline
&L_LONGMESSAGE0=This%20transaction%20cannot%20be%20processed%2e
&L_SEVERITYCODE0=Error
&L_ERRORCODE1=10755
&L_SHORTMESSAGE1=Unsupported%20Currency%2e
&L_LONGMESSAGE1=This%20transaction%20cannot%20be%20processed%20due%20to%20an%20unsupported%20currency%2e
&L_SEVERITYCODE1=Error
&VERSION=100
&BUILD=7161310
注: 如果你没有指定一个AVS的风险控制值,贝宝返回AVS的代码X。
测试CVV错误
你可以模拟信用卡验证通过触发一个从虚拟终端CVV错误或作出DoDirectPayment呼叫。
指定要生成指定的触发值值CVV2通话领域的CVV码。从虚拟终端,输入到信用卡安全码现场填写表格时,触发值。
下表列出了有效的CVV码,相应的触发器,每个错误的条件和说明:
| AVC代码 | 触发值 | 描述 |
|---|---|---|
中号 |
115 |
CVV2比赛(没有错误)。 |
Ñ |
116 |
CVV2不匹配。 |
P |
120 |
交易不会被处理。 |
Ş |
123 |
不支持的服务。 |
ü |
125 |
服务不可用。 |
X |
130 |
没有回应。 |
测试CVV代码使用DoDirectPayment
考虑这样一个例子,设置了检测CCV代码的N在DoDirectPayment,这表明在卡验证码不匹配:
卷曲- Ş - 不安全的HTTPS :/ / API - 3吨沙箱贝宝COM / NVP - ð
“USER = {yourUID}
&PWD = {yourPSWD}
与签名= {yourSig}
方法= DoDirectPayment
&VERSION = 100
&CREDITCARDTYPE =签证
与ACCT = 4683075410516684
EXPDATE = 112007
&CVV2 = 116
与AMT = 1.55
FIRSTNAME =设计师
&LASTNAME =图片查看
与IP地址= 255.55.167.002
&STREET = 1234%20AVS_A%20Street
&CITY =圣%20Jose
STATE = CA
&COUNTRY =美国%20States的
ZIP = 95110
&COUNTRYCODE =美国
&SHIPTONAME =的莱尼%20P%20Rico
&SHIPTOSTREET = 1234%20Easy的%20Street
SHIPTOSTREET2 =机场%2022%20bis
&SHIPTOCITY =%20Orleans
&SHIPTOSTATE LA
&SHIPTOCOUNTRY =美国
&SHIPTOZIP = 70114
&PAYMENTACTION授权
&FIZBIN = foo的
的请求调用以下响应:
TIMESTAMP=2013%2d08%2d13T20%3a16%3a56Z
CORRELATIONID=2499856319532
&ACK=Failure
&L_ERRORCODE0=15004
&L_SHORTMESSAGE0=Gateway%20Decline
&L_LONGMESSAGE0=This%20transaction%20cannot%20be%20processed%2e%20Please%20enter%20a%20valid%20Credit%20Card%20Verification%20Number%2e
&L_SEVERITYCODE0=Error
&VERSION=100
&BUILD=7161310
使用即时付款通知(IPN)模拟器
即时付款通知模拟器模拟发送通知的通知处理。模拟器是一个很好的工具,可以用来验证您的IPN处理程序正确处理来自PayPal发送的交易通知。
要送一个模拟的IPN消息:
- 导航应用> IPN模拟器。
- IPN处理程序的URL“字段中填入您的IPN侦听的URL。
-
选择要产生下拉的交易类型,并填写表格,你需要测试的通知中指定的细节的通知类型。
<p style="margin: 0px 0px 11px;">IPN模拟器显示每个通知类型的默认值集。默认情况下,模拟器显示只是形式的人口领域。检查底部的形式<strong>显示所有字段,</strong>查看所有可用的特定通知类型的字段。</p> </li> <li style="line-height: 22px;">有关详情载时,单击底部的形式<strong>发送IPN</strong>派单IPN消息。该模拟器的结果显示在页面顶部的操作。</li>
但是你认为有必要修改模拟器领域。但是,请注意,模拟器不检查你的消息字段设置的有效性。
在沙箱中测试IPN处理
发送的通知,从模拟器和一个活IPN消息之间的唯一区别是的状态包括test_ipn的变量通知在模拟。要设立Ş沙箱帐户来处理互穿网络,单击“ 沙盒测试网站的测试帐号,如果你通过一个真实账户继续。有关更多信息,请参阅“ 即时付款通知指南。
帐户的命名约定
测试时所有的贝宝帐户的变化,很可能你会创造了多个测试帐户。如果你需要创建一个大组的测试帐户,这是一个好主意,采取统一的帐户命名约定,以帮助您跟踪不同的帐户,仅由他们的名字。
沙箱允许你创建的帐户名称的电子邮件地址。有了这个,你可以创建一个命名约定,最大限度地提高信息包含在您的帐户名。
下面的属性列表显示的方式来查看沙盒测试账户:
- 一个帐户可以是一个(P)ersonal或(B)的usiness帐户。
- 一个帐户可以(V)erified的,或(U)nverified了。
- 一个帐户可以有一个(C)的,或者不信用卡。
使用这些帐户属性中,我们可以得出以下Sandbox用户帐户的前缀列表:
| 帐户名称前缀 | 个人 | 业务 | 已验证 | 信用卡 |
|---|---|---|---|---|
PVC |
X | X | X | |
光伏 |
X | X | ||
个人计算机 |
X | X | ||
P |
X | |||
BVC |
X | X | X | |
BV |
X | X | ||
BC |
X | X |
为了避免歧义,相似类型的帐户分配一个数字。
使用此帐户命名约定,可以一看便知该的帐户BV1@example.com是商业验证的帐户,没有信用卡,而PUC3@example.com验证是一个个人帐户,只使用信用卡作为资金来源。
当然,你采用的命名惯例可能会从这里提出一个不同。关键是要创造一个满足您的需求,简化您的测试场景。测试快乐!
