我正在PayPal沙盒中测试自适应支付,IPN正在正确返回我的网站,除了我无法显示交易ID之外,我希望它在我的数据库中,因为用户将来可以使用它重新下载媒体,或者如果他们不立即重定向到网站并错过初始下载。
该付款是链式付款。
根据IPN开发者指南(https://cms.paypal.com/cms_content/US/en_US/files/developer/IPNGuide.pdf),响应应该使用transaction[n].id
作为收发ID,我已经尝试过:
$_POST['transaction[0].id']
$_POST['transaction[0]['id']']
$_POST['txn_id']
全部返回CCD_ 2。我收到了每个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)
我写了一系列关于自适应支付API的文章。第二个是处理从自适应支付发送到IPN处理程序的变量。
PayPal发送了一组奇怪的变量,但可以将它们解码为我们可以在PHP中轻松使用的东西。
您需要在Paypal中(在沙盒或实时环境中)进入主要收款人的配置文件设置,并设置即时支付通知(IPN)首选项。这将向您指定的URL发送第二个IPN,其中包含您要查找的详细信息。