Home > Article > Backend Development > 关于网上支付paypal/alipay,该怎么解决
关于网上支付paypal/alipay
网站上需要用户通过paypal付款,然后对用户进一步操作(增加权限之类)。
是不是大多数付款方式都类似paypal的流程:
1.在自己网站上提交表单到paypal,用户在paypal付款成功之后跳转回网站。
2.根据从paypal跳转回来的结果显示成功与否
3.然后等待paypal发送消息到网站对应接口来确认订单(IPN之类)
在接手的项目中发现,后台仅仅验证了IPN是否是由paypal发送来的(确认了来源及付款状态)。而且在上面第二步中,如果用户跳转回来是成功的话,就直接给用户提升权限了。
如果是这样,如果用户修改了提交到paypal的表单:比如收100块,但是修改成收1块。用户一样能带着paypal成功付款1元的消息回到网站。不就坑爹了?
手头暂时不能做付款整个流程的测试,但是我已经很容易就修改了表单提交到paypal。
所以想问这方面有经验的同学,在收到IPN或成功返回之后,是不是起码该做一个价钱的检查?还应该检查一些什么 呢?
PS:网站是外包团队做的,来谈的人看上去很专业各种计划、时间估算、模块划分,所以好疑惑。
------解决思路----------------------
支付成功后平台会通知你的服务器,并给你一个交易码,此时一定要用它再去平台的接口主动发请求验证,此时返回的信息才是可信的
------解决思路----------------------
paypal 的验证还算中规中矩,你在收取到所有参数后需要将所有参数都发送回paypal做一个验证,当然如果你的服务器这步也给劫持了.那我想人家也不需要那么麻烦了吧 直接改你数据好了。呵呵
判断 paypal 返回的内容是否是 VERIFIED 再判断返回的卖家邮箱是否是你的帐号,再判断金额是否和你保存在数据库里的金额一致,再判断结果是否 Completed 再执行最后的业务逻辑. 当然你可以先判断是否是 Completed 再判断后面的,但是 订单验证一定是要放在第一步的
做过不下10种国外支付,最麻烦的支付是台湾的,最恶心的是越南的....