PHP 做支付宝支付接口 总结

来源:互联网 发布:与孩子一起学编程 微盘 编辑:程序博客网 时间:2024/04/30 06:21

以前曾写过一篇关于 paypal 支付接口的文章:  ,   这两天做了关于支付宝接口的测试, 看似不太一样,但支付接口都是一样的,

其业务逻辑都是:   订单详情 -> 提交接口 -> 返回信息 -> 更新本站订单信息  的流程 !

现在写支付宝接口时也有一些个问题:

1. 攻击者是否可以通过伪造一个数据 POST 或 GET 上来导致订单状态被修改呢? 这是第一个担心 !

    其一  这个问题在支付宝接口里完美解决的,在 notify_url.php 或 return_url.php 接收数据时,同时也认证了是否从支付宝官方传来的信息,这信息包含了支付宝保密的加密算法, 这基本上避免了另外的域名或伪造数据攻击。

    其二  如果攻击都应付 10 元 , 而其在提交过程中将数据进行修改为 1 元, 并支付成功,此时订单是不能支付成功的,所以为了避免此种攻击,在 notify 里最好还是做一个总价格的核对。

 

2. notify_url.php 模块儿为什么接收不到数据?

    这个问题可能有很多种原因,但可以通过写日志的方法来判断和调试这个文件,因为这个文件是用来接收支付宝传来的信息的,所以首先要确认这个页面在公网可以 访问,另外里面不要有任何的 SESSION 和 COOKIE  的存在, 我遇到的问题却是,这个页面只有登录的会员才可访问,结果让人调试了好半天才找到原因所在,因为我自己是登录后操作的,所以这个问题很隐蔽 !

 

3.  支付宝官方并没有提供给用户收货的接口,那怎么办呢?

    经过我测试,完全可以通过, 支付接口引导用户到支付宝上确认收货,支付宝会通过订单状态来引导你做进一步操作的

4.  我的操作已经在本站和支付宝方产生订单,但没有付款,现在再本站直接支付会新建一个新的订单吗?

    经过我的测试,不会有新订单产生,只要你站上的订单号等订单信息没有改变,你传到支付宝这些数据时,支付宝也会做一个判断的,看你的订单是否已存在,如果存在就是直接转入支付,否则就是先建立订单再转入支付流程 !

 

这两天也就这些心得了,记录一下,分享给朋友,如有问题,可以留言讨论下,一起成长