安卓开发 支付宝快捷支付可能存在的问题与风险

三方主要是客户端,业务服务端,支付宝服务端的交互。

1 客户端向业务服务端提交订单,业务服务方生成一个订单号

2 客户端根据订单号生成支付宝所需要的参数,向支付宝的支付接口提交

3 支付宝的支付接口返回同步数据。

4 支付宝服务端请求回调函数,这个回调函数是在业务服务方的,这个请求是异步的。

5 客户端根据用户订单号来去业务服务方确认是否已经支付成功。

 

这里有几个问题:

1 签名安全性

第二步,客户端根据订单号生成支付宝所需要的参数,这里的参数少不了签名,而支付宝的签名是使用rsa的,那么密钥就必须要放在客户端了。这个是有可能导致不安全的因素的。

所以这个签名过程最好是放在服务端。

即在第一步中不仅仅生成订单号,而且还生成其他各个参数,包括回调地址,签名等,这样做的好处是服务端统管参数了,以后回调地址一旦有变化,就可以在服务端做修改就好。

2 同步返回和异步返回看哪个

这个是最纠结的问题,但是总之,应该是看异步返回的,原因也是异步返回是服务端和服务端的交互,比客户端交互安全多了。

但是异步返回是可能会有问题风险的。因为异步,可能造成时间的延迟,就是说用户明明已经支付了,但是异步请求还没请求到。

这个情况在理论上是会存在的,但是实际上,我问过几个使用过支付宝开发的同事,这个情况很少,即使有这种情况,也只有记录下回调数据,然后给用户反馈,告知他的订单号,让他拿这个订单号再做查询。然后再做对账等操作了。



以上内容转自:http://www.cnblogs.com/yjf512/p/3464227.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值