支付系統 帳戶系統總結

2022-05-10 10:47:11 字數 2049 閱讀 2360

已遷移到

支付系統總結

一 支付通架構圖:

& 接受對業務系統的訂單支付.充值請求

& 賬戶之間轉賬

&  接受業務系統的提現請求

& 接受業務系統的退款請求(對上面幾種業務)

& 記錄賬戶資訊

& 保障賬戶變動原子性和事務性.

& 記錄賬戶變動流水

1. 充值

2. 轉賬

2. 提現

帳戶表 賬戶資訊.

account_statement: 1.記錄賬戶變動流水記錄. 2.儲存法冪等控制

交易表: 記錄外部輸入的外部流水號和內部流水號相關資訊

1.  轉賬的額度控制通過變數傳遞進來.

轉賬停留在中間環節的,重試邏輯. 單邊帳.

傳統信用卡,每個使用者的額度不同,都是通過往卡里加錢來提公升額度.(1.額度增和賬戶增保持事務一致. 2.額度減和賬戶減保持事務一致,可能減款失敗,如果這個使用者本身已經使用了很多.)

2.  帳戶的變動和流水儲存處於同乙個事務中.

切記 spring 的事務註解 , 異常必須設定為 throwable

3. 提現:

* 先扣帳戶款再提現.

* 銀行有噁心的退票記錄

4. 雙邊帳

加減賬號分別開.

4.1 操作分為加鎖和不加鎖.

4.1.1 外部企業賬戶: 加款加鎖,減款不加鎖. 

4.1.2 內部企業賬戶: 加減款都不加鎖. 前面增加乙個減款判斷. 手動提現.

4.1.3 需要時時檢視餘額的普通使用者需要加鎖. 

通過分布式擴容來實現擴充套件性.

5. 帳戶的高併發變更設計:

高併發帳戶不時時扣款.

6. 非分布式事務下的時效關單問題.

底線:任何場景都不能在不知道結果的情況下任意關單(終態:  關閉或者成功),否則對支付來說,可能導致使用者資損,或者衝退的使用者體驗不好. 對提現來說可能導致平台資損,提現是絕對不能提前關閉的,不能對code進行響應,而是應該對"狀態"響應,code千變萬化,狀態收斂,低風險

優化: 盡快關單.

timeout場景:給使用者報錯,讓使用者重試. (錯誤的小技巧優化思路,先關閉下游,關閉成功,再關閉自己. 支付可能導致退款. 提現可能導致資金損失,原因沒有跨系統關單介面 ,下游還得處理好空"類似tcc分布式事務場景的懸掛問題"或者"互斥關單問題",讓系統複雜,不是好的方案.)

有code:

方案1:是否有訂單號,狀態是否是init, 是則等待處理完的訊息,沒有那麼說明沒有受理成功. 直接關單,賬戶等業務校驗異常,給使用者提示, 使用者重試也沒有用. (需要下游遵守 即使處理異常也返回流水號和狀態的邏輯,同步介面. 非同步介面,處理流程非同步執行. 不影響.)  如果不能重試 先關下游,再關自己 (風險點,如果下游系統有bug,已收單異常但沒有返回錯誤碼,可能導致資損, 同樣需要關注"互斥關單"(類似tcc分布式事務裡的"懸掛問題",實現"空pre")的問題, 提現場景的"反退票"問題)

方案2:方案1裡需要強依賴下游和良好的異常case處理. 方案2的優化是不依賴同步返回,對特定的code,而是通過自己的介面查詢狀態不存在(可能存在事務未提交的導致"空讀")或者closed後,關下游,關自己,對使用者異常提示. 其他錯誤都是等待同步訊息 或者 1天後對賬狀態來確定狀態.(避免事務還未提交,"空讀問題")

方案3:區分場景.  3.1 線下支付流程, 每次都生成新的流水號. 使用者想重試就重試,大不了多付款,退款,重要的是能夠支付成功. 3.2 線上支付,用同乙個流水號.  3.3 提現: 用同乙個流水號,告知使用者,特殊場景,提現結果需要30分鐘後. 否則提早關單返回餘額會出問題.

pureftpd 啟用系統帳戶登入

pureftpd是一款ftp程式。我們來看看他的配置的一種 系統真實使用者 vi usr local pureftpd etc pure ftpd.conf 如果要在預設的配置檔案中只支援系統真實使用者登入,你只要稍微修改一下就可以了 chrooteveryone yes noanonymous y...

用SYSTEM帳戶登入系統

2007 02 24 15 19 26 分類 電腦 標籤 系統 字型大小大中小 訂閱1 操作簡述 本文將會用另類的方法幫助大家完成這個不可能完成之任務。先請大家在一台實驗機器上進行以下步驟 開啟任務管理器,在 程序 標籤頁關閉explorer程序。在 應用程式 標籤頁單擊 新任務 輸入 cmd 回車...

大額支付系統

大額支付系統 簡介大額實時支付系統是人行為信用社 商業銀行與人行之間的支付業務提供最終資金清算的系統,為各銀行跨行匯兌提供快速 高效 安全的支付清算服務。大額實時支付系統業務比其他結算手段更快速 更準確 更安全,是目前國內最快捷的結算手段之一,通過信用社辦理異地跨行匯兌業務可實現1分鐘內實時到賬,且...