模拟支付宝沙箱中的失败IPN交易

问题描述:

我有一个应用程序使用Paypal的IPN接口,指向沙箱网站,而它正在开发中。模拟支付宝沙箱中的失败IPN交易

我已经正确处理成功案例,以及我在帐户设置过程中意外生成的失败案例;-)但是,我无法找到的是如何模拟被拒绝,退款或撤销的交易(其他而不是通过测试工具生成一个完全虚假的IPN,但这不会与我的交易结束,所以不是一个很好的测试)。我试过启用负面测试,但似乎没有做任何不同的事情。

这些结果是否可以使用沙箱进行测试,如果有,我需要设置什么来创建它们?谢谢:-)

编辑:这是提交测试交易的表单代码。

<form id="payForm" method="post" 
     action="https://www.sandbox.paypal.com/cgi-bin/webscr"> 
    <input type="hidden" name="cmd" value="_xclick" /> 
    <input type="hidden" name="business" 
         value="[email protected]" /> 
    <input type="hidden" name="item_number" value="1_25_2013-03-2221:02:02.063" /> 
    <input type="hidden" name="item_name" 
         value="ISM Print Subscription - One Year" /> 
    <input type="hidden" name="amount" value="20.00" /> 
    <input type="hidden" name="no_shipping" value="1" /> 
    <input type="hidden" name="return" 
         value="http://ism.gregwebb.co.uk/?p=PaymentReceived" /> 
    <input type="hidden" name="rm" value="" /> 

    <input type="hidden" name="notify_url" 
         value="http://ism.gregwebb.co.uk/Payment/Paypal/IPNRecv.aspx" /> 
    <input type="hidden" name="cancel_return" 
         value="http://ism.gregwebb.co.uk/?p=PaymentCancelled" /> 
    <input type="hidden" name="currency_code" value="GBP" /> 
    <input type="hidden" name="custom" value="1_25_2013-03-2221:02:02.063" /> 
</form> 

您可以在您的测试帐户启用付款审查,允许你进行测试。您还可以使用特定值在处理交易时触发特定条件。你需要使用负面测试。您可以在沙盒上找到更多信息并进行负面测试here

默认情况下,Sandbox尽可能模仿现场PayPal网站。这意味着只有通过创建确切的条件和事件序列来提高错误才能复制错误条件。 Sandbox是一个积极的测试环境,它非常适合测试程序逻辑,因为它遵循无错路径。但是,您也可以使用沙盒进行负面测试,这意味着您可以强制流量通过您期望遇到的不同错误条件。

使用负面测试,以测试对以下两种错误:

Errors that result from calling a PayPal API. 
Address verification and credit card validation errors that occur through Virtual Terminal, or by calling DoDirectPayment. 

注:负面测试仅适用于2.4及更高版本的经典贝宝的API。

您通过在传递给API操作的字段中设置错误值来引发错误状况。通过将不同的输入值设置为错误状态,您可以触发API来响应特定的错误情况。负面测试仅在沙盒中可用;您无法强制或模拟现场贝宝网站上的错误情况。

要启用负面测试:

Navigate to the Profile > Settings page of your test merchant's Business account. 
Set Negative Testing to On. 

这台沙箱成阴性测试状态,其中包括商家的交易。如果没有这种配置,Sandbox不会引发错误情况,除非错误会在默认的正面测试环境中引发。

+0

谢谢(并且抱歉,Paypal的新开发站点的缓慢回复导致了我一些问题) - 不幸的是我的负面测试开启了,但付款仍然只是直接通过成功... – eftpotrm 2013-03-21 13:04:16

+0

您能否提供API请求您正在发送的API响应以及您正在发送的API响应。否则,您可以在www.paypal.com/mts上打开一张门票并提供门票号码,我可以用我需要的信息拿到门票。 – 2013-03-21 15:58:42

+0

嗨乍得 - 实际上你后面有什么信息,对不起?它向https://www.sandbox.paypal.com/cgi-bin/webscr发布请求。如果更容易,我很乐意让您访问测试网站? – eftpotrm 2013-03-22 12:53:34