支付宝快捷支付模型

其实题目有点大,主要讨论的是手机客户端怎么接入支付宝的快捷支付呢。html

支付宝的快捷支付的相关文档能够看这个帖子:支付宝接口资料下载(2012.11.23更新)安全

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

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

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

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

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

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

 

这里有几个问题:函数

1 签名安全性

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

因此这个签名过程最好是放在服务端。接口

即在第一步中不单单生成订单号,并且还生成其余各个参数,包括回调地址,签名等,这样作的好处是服务端统管参数了,之后回调地址一旦有变化,就能够在服务端作修改就好。ip

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

这个是最纠结的问题,可是总之,应该是看异步返回的,缘由也是异步返回是服务端和服务端的交互,比客户端交互安全多了。支付宝

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

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

相关文章
相关标签/搜索