由于项目要求,Web网站需要实现Paypal收款,废话不说,直接切入正题:
我做的是paypal直接付款,最简单粗暴的一种方式(其实流程跟支付宝没什么两样):也就是客户点击付款、跳转到paypal端输入客户自己的paypal账号和密码、然后提交支付,完成付款;
开发步骤:
1、首先我们要在paypal官网www.paypal.com注册一个账号,注意要账户类型要选择Business(商业),其他的公司名称、法人信息等如实填写好
2、注册成功以后,账号登录要前往"调解中心"点击"前往账户限制"按钮,(完善账号信息,否则正式对接接口的时候,表单提交直接报错!!这是一个坑!!),需要提交以下文件:中国大陆居民身份证(正反面)和营业执照照片;这个审核过程一般1天左右的时间就可以完成。当然还需要邮箱验证等,这些都比较简单立刻能够操作完成。
3、接下来我们开始沙箱测试阶段;当账户注册成功以后,paypal会分配给开发者账号两个沙箱测试账号(一个买家账号和一个商家账号)。
去paypal开发者账号管理端查看,登录地址:https://developer.paypal.com,用上面刚刚注册的账号密码即可,然后进入后台看到如下界面
我画红框的那两个账号就是paypal自动分配给我的,但是这个又是一个坑!!!!!我们可以看到Country的值为C2(代表中国区账号),但是我们千万不要同时拿着这两个账号来进行沙箱收付款测试,因为Paypal规定中国地区和中国地区的账户之间无法实现付款。(下面左图是paypal客服回复的邮件内容;右图是当时支付时的报错!!)
所以我们还是自己去建两个沙箱测试账号就好,但是买家和商家的地区一定要选择不一样,谨记哈!!还有买家的余额自己填点数字上去。
4、接下来就可以拿代码来测试了,其实代码很简单,就一段Html Form表单,请看如下代码(亲测可用):
其中:name="cmd"这个参数比较重要,_xclick表示立即支付,还有_s_xclick等
5、以上表单代码一提交,就链接到了paypal的支付界面,然后输入买家账号、密码就能完成支付;等支付成功以后,大概10秒钟这样paypay会把支付信息回调给你notify_url提供的接口地址(paypal如果回调失败,最多回调三次);回调信息如下:
[transaction_subject,payment_date,txn_type,last_name,residence_country,item_name,payment_gross,mc_currency,business,payment_type,protection_eligibility,verify_sign,payer_status,test_ipn,payer_email,txn_id,quantity,receiver_email,first_name,invoice,payer_id,receiver_id,item_number,payment_status,payment_fee,mc_fee,mc_gross,custom,charset,notify_version,ipn_track_id],信息比较全,根据字段名称自己推测一下具体是什么意思吧。
等沙箱测试通过以后 ,就直接切换成生产地址就好;这里不得不赞美一下paypal的沙箱搞的真不错,几乎和生产可以同步