PayPal支付问题2017-6-30

来源:互联网 发布:管家婆网络远程软件 编辑:程序博客网 时间:2024/05/23 15:07

paypal支付:本周前2天和上一周都是在测试paypal的支付和测试,花了很长时间。一方面是对http通信比较陌生,另一方面是无法快速地从paypal官网得到最新的接口。支付直接使用表单提交,非常简单,只要必要的数据完整就没有问题,一开始就成功了。但是根据paypal官网返回的数据进行验证却一直无法成功。

Paypal提供了2种验证机制。一种是服务器根据支付之后的页面返回的交易号和商家自身的凭证发送数据到Paypal,以此验证此交易数据是否真实,称为PDT验证。缺点是如果用户付款后就关闭了网页就无法启动PDT,而且是在付款完成后跳转到该页面才执行程序,速度稍慢。还有一种是IPN,是用户付款成功后,paypal就发送数据到商家账户指定服务器页面,这就排除了用户异常情况的干扰,而且没有意外的延时,只要paypal的服务器和应用网站的服务器正常的没有问题。虽然是2中机制,但是核心都是一样,就是服务器得到数据,再把数据发送给Paypal,根据得到的返回值判断交易信息是否真实,支付是否成功,支付的手续费等。

从网上下载实验一堆代码都失败之后只能开始学习fopensocket,curl的相关知识,但是简单实验之后发现代码没问题,再看各种论坛就发现可能是接口变了。之后只能不停地搜索,但是国内都是老资料,没有新接口的信息,只能在Paypal官网的论坛上查找,发现了2016年10月份发布的新接口列表,但是没有代码说明,也不能确定哪一个是IPN的接口,也不知道如何使用。还好最后在paypal开发者网站发现了IPN的示例,有了明确的接口ipn.sandbox.paypal和com,ipn.paypal.com,再根据接口查找,终于找到了官网提供的接口开发代码。

噩梦并没有结束,获取并测试了验证代码后,开始测试完整的流程却发现支付又出问题了,明明几天前还可以使用。把测试用的沙盒接口换成正式的支付接口后发现没有问题,说明有事接口出问题了,但是这次没有明确的消息说接口换了,而且一开始我就知道官方不推荐HTML表单提交,官方提供了js提交支付,我也不再支持古典,直接用上了JS提交,然后发了邮件给paypal客服询问。第二天没有邮件回复,只能再发送一封,得到了回复,也有点豁然开朗。原来之前paypal已经有了升级的新接口,但是就得接口没有直接废除, 2017-06-30是最后期限,可能我正好赶巧了,然后我忽然发现古典的表单提交又能够使用了。暂时我是先使用表单提交的,因为是跳转到paypal网站支付,一般人会认为更安全,是否完全支持得过了2017-7-1才知道。


原创粉丝点击