官方文件提供的序列圖如下(圖中虛線標識商家鏈接,實線標識支付寶鏈接。
):
用戶
商家客戶端:我們自己的App。
支付寶客戶端SDK:集成在我們應用中的支付寶SDK。
支付寶服務器:我們的App通過支付寶SDK與支付寶服務器連接。
商家服務器:也就是我們App的服務器端。
1.用戶使用我們的App發起支付操作;
2.然後我們的應用程序向我們的服務器發送支付請求。此時,服務器將簽名的訂單字符串返回給客戶端。
3.當客戶端得到這個請求時,支付寶SDK會調整支付,此時支付寶SDK會連接支付寶服務器;
4.支付完成後,支付寶服務器會將支付結果同步返回給我們App中的支付寶SDK,SDK會將支付結果回調到我們的App;
註意,此時我們還不能確定支付成功。我們仍然需要采取以下步驟:
5.支付寶SDK回調會攜帶壹些參數信息。我們獲取這些參數信息,然後再次請求我們服務器的接口,將這些參數發送給服務器,服務器會使用這些參數進行檢查,並將檢查結果返回給客戶端。
只有完成第五步,才能確定支付是否成功。
將付款轉移到付款需要三個步驟:
第壹步:客戶端點擊發起支付請求服務器的接口,服務器直接將組裝簽名後的請求字符串orderString發送給客戶端;
第二步:客戶端獲取返回的數據,調用支付寶支付SDK;
第三步:跳轉到支付寶錢包(支付頁面)進行支付,處理支付結果。
同步返回的支付結果為9000後需要進行支付驗證:
客戶端得到支付寶的支付結果後,提取相應的字段發送給服務器,服務器驗證通知參數的合法性。只有全部驗證通過後,才能認定買家支付成功。Ps:支付寶會在支付成功後異步向服務器發送通知。
待續