从developer.sandbox.com模拟IPR for recurring_payment_skipped

时间:2015-02-13 10:50:49

标签: paypal paypal-ipn paypal-subscriptions

我需要在定期付款失败时模拟IPN。然后,我的应用程序可以创建创建待定发票并将其发送给客户。

我搜索并发现我需要设置将在txn_type

以下处理的IPN
  • recurring_payment_skipped
  • recurring_payment_failed

这两个是否足够?

此外,最近提供了一个名为IPN Simulator的新工具,您可以在其中将示例IPN发送到网址。它仅支持txn_type以下

  • web_accept(eCheck-pending,eCheck-rejected,eCheck-complete)
  • cart(快速结帐,购物车结帐)
  • web_accept(网络接受,退款)

    等等。但不是recurring_payment_skippedrecurring_payment_failed

我在哪里可以模拟那些?

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您是对的,目前,IPN Simulator不支持订阅的交易类型。昨天,2015年5月29日,我在PayPal-PHP-SDK github上提出了这个请求

https://github.com/paypal/PayPal-PHP-SDK/issues/316

有一种解决方法,

对于IPN模拟器,我选择一些交易类型,如“购物车结账”。 然后在“自定义”字段中我放入“sim”。

在我的IPN监听器中,我有一块代码检查是否存在 “custom”字段设置为“sim”,如果是,则我硬编码 测试值。

   // if data is coming from the IPN Simulator then
   // just hard code the data in here
   if ( $rawData[custom] == "sim") {
      $rawData[txn_type] = "recurring_payment";         
      $rawData[recurring_payment_id] = "I-ABCDEF123456";
   }

如果“custom”未设置为“sim”,那么您的IPN侦听器会绕过此选项 代码块和函数正常。 注意:rawData是用于保存原始数据的数组。一开始 在IPN监听器中,我获取所有原始数据并将其放入数组中。

这将允许您使IPN脚本正常工作, 同时,不要干扰任何其他真实的IPN数据。