一 支付通架構圖:
1.1 支付通交易層模塊職責:
& 接受對業務系統的訂單支付.充值請求
& 賬戶之間轉賬
& 接受業務系統的提現請求
& 接受業務系統的退款請求(對上面幾種業務)
1.2支付網關職責:
負責和渠道(支付寶,微信,銀聯)交互,記錄流水號,對賬
1.3賬戶系統職責:
& 記錄賬戶信息
& 保障賬戶變動原子性和事務性.
& 記錄賬戶變動流水
二 主要流程圖
1. 充值
2. 轉賬
2. 提現
三 實體設計
2.1賬戶系統 實體設計:
帳戶表 賬戶信息.
Account_statement: 1.記錄賬戶變動流水記錄. 2.保存法冪等控制
2.2收銀台系統實體設計:
交易表: 記錄外部輸入的外部流水號和內部流水號相關信息
四 亮點功能
1. 轉賬的額度控制通過變量傳遞進來.
轉賬停留在中間環節的,重試邏輯. 單邊帳
2. 帳戶的變動和流水保存處於同一個事務中.
切記 spring 的事務注解 , 異常必須設置為 throwable
3. 提現:
先扣帳戶款再提現.
銀行有惡心的退票記錄
4. 雙邊帳
加減賬號分別開.
4.1 操作分為加鎖和不加鎖.
4.1.1 外部企業賬戶: 加款加鎖,減款不加鎖.
4.1.2 內部企業賬戶: 加減款都不加鎖. 前面增加一個減款判斷. 手動提現.
4.1.3 需要時時查看余額的普通用戶需要加鎖.
通過分布式擴容來實現擴展性.
5.帳戶的高並發變更設計:
高並發帳戶不時時扣款.