探討在線支付平台的實現


1.1        支付平台的接入

1.2        支付請求、支付結果返回的傳輸安全

1.3        支付站點、商戶站點、銀行網關的交互

1.4        支付狀態不同步的處理


 

1.1   支付平台的接入

支付平台可以避免商戶站點去實現多種支付方式的對接,而只需要與支付平台對接。

商戶站點接入支付平台,支付平台接入各銀行支付網關,示意如下:

 

1.2   支付請求、支付結果返回的傳輸安全

商戶站點以POST方式發送支付請求到支付平台的安全考慮,簡述如下:

商戶站點生成POST支付請求表單時對表單參數附加上商戶密鑰一起進行MD5簽名,商戶密鑰由支付平台和商戶各執一份,並且支付平台保證商戶密鑰與其它商戶不相同,其他商戶無法偽造MD5簽名,當支付請求到達支付平台后,支付平台使用商戶密鑰按相同算法生成MD5簽名,然后驗證商戶發送過來的MD5簽名是否與支付平台生成的一致,從而可以保證支付請求不可篡改及偽造,對支付平台通過POST方式發送支付結果信息到商戶站點進行相同處理方式。

商戶站點發送信息到支付平台,示意圖如下:

 

說明如下:

1)      商戶站點有一個參數串M

2)      商戶站點用摘要算法計算出“M+商戶密鑰”的消息摘要MD

3)      商戶站點將參數串M和MD合並在一起,通過網絡傳送到支付平台

4)      支付平台收到商戶站點的參數串M和MD

5)      支付平台采用相同摘要算法對“M+商戶密鑰”重新計算消息摘要得到MD'

6)      支付平台比較MD與MD'是否相等

7)      如果結果相等,則表明參數串M在傳輸過程中未被篡改

時序圖如下:


1.3   支付站點、商戶站點、銀行網關的交互

支付站點、商戶站點、銀行網關的交互,如下圖所示:

 

詳細說明如下:

1)      用戶通過瀏覽器瀏覽商戶站點選購商品,確認購買后點擊“立刻購買”提交到商戶站點

2)      商戶站點顯示訂單信息給用戶

3)      用戶點擊“下一步”后,提交到支付平台

4)      支付平台返回選擇支付方式頁面

5)      用戶選擇支付方式,點擊“下一步”,提交到支付平台

6)      支付平台生成確認界面返回給用戶

7)      用戶核對信息,點擊“去銀行支付”,提交到銀行支付網關

8)      銀行網關返回支付信息錄入頁面給用戶

9)      用戶輸入相應的銀行卡卡號、密碼等信息,然后提交到銀行網關

10)    銀行網關驗證用戶數據,並按照銀行網關接口規范將處理結果發送給支付平台

11)    支付平台驗證數據並進行訂單狀態、商戶余額等處理,並返回通知確認到銀行網關

12)    支付平台異步調用商戶站點頁面(同步商戶訂單狀態等)

13)    商戶站點顯示支付結果給用戶,完成整個支付流程

 

直連銀行交互,如下圖所示:

 


總業務說明:

 

網上支付業務流程(各銀行網關接口實現方式略有不同),說明如下:

1) 用戶通過瀏覽器瀏覽商戶站點選購商品,放入購物車后點擊“立刻購買”提交到商戶站點

2) 商戶站點顯示訂單信息給用戶

3) 用戶選擇相應的支付方式,選擇“下一步”,提交到商戶站點

4) 商戶站點根據支付平台的接口文檔要求,生成去銀行支付表單頁面給用戶

5) 用戶點擊“去銀行支付”,提交到支付平台

6) 支付平台驗證該支付訂單的商戶身份、數據有效性,並轉交支付命令到銀行網關

7) 銀行網關生成支付頁面顯示給用戶

   同時在用戶瀏覽器與支付網關之間建立SSL連接

8) 用戶輸入相應的銀行卡卡號、密碼等信息,然后提交到銀行網關

9) 銀行網關驗證用戶數據,並按照銀行網關接口規范將處理結果發送給支付平台

   銀行網關轉發到銀行后台業務系統,銀行后台業務系統處理后返回處理結果給銀行網關

10) 支付平台驗證數據並進行訂單狀態、商戶余額等處理,並返回通知確認到銀行網關

11) 支付平台異步調用商戶站點頁面(同步商戶訂單狀態等)

12) 瀏覽器重定向到商戶站點頁面

13) 商戶站點顯示支付結果給用戶,完成整個支付流程

注:此圖中,選擇支付方式在商戶站點實現(直連銀行) 用戶選擇支付方式的步驟也可以在支付平台實現


有擔保功能的支付平台的支付流程為:

 

(1)買家將實體資金轉移到買家的支付平台賬戶中

(2)買家購買商戶的商品(或服務)

(3)買家發出支付授權,支付平台將買家賬戶中相應的資金轉移到支付平台自己的賬戶中保管

(4)支付平台通知商戶已經收到貨款,可以發貨

(5)商戶完成發貨(或完成服務)

(6)買家收到貨物后,確認可以付款

(7)支付平台將臨時保管的資金划撥到商戶的支付平台賬戶中

(8)商戶在需要時將商戶的支付平台賬戶中的款項進行提現(兌換成實體的銀行存款)

 

 

 

1.4   支付狀態不同步的處理

銀行支付狀態與支付平台及商戶站點支付狀態不同步時的處理,描述如下:

Ø  銀行支付狀態一定正確,通過Job同步到支付平台,保證支付平台支付狀態也正確

Ø  支付平台狀態正確后,通過再次發送支付結果到商戶站點,商戶站點進行支付狀態的同步

Ø  商戶站點必須能夠處理同一支付結果的多次通知的情況

 

銀行支付狀態與支付平台狀態同步,如下圖所示:

 

支付平台狀態與商戶站點狀態同步,如下圖所示:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM