Paypal支付通过接口集成到自己系统(有一些坑需要注意)

由于项目要求,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等

<!--     https://www.paypal.com/cgi-bin/webscr   生产地址
         https://www.sandbox.paypal.com/cgi-bin/webscr   沙箱测试地址
-->
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_blank" id="sform">
			<input type="hidden" name="cmd" value="_xclick">
			<input type="hidden" name="business" value="你的商家账号">  
			<input type="hidden" name="item_name" value="产品名称">
			<input id='item_number' type="hidden" name="item_number" value="产品编号"> 
			<input id='amount' type="hidden" name="amount" value="付款/充值金额">  <!-- 金额  -->
			<input type="hidden" name="currency_code" value="USD">
			<input type='hidden' name='return' value='支付成功后网页跳转地址'> 
			<input type='hidden' name='notify_url' value='支付成功后paypal后台发送回调地址'>  
			<input type='hidden' name='cancel_return' value='用户取消交易返回地址'> 
			<input id='invoice' type='hidden' name='invoice' value='发票编码'> <!-- 发票编码 注意:不能提交两次一样的发票编码 -->
			<input type='hidden' name='charset' value='utf-8'><!-- 字符集 -->
			<input type="hidden" name="no_shipping" value="1"> <!-- 不要求客户提供收货地址 -->
			<input type="hidden" name="no_note" value="remark Recharge"> !-- 付款说明 -->
			<input type="hidden" name="bn" value="IC_Sample">
			<input type='hidden' name='rm' value='2'>
			<input type="image" value="paypal.png" name="submit" alt="payments with payPal!">
			
		</form>

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的沙箱搞的真不错,几乎和生产可以同步

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值