PayPal支付问题2017-6-30

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才知道。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PP_IPN_PDT_Guide_CHN.pdf Paypal的IPN和PDT变量对照表(中文版) Instant Payment Notification (即时付款通知) & Payment Data Transfer (付款数据传输) 说明 目录 1 付款数据传输 PDT.....................................................................................................................3 1.1 什么是PDT........................................................................................................................3 1.2 如何启用PDT...................................................................................................................3 1.3 PDT 示例代码....................................................................................................................6 1.3.1 PDT for PHP 示例代码...........................................................................................6 1.3.2 PDT for ASP 示例代码............................................................................................7 2 即时付款通知 IPN ....................................................................................................................10 2.1 什么是即时付款通知 IPN .............................................................................................10 2.2 如何启用IPN? ..............................................................................................................11 2.3 通知确认 - 给PayPal 的HTTPS 回发.........................................................................12 2.4 处理IPN 的示例代码.....................................................................................................13 2.4.1 IPN for JAVA 示例代码........................................................................................13 2.4.2 IPN for Perl 示例代码..........................................................................................14 2.4.3 IPN for PHP 示例代码.........................................................................................16 2.4.4 IPN for ASP/VBScript 示例代码.........................................................................17 2.4.5 IPN for .NET/VB 示例代码.................................................................................18 2.4.6 IPN for .NET/C# 示例代码..................................................................................19 3 集成PayPal 建议........................................................................................................................21 4 附录5:IPN 和PDT 变量列表.................................................................................................21

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值