對賬系統
基本概念
在會計上的概念:指為了保證賬簿記錄的正確性而進行的有關賬項的核對工作,做到賬實相符(正確性)、賬證相符(真實性)、賬賬相符。
在支付機構的概念:資金對賬在對賬中心進行,將系統保存的賬務流水與銀行返回的清算流水和清算文件進行對賬,核對系統賬務數據與銀行清算數據的一致性,保證支付機構各備付金銀行賬戶每日的預計發生額與實際發生額一致。即核對銀行實際清算資金如充值、充退、提現等業務的銀行處理結果是否一致。
image.png
image.png
image.png
基本流程
image.png
詳細流程圖
image.png
對賬系統設計
image.png
其中的 ResourceLoader 、 Parser 、 Checker 、 ResultHandler 均為標準接口,所有實現了對應接口的 spring bean ,都能被編排到對賬流程之中,包括業務方自己實現的 plugin。這樣就實現了插件化和可編排。每個流程節點的功能如下:
ResourceLoader :基于各種數據源(DB、FILE、RPC、REST等)提供加載器工廠,加載各個數據源的原始數據。加載的方式支持驅動加載、并行加載、多方加載等方式。業務方也可以自己實現加載器,利用流程編排能力嵌入到對賬流程中。
Parser :對已加載的原始數據進行建模,轉換為對賬標準模型。利用規則引擎,提供腳本化(Groovy)的轉換方式。
Checker :按照配置對指定字段、按指定規則進行比較,并產生對賬結果。支持 findFirst(找出第一個不一致)、full(找出所有不一致)等對比策略。
ResultHandler :使用指定的handler對結果進行處理,常見的處理器包括持久化、發送報警郵件、甚至直接修復數據等等。
通過統一的 facade,將整個對賬流程進行串聯。在執行不同節點時,根據配置選擇不同的默認組件或者插件來執行。可以在管理后臺,對每個流程節點進行編排: