我有很多网站正在使用此脚本来处理PayPal购物:
header("location: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=".urlencode($strMail)."&item_name=".urlencode($strName)."&item_number=".urlencode($strCode)."&amount=".urlencode($strCost)."&no_shipping=0&return=".urlencode($strDomain.$strFolder."Thanks.php")."&cancel_return=".urlencode($strDomain.$strFolder."Cancel.php")."¬ify_url=http%3a%2f%2fwww%2eincansoft%2ecom%2fipn%2ephp&no_note=1¤cy_code=USD&lc=GR&bn=PP%2dBuyNowBF&charset=UTF%2d8");
这里的问题是,当它重定向到“Thanks.php”页面时,我希望它更新我的数据库中的某些内容(更改项目的可用性)。我已经阅读了付款数据传输和自动退货,但启用自动退货要求我必须输入一个固定的退货页面,然后编辑我必须拥有单独的谢谢页面的所有网站。
我的问题是: 有没有其他方法来重定向和检索交易数据而不为我的所有产品设置1个常量返回页面?
编辑:我想这是可能的,因为,例如,Nanacast可以做到这一点。您只需配置您的电子邮件和返回URL,然后它甚至返回交易数据。问题是:如何?
答案 0 :(得分:2)
查看PayPal即时付款通知(IPN) - https://www.paypal.com/ipn/
这将强制在发起事务时向您发送事务数据的POST。买家甚至不必返回“感谢”页面才能使用此功能;只要买方在PayPal网站上完成付款,它就会一直发送。
如果您目前使用网站付款标准(基于HTML的按钮),则只需添加
即可<input type="hidden" name="notify_url" value="http://full-URL-to-the-script-you-set-up-for-IPN">
或者在您的情况下,将&amp; notify_url = http:// ......附加到您的网址上
或者,您也可以在PayPal配置文件中设置IPN URL,该URL将应用于所有收款(除非使用'notify_url'HTML参数覆盖)。
你可以在Profile&gt;中进行设置。我的销售工具&gt;即时付款通知&gt;更新。
您需要获取从PayPal收到的所有POST数据,附加cmd = _notify-validate并将其发送回https://www.paypal.com/cgi-bin/webscr(或https://www.sandbox.paypal.com/cgi-bin/webscr for Sandbox)以验证IPN消息
根据此结果,您将在页面正文中找回INVALID或VERIFIED响应。
INVALID可能意味着IPN POST不是来自PayPal,而VERIFIED意味着IPN POST被验证为确实来自PayPal。