什么是對(duì)賬?
對(duì)賬系統(tǒng)
對(duì)賬系統(tǒng),是支付體系中最重要的一環(huán),也是保證交易、資金安全的最后一道防線。通過(guò)系統(tǒng)的使用,不僅可以提升對(duì)賬效率和解放人工對(duì)賬工作量,而且還可以快速擴(kuò)展其他支付類渠道,它的職責(zé)就是替代傳統(tǒng)的人工對(duì)賬,解放人工對(duì)賬的工作量,提升對(duì)賬效率,實(shí)現(xiàn)系統(tǒng)自動(dòng)化。
以筆者多年前參與的項(xiàng)目為例,對(duì)接了多個(gè)銀行渠道系統(tǒng)進(jìn)行代收代付業(yè)務(wù),在實(shí)際應(yīng)用場(chǎng)景中,生產(chǎn)交易系統(tǒng)總會(huì)存在因掉單或者系統(tǒng)突發(fā)異常導(dǎo)致的同一筆交易在支付系統(tǒng)與銀行系統(tǒng)的信息不對(duì)稱,使得支付系統(tǒng)在銀行的賬戶資金實(shí)際發(fā)生額與應(yīng)該發(fā)生額不一致,比如長(zhǎng)款(銀行多結(jié)算給支付系統(tǒng))和短款(銀行少結(jié)算給支付系統(tǒng))。
如何高效對(duì)賬
通過(guò)對(duì)既有系統(tǒng)以及其他渠道系統(tǒng)進(jìn)行研究發(fā)現(xiàn),對(duì)賬的通用流程大致分為如下步驟: 渠道對(duì)賬單下載、對(duì)賬單文件解析、對(duì)賬(軋賬/平賬)。 對(duì)賬系統(tǒng)是一個(gè)以定時(shí)任務(wù)為主的系統(tǒng),我們?cè)谙到y(tǒng)架構(gòu)方面基于分布式任務(wù)框架elastic-job與自定義任務(wù)邏輯相結(jié)合的方式進(jìn)行設(shè)計(jì),其中elastic-job作為無(wú)中心化的分布式定時(shí)調(diào)度框架,其優(yōu)勢(shì)就是保證后續(xù)任務(wù)可以在任意節(jié)點(diǎn)中執(zhí)行。業(yè)務(wù)邏輯架構(gòu)如圖1所示:

各個(gè)功能模塊功能:
1、對(duì)賬單下載
從技術(shù)實(shí)現(xiàn)的角度來(lái)說(shuō),我們可以將其設(shè)計(jì)為工廠模式,針對(duì)不同的支付渠道對(duì)應(yīng)不同的下載類,如果是http接口可以將獲取到的文件寫(xiě)入到對(duì)賬單中,用于后續(xù)解析操作,如果是對(duì)方提供的是ftp服務(wù)器,則需要將服務(wù)器中的對(duì)賬單下載至本機(jī)。 在這個(gè)環(huán)節(jié)中,為了防止單一應(yīng)用宕機(jī)導(dǎo)致系統(tǒng)產(chǎn)生異常,對(duì)賬單下載至本地后會(huì)同步將其上傳至DFS服務(wù)器中,方便后續(xù)步驟中的定時(shí)任務(wù)可以從DFS服務(wù)器中獲取到對(duì)應(yīng)的對(duì)賬單文件。 這個(gè)環(huán)節(jié)的主要編碼工作包括通用ftp工具類、http(s)工具類的編寫(xiě),并會(huì)涉及到IO讀寫(xiě)相關(guān)的實(shí)現(xiàn)。
在下載對(duì)賬單的步驟中,很多同仁都踩過(guò)不少坑,也針對(duì)共性問(wèn)題進(jìn)行了總結(jié),那就是“HTTP(S)用apache httpclient即可實(shí)現(xiàn)鏈接池和斷點(diǎn)續(xù)傳功能,亦可使用Apache Commons Net API實(shí)現(xiàn)FTP的上傳與下載。但不管是哪一種方式,都需要謹(jǐn)慎的設(shè)置重試次數(shù)、重試間隔以及鏈接超時(shí)時(shí)間,其原因是重試太頻繁容易導(dǎo)致服務(wù)器夯死;時(shí)間間隔太大又會(huì)阻塞后續(xù)處理步驟,評(píng)估下來(lái)5~10分鐘是一個(gè)較為合理的重試間隔區(qū)間。”
2、對(duì)賬單轉(zhuǎn)換
如果完全按照下游渠道系統(tǒng)提供的原始賬單格式進(jìn)行對(duì)賬單存儲(chǔ),那么對(duì)于后續(xù)的賬單數(shù)據(jù)處理邏輯就會(huì)隨著下游渠道的增加而不斷的擴(kuò)展,并且每增加一個(gè)新的支付渠道,賬單存儲(chǔ)表都需要根據(jù)渠道賬單結(jié)構(gòu)新建,使得開(kāi)發(fā)工作量大幅增加。因此,從對(duì)賬模塊來(lái)看,為了讓后續(xù)的對(duì)賬操作變得統(tǒng)一,需要格式化不同形式的對(duì)賬文件,并對(duì)其進(jìn)行標(biāo)準(zhǔn)化處理顯得尤為重要。
由于支付渠道系統(tǒng)在設(shè)計(jì)上存在差異性,我們需要為每個(gè)渠道開(kāi)發(fā)一套對(duì)應(yīng)的解析規(guī)則,可能包含計(jì)量單位的轉(zhuǎn)換、交易日期的格式化、交易結(jié)果的映射轉(zhuǎn)換等操作,對(duì)賬單轉(zhuǎn)換模塊的職責(zé)就是將各式各樣的數(shù)據(jù)源解析為標(biāo)準(zhǔn)格式后插入交易記錄表中,用于后續(xù)對(duì)賬工作。
3、對(duì)賬模塊
在對(duì)賬的過(guò)程中可能出現(xiàn)某些系統(tǒng)無(wú)法匹配的異常數(shù)據(jù),為了便于分析,我們需要將三個(gè)集合中出現(xiàn)的長(zhǎng)款、短款、金額不一致等問(wèn)題記錄在差異表中,并同時(shí)登記產(chǎn)生差錯(cuò)的類型。 對(duì)于某些類型的差異數(shù)據(jù),對(duì)賬系統(tǒng)在后續(xù)的跑批中能夠自動(dòng)化處理,一致化交易數(shù)據(jù)。 而對(duì)于那些系統(tǒng)無(wú)法處理的異常,則需要人工干預(yù)排查問(wèn)題原因,并尋找合理的解決方式。 此外,由于各個(gè)支付系統(tǒng)的日切時(shí)間會(huì)存在細(xì)微的差異,對(duì)于可能在當(dāng)日的賬單數(shù)據(jù)中沒(méi)有匹配到待對(duì)賬的數(shù)據(jù)需要我們進(jìn)行滾動(dòng)對(duì)賬。

