支付寶快捷支付模型

其實題目有點大,主要討論的是手機客戶端怎麼接入支付寶的快捷支付呢。html

支付寶的快捷支付的相關文檔能夠看這個帖子:支付寶接口資料下載(2012.11.23更新)安全

三方主要是客戶端,業務服務端,支付寶服務端的交互。異步

1 客戶端向業務服務端提交訂單,業務服務方生成一個訂單號

2 客戶端根據訂單號生成支付寶所須要的參數,向支付寶的支付接口提交

3 支付寶的支付接口返回同步數據。

4 支付寶服務端請求回調函數,這個回調函數是在業務服務方的,這個請求是異步的。

5 客戶端根據用戶訂單號來去業務服務方確認是否已經支付成功。

 

這裏有幾個問題:函數

1 簽名安全性

第二步,客戶端根據訂單號生成支付寶所須要的參數,這裏的參數少不了簽名,而支付寶的簽名是使用rsa的,那麼密鑰就必需要放在客戶端了。這個是有可能致使不安全的因素的。htm

因此這個簽名過程最好是放在服務端。接口

即在第一步中不單單生成訂單號,並且還生成其餘各個參數,包括回調地址,簽名等,這樣作的好處是服務端統管參數了,之後回調地址一旦有變化,就能夠在服務端作修改就好。ip

2 同步返回和異步返回看哪一個

這個是最糾結的問題,可是總之,應該是看異步返回的,緣由也是異步返回是服務端和服務端的交互,比客戶端交互安全多了。支付寶

可是異步返回是可能會有問題風險的。由於異步,可能形成時間的延遲,就是說用戶明明已經支付了,可是異步請求還沒請求到。開發

這個狀況在理論上是會存在的,可是實際上,我問過幾個使用過支付寶開發的同事,這個狀況不多,即便有這種狀況,也只有記錄下回調數據,而後給用戶反饋,告知他的訂單號,讓他拿這個訂單號再作查詢。而後再作對帳等操做了。文檔

相關文章
相關標籤/搜索