我正在测试PayPal沙箱中的自适应支付,IPN正在正常返回我的网站,除了我无法显示交易ID,我想在我的数据库中使用它,因为用户可以使用它来重新下载媒体未来,或者如果他们没有立即重定向到网站并错过初始下载。
付款是连锁付款。
根据IPN开发人员指南(https://cms.paypal.com/cms_content/US/en_US/files/developer/IPNGuide.pdf),响应应使用transaction[n].id
作为交易ID,i尝试过:
$_POST['transaction[0].id']
$_POST['transaction[0]['id']']
$_POST['txn_id']
所有人都在返回NULL
。我为每个IPN都返回了IPN信息电子邮件,这就是我所得到的:
VERIFIED
--------------------------------------------------------------------------------
transaction Array
log_default_shipping_address_in_transactionfalse
action_type PAY
ipn_notification_url xxx
charset windows-1252
transaction_type Adaptive Payment PAY
notify_version UNVERSIONED
cancel_url xxx
verify_sign AM-T87RnkCBg1jNaY5s.rN3m7228AwQazhSReOMGBFi9VRyKsQwGyQ9f
sender_email j-test_1345926524_per@hotmail.com
fees_payer EACHRECEIVER
return_url xxx
reverse_all_parallel_payments_on_errorfalse
pay_key AP-13220443VY964171X
status COMPLETED
test_ipn 1
payment_request_date Sat Aug 25 23:49:05 PDT 2012
如何获得交易ID? (最重要的是,主要接收者ID)
答案 0 :(得分:4)
我写了一系列关于自适应支付API的文章。 second one处理从自适应付款处理发送到您的IPN处理程序的变量。
PayPal会发送一组奇怪的变量,但可以将它们解码为我们能够在PHP中轻松使用的内容。
答案 1 :(得分:0)
您需要在Paypal(沙盒或实时环境)中进入主接收者的个人资料设置,并设置即时付款通知(IPN)首选项。这将向您指定的URL发送第二个IPN,其中包含您要查找的详细信息。