4、差錯(cuò)處理

另外,從技術(shù)角度發(fā)現(xiàn)對(duì)賬過(guò)程中逐行比對(duì)算法效率較低,但目前仍未找到更為合理的算法進(jìn)行替代,如采用數(shù)據(jù)庫(kù)INTERSECT、MINUS的方式進(jìn)行比對(duì)則將壓力轉(zhuǎn)嫁到了對(duì)數(shù)據(jù)庫(kù)側(cè)。當(dāng)業(yè)務(wù)呈井噴式增長(zhǎng)時(shí),大量的交易數(shù)據(jù)需要進(jìn)行對(duì)賬操作,也會(huì)導(dǎo)致數(shù)據(jù)庫(kù)負(fù)荷較高,通過(guò)讀寫(xiě)分離以及避開(kāi)交易高峰等空間換時(shí)間的操作雖然可降低生產(chǎn)系統(tǒng)的風(fēng)險(xiǎn),但仍沒(méi)有從根本上徹底解決問(wèn)題。后續(xù)優(yōu)化重構(gòu)的過(guò)程中也會(huì)嘗試使用Redis等NOSQL數(shù)據(jù)庫(kù)進(jìn)行對(duì)賬操作,如使用Redis的set集合的sdiff功能,返回兩個(gè)集合之間的差異集合,比對(duì)解析后的對(duì)賬單記錄和本地自有記錄的差異,降低對(duì)生產(chǎn)交易中的mysql數(shù)據(jù)庫(kù)的壓力,并且Redis數(shù)據(jù)庫(kù)在擴(kuò)展上也相對(duì)容易。
當(dāng)然,這個(gè)方案是否是最優(yōu)解仍需要驗(yàn)證后才可知,如何在特定的情況制定出一套最佳方案仍需要我們?cè)诼L(zhǎng)路上不斷探索與研究。
本文作者:興業(yè)數(shù)金供應(yīng)鏈金融事業(yè)部技術(shù)團(tuán)隊(duì) 張佳鵬
文章來(lái)源:興業(yè)數(shù)金公眾號(hào)(ID:gh_b700b775ae81)
原文鏈接:https://mp.weixin.qq.com/s/2tiHlWT_6iXmIRpxnlwCww
如有侵權(quán),請(qǐng)聯(lián)系刪除
未經(jīng)允許不得轉(zhuǎn)載:RPA中國(guó) | RPA全球生態(tài) | 數(shù)字化勞動(dòng)力 | RPA新聞 | 推動(dòng)中國(guó)RPA生態(tài)發(fā)展 | 流 > 對(duì)賬那些事兒
熱門(mén)信息
閱讀 (14728)
1 2023第三屆中國(guó)RPA+AI開(kāi)發(fā)者大賽圓滿收官&獲獎(jiǎng)名單公示閱讀 (13753)
2 《Market Insight:中國(guó)RPA市場(chǎng)發(fā)展洞察(2022)》報(bào)告正式發(fā)布 | RPA中國(guó)閱讀 (13055)
3 「RPA中國(guó)杯 · 第五屆RPA極客挑戰(zhàn)賽」成功舉辦及獲獎(jiǎng)名單公示閱讀 (12964)
4 與科技共贏,與產(chǎn)業(yè)共進(jìn),第四屆ISIG中國(guó)產(chǎn)業(yè)智能大會(huì)成功召開(kāi)閱讀 (11567)
5 《2022年中國(guó)流程挖掘行業(yè)研究報(bào)告》正式發(fā)布 | RPA中國(guó)