2

我有一个使用 Paypal 的 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="greg_1362574680_biz@gregwebb.co.uk" />
    <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>
4

1 回答 1

1

您可以在您的测试帐户上启用付款审查以允许您对此进行测试。您还可以在处理事务时使用特定值来触发特定条件。您将需要使用负面测试。您可以在此处找到有关沙盒和负面测试的更多信息。

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

使用否定测试来测试以下类型的错误:

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 版及更高版本的经典 PayPal API。

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

要启用负面测试:

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

这会将沙盒设置为包括商家在内的交易的负面测试状态。如果没有此配置,沙盒不会引发错误条件,除非在默认的正面测试环境中会引发错误。

于 2013-03-08T14:35:49.333 回答