支付網關思考 目的 支付網關是為了屏蔽各種 支付工具之間的差異,對訂單系統行程一個統一的,標準的介面。如下圖所示 思路 事物補償機制 對賬 介面設計 1. 訂單狀態同步 bool UpdateOrderPaySatus(string orderId, int paySatas) 2. 預支付請求簽名 ...
支付網關思考
- 目的
支付網關是為了屏蔽各種 支付工具之間的差異,對訂單系統行程一個統一的,標準的介面。如下圖所示
- 思路
- 訂單系統的生成訂單號,訂單狀態為待支付
- 用戶發起支付請求,支付網關負責交易支付請求, 生成 支付流水號。
- 支付網關在完成支付請求後 ,負責更新訂單狀態。
- 支付失敗,訂單狀態不更新
- 支付網關在像第三方支付時出現錯誤時重試三次
- 事物補償機制
- 支付狀態 定時更新機制(每10分鐘一次)
- 對賬
- 每晚 從第三方支付公司取出的對賬文件,從訂單統獲取使用該公司的支付文件.
- 分別比對總金額, 發現平與不平,多交款,少繳款。
- 相關異常訂單存入異常訂單表中,第二天人工處理
- 介面設計
1. 訂單狀態同步
bool UpdateOrderPaySatus(string orderId, int paySatas)
2. 預支付請求簽名設計(訂單號,金額,Key ,Signature)
- 把請求中的參數 除了Signature 外 按照參數名稱進行正向排序
- 把所有參數名和參數值串在一起(不能有空格)
- 把後臺設置的key值串接到“第二步”得到的字元串尾部(不能有空格)
- 採用MD5演算法對“第三步”得到的字元串進行加密,生成Signature的值