2012-08-26 39 views
2

我在PayPal沙盒中测试Adaptive Payments,IPN正确地返回到我的网站,除非我不能让交易ID出现,我希望这在我的数据库中,因为用户将能够使用它在将来重新下载媒体,或者如果他们没有立即重定向到网站并错过最初的下载。自适应付款IPN交易ID没有出现

支付是连锁支付。

根据IPN开发者指南(https://cms.paypal.com/cms_content/US/en_US/files/developer/IPNGuide.pdf),响应应该使用transaction[n].id作为transcation ID,我试过了:

$_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    [email protected] 
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

我遇到了同样的问题,你找到了解决方案吗? – vinsanity38

+0

您是否找到解决方案? –

回答

0

您需要进入Pay​​Pal(位于Sandbox或实况环境)中的主接收者配置文件设置并设置即时付款通知(IPN)首选项。这会将第二个IPN发送到您指定的URL并提供您正在查找的详细信息。

4

我写了一系列关于自适应付款API的文章。 second one涉及使用从自适应付款发送到IPN处理程序的变量。

PayPal发送一组奇怪的变量,但可以将它们解码为我们可以在PHP中轻松使用的东西。