支付網(wǎng)關(guān)是為了屏蔽各種 支付工具之間的差異,對(duì)訂單系統(tǒng)行程一個(gè)統(tǒng)一的,標(biāo)準(zhǔn)的接口。如下圖所示
思路
訂單系統(tǒng)的生成訂單號(hào),訂單狀態(tài)為待支付
用戶(hù)發(fā)起支付請(qǐng)求,支付網(wǎng)關(guān)負(fù)責(zé)交易支付請(qǐng)求, 生成 支付流水號(hào)。
支付網(wǎng)關(guān)在完成支付請(qǐng)求后 ,負(fù)責(zé)更新訂單狀態(tài)。
支付失敗,訂單狀態(tài)不更新
支付網(wǎng)關(guān)在像第三方支付時(shí)出現(xiàn)錯(cuò)誤時(shí)重試三次
事物補(bǔ)償機(jī)制
支付狀態(tài) 定時(shí)更新機(jī)制(每10分鐘一次)
對(duì)賬
每晚 從第三方支付公司取出的對(duì)賬文件,從訂單統(tǒng)獲取使用該公司的支付文件.
分別比對(duì)總金額, 發(fā)現(xiàn)平與不平,多交款,少繳款。
相關(guān)異常訂單存入異常訂單表中,第二天人工處理
接口設(shè)計(jì)
1. 訂單狀態(tài)同步
bool UpdateOrderPaySatus(string orderId, int pay