paypal开发总结

最近一个项目要用到pyapal开发,使用api进行支付。

paypal的开发文档还是满全的,总体上都是找到当答案,http://stackoverflow.com/上面有少答案,如果不懂的问题,直接搜-_-

**几个重要的概念:**sandob测试:用于测试(包括商户账号,可以随意提交支付等测试)
Instant Payment Notification (IPN) : 用于用户向paypal支付后,paypal会主动发送数据到我们定义的notify_url
return: paypal支付成功后跳转的url,不可靠,因为假如用户提前关闭页面,paypal就不能跳转了,支付消息我们就收不到了。

所以最保险的做法是Payment Data Transfer(PDT) 和 Instant Payment Notification (IPN) 结合来使用。
以上概念需要你对paypal有一定的了解,如不了解,https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/wp_standard_overview/这篇文档要反复读并消化它。**必要的步骤:**https://developer.paypal.com 注册开发者账号。

paypal不能直接用paypal账号即当商户,又当消费者。
那怎么测试支付呢,开发的时候一定要先使用Sandbox 进行测试,使用直接的paypal商号,会有想不到的后果,我就碰到过,因为是真实支付,但是paypal接受程序还没好,paypal会认为你是在作弊,可能会关闭你的商户。如何创建sandox: [](https://developer.paypal.com/webapps/developer/applications/accounts/created" target="_blank" rel=“noopener noreferrer”>https://developer.paypal.com/webapps/developer/applications/accounts/created<a href=“http://www.ffeeii.com/wp-content/uploads/2013/06/sandbox.jpg)具体怎么创建我就不多说了,可以创建商户和个人账户。商户用于收钱,个人账号用于支付,记得这个账号是虚拟的,不能用于真实支付。

以下以一段代码例子来讲paypal支付.pay.php主要参数说明:notify_url, return,custom

了解paypal button按纽几种方式
https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/wp_standard_overview/
上面列出了有Buy Now buttons(立即支付),Donate buttons(捐款),Add to Cart buttons (添加到购物车)
Subscribe buttons(定期支付),Buy Gift Certificate buttons,
这些buttom其实都是html标签组成的form,同时,官方提供了生成这几种试的代码
http://paypal.github.io/JavaScriptButtons/

上面的方式是js,其实生成后查看html代码,可以直接看到生成后的html代码,直接copy过来用就行。

关于return 和notify_url
是需要在商户后台进行设置才能启用的
如何设置:https://shopplugin.net/kb/how-do-i-setup-paypal-ipn-and-pdt/

关于notify_url,这个一定是真实地址才行,意思就是外网可以访问,不能弄在自己的电脑上面,因为paypal会向这个url推送数据,一定要检查你检测的机器外网可不可以访问。

return 和notify_url都一套检验方式,文档看:
https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/paymentdatatransfer/
https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNIntro/

下载源代码,可当作参考:pay.php