2011-12-01 94 views
0

我有很多正在使用该脚本处理贝宝购买网站:贝宝重定向和支付数据

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”,我想它更新我的数据库中的东西(更改项目的可用性)。我已经阅读了付款数据传输和自动返回,但打开自动返回功能需要我输入一个固定的返回页面,然后编辑所有必须拥有个人感谢页面的网站。

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

编辑:我想这是可能的,因为,例如,Nanacast可以做到这一点。您只需配置您的电子邮件和返回URL,然后它甚至会返回交易数据。问题是:如何?

回答

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"> 

或者在你的情况下,追加& notify_url = HTTP:// ......你的网址。
另外,您还可以设置你的PayPal档案内的IPN的URL将适用于所有收款(除非用“notify_url” HTML参数重写)。
您可以在配置文件>我的销售工具>即时付款通知>更新中进行设置。

您需要从PayPal获取所有POST数据,附加cmd = _notify-validate并将其发送回https://www.paypal.com/cgi-bin/webscr(或Sandbox的https://www.sandbox.paypal.com/cgi-bin/webscr)以验证IPN消息。

根据此结果,您将在页面正文中返回INVALID或VERIFIED响应。
INVALID可能意味着IPN POST不是源自PayPal,而VERIFIED意味着IPN POST证实确实来自PayPal。

+1

我认为该帐户需要成为Premier或Business帐户才能发挥作用。 –