Paypal重定向和支付数据



我有一些网站正在使用这个脚本来处理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")."&notify_url=http%3a%2f%2fwww%2eincansoft%2ecom%2fipn%2ephp&no_note=1&currency_code=USD&lc=GR&bn=PP%2dBuyNowBF&charset=UTF%2d8");

这里的问题是,当它重定向到页面"Thanks.php"时,我希望它更新我的数据库中的一些东西(改变该项的可用性)。我已经阅读了支付数据传输和自动返回,但打开自动返回需要我输入一个恒定的返回页面,然后编辑所有的网站,我必须有个人的感谢页面。

我的问题是:有没有其他的方法来重定向和检索交易数据,而不设置一个恒定的返回页面为我的所有产品?

编辑:我想这是可能的,因为,例如,Nanacast可以做到。你只需要配置你的邮箱和返回URL,然后它甚至返回交易数据。问题是:怎么做?

查看PayPal即时支付通知(IPN) - https://www.paypal.com/ipn/
这将强制在事务启动时向您发送事务数据的POST。买家甚至不需要返回到你的"感谢"页面,为了这个工作;只要买家在贝宝网站上完成付款,它就会发送出去。

如果您目前使用的是网站支付标准(基于HTML的按钮),您可以简单地添加

<input type="hidden" name="notify_url" value="http://full-URL-to-the-script-you-set-up-for-IPN">

或者在您的情况下,附加&notify_url=http://......到你的URL。
或者,你也可以在你的PayPal个人资料中设置一个IPN URL,它将适用于所有的付款(除非用'notify_url' HTML参数覆盖)。
您可以在个人资料>我的销售工具>即时付款通知>更新中设置此设置。

您需要获取从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响应。
无效可能意味着IPN POST不是来自PayPal,而已验证意味着IPN POST被验证确实来自PayPal。

最新更新