支付宝快捷支付模型
其實(shí)題目有點(diǎn)大,主要討論的是手機(jī)客戶端怎么接入支付寶的快捷支付呢。
支付寶的快捷支付的相關(guān)文檔可以看這個(gè)帖子:支付寶接口資料下載(2012.11.23更新)
三方主要是客戶端,業(yè)務(wù)服務(wù)端,支付寶服務(wù)端的交互。
1 客戶端向業(yè)務(wù)服務(wù)端提交訂單,業(yè)務(wù)服務(wù)方生成一個(gè)訂單號(hào)
2 客戶端根據(jù)訂單號(hào)生成支付寶所需要的參數(shù),向支付寶的支付接口提交
3 支付寶的支付接口返回同步數(shù)據(jù)。
4 支付寶服務(wù)端請(qǐng)求回調(diào)函數(shù),這個(gè)回調(diào)函數(shù)是在業(yè)務(wù)服務(wù)方的,這個(gè)請(qǐng)求是異步的。
5 客戶端根據(jù)用戶訂單號(hào)來去業(yè)務(wù)服務(wù)方確認(rèn)是否已經(jīng)支付成功。
?
這里有幾個(gè)問題:
1 簽名安全性
第二步,客戶端根據(jù)訂單號(hào)生成支付寶所需要的參數(shù),這里的參數(shù)少不了簽名,而支付寶的簽名是使用rsa的,那么密鑰就必須要放在客戶端了。這個(gè)是有可能導(dǎo)致不安全的因素的。
所以這個(gè)簽名過程最好是放在服務(wù)端。
即在第一步中不僅僅生成訂單號(hào),而且還生成其他各個(gè)參數(shù),包括回調(diào)地址,簽名等,這樣做的好處是服務(wù)端統(tǒng)管參數(shù)了,以后回調(diào)地址一旦有變化,就可以在服務(wù)端做修改就好。
2 同步返回和異步返回看哪個(gè)
這個(gè)是最糾結(jié)的問題,但是總之,應(yīng)該是看異步返回的,原因也是異步返回是服務(wù)端和服務(wù)端的交互,比客戶端交互安全多了。
但是異步返回是可能會(huì)有問題風(fēng)險(xiǎn)的。因?yàn)楫惒?#xff0c;可能造成時(shí)間的延遲,就是說用戶明明已經(jīng)支付了,但是異步請(qǐng)求還沒請(qǐng)求到。
這個(gè)情況在理論上是會(huì)存在的,但是實(shí)際上,我問過幾個(gè)使用過支付寶開發(fā)的同事,這個(gè)情況很少,即使有這種情況,也只有記錄下回調(diào)數(shù)據(jù),然后給用戶反饋,告知他的訂單號(hào),讓他拿這個(gè)訂單號(hào)再做查詢。然后再做對(duì)賬等操作了。
總結(jié)
- 上一篇: jquery动态改变onclick属性导
- 下一篇: 回到顶部最简单的JQuery实现代码