我需要在定期付款失败时模拟IPN。然后,我的应用程序可以创建创建待定发票并将其发送给客户。
我搜索并发现我需要设置将在txn_type
recurring_payment_skipped
recurring_payment_failed
这两个是否足够?
此外,最近paypal提供了一个名为IPN Simulator的新工具,您可以在其中将示例IPN发送到网址。它仅支持txn_type
以下
web_accept
(eCheck-pending,eCheck-rejected,eCheck-complete)cart
(快速结帐,购物车结帐) web_accept
(网络接受,退款)
等等。但不是recurring_payment_skipped
或recurring_payment_failed
我在哪里可以模拟那些?
请帮帮我。
答案 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数据。