冼順
摘要:銀企互聯(lián)業(yè)務(wù)流程復(fù)雜,涉及的系統(tǒng)多,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)復(fù)雜,在整個(gè)交互過程中難免有堵塞、丟包等異常情況發(fā)生。為該類業(yè)務(wù)設(shè)計(jì)一套合理完善的對賬調(diào)賬機(jī)制,是保證業(yè)務(wù)可持續(xù)發(fā)展,保證資金安全,減少錯(cuò)帳的必要手段。通過正確的對賬策略發(fā)現(xiàn)各系統(tǒng)的狀態(tài)不一致的交易,再通過對應(yīng)的調(diào)賬策略,最后把各系統(tǒng)的賬務(wù)調(diào)整成一致。
關(guān)鍵詞:對賬;對賬不一致;調(diào)賬;單邊帳
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)09-2166-03
隨著計(jì)算機(jī)技術(shù)的發(fā)展以及金融代收付業(yè)務(wù)的普及,越來越多的企業(yè)和銀行建立了計(jì)算機(jī)網(wǎng)絡(luò)互聯(lián),來實(shí)現(xiàn)其代收付業(yè)務(wù)的自動(dòng)化,以加快企業(yè)效率,降低人工成本。由于這個(gè)業(yè)務(wù)過程往往是建立在兩個(gè)或兩個(gè)以上的服務(wù)器系統(tǒng)之間進(jìn)行通訊為基礎(chǔ)的,網(wǎng)絡(luò)連接隨著系統(tǒng)的增加而變得復(fù)雜。各系統(tǒng)的業(yè)務(wù)處理復(fù)雜度高,系統(tǒng)的業(yè)務(wù)量大等原因,在整個(gè)通訊過程中每一個(gè)環(huán)節(jié)出現(xiàn)異常都會(huì)導(dǎo)致交易的異常。所以每天各系統(tǒng)間進(jìn)行對賬是核實(shí)各系統(tǒng)交易狀態(tài)一致的必要手段,通過對賬找出系統(tǒng)間的不一致交易,再通過適當(dāng)?shù)恼{(diào)賬策略,以保證最后多個(gè)系統(tǒng)間的交易狀態(tài)一致。該文以銀企互聯(lián)中的扣費(fèi)業(yè)務(wù)為例,總結(jié)了這個(gè)業(yè)務(wù)過程中的對賬、調(diào)賬策略。
1 銀企互聯(lián)扣費(fèi)業(yè)務(wù)流程
如圖1是銀企互聯(lián)的一個(gè)典型的業(yè)務(wù)流程:
步驟1:A商家為電信公司的扣費(fèi)系統(tǒng),計(jì)算出客戶該月的電話費(fèi)后,根據(jù)客戶簽約的 扣款銀行帳號,向銀行發(fā)起扣費(fèi)交易。
步驟2:銀行中間業(yè)務(wù)系統(tǒng)收到扣費(fèi)交易后做必要的檢驗(yàn)通過后聯(lián)動(dòng)向核心系統(tǒng)發(fā)起扣款交易。
步驟3:銀行核心系統(tǒng)處理扣款交易,處理完后,返回扣款結(jié)果給銀行中間業(yè)務(wù)系統(tǒng)。
步驟4:中間業(yè)務(wù)系統(tǒng)做后續(xù)處理后,再把最終結(jié)果返回給電信公司扣費(fèi)系統(tǒng)。
2 單邊帳的產(chǎn)生
從圖1可以看到A、B、C三個(gè)系統(tǒng)間有多次聯(lián)動(dòng)的交互,在步驟1、2、3、4的交互過程中,主要有一個(gè)環(huán)節(jié)出現(xiàn)網(wǎng)絡(luò)故障、堵塞等異常時(shí),A、B、C系統(tǒng)的狀態(tài)就可能會(huì)出現(xiàn)不一致,導(dǎo)致單邊帳的出現(xiàn):
2.1 A不等于B
如圖2,當(dāng)步驟4在返回結(jié)果時(shí)出現(xiàn)超時(shí)或者丟包時(shí),A收不到B的結(jié)果返回,A系統(tǒng)一般會(huì)根據(jù)開發(fā)時(shí)預(yù)設(shè)的規(guī)則,決定該筆交易的狀態(tài),一般會(huì)當(dāng)成失敗處理。但是B系統(tǒng)對該筆交易的處理可能是已經(jīng)成功了,這時(shí)A和B的狀態(tài)不一致,出現(xiàn)了單邊帳。
2.2 B不等于C
如圖3,當(dāng)步驟3在返回結(jié)果時(shí)出現(xiàn)超時(shí)或者丟包時(shí),B系統(tǒng)收不到C系統(tǒng)的返回,B系統(tǒng)也會(huì)根據(jù)開發(fā)時(shí)預(yù)設(shè)的規(guī)則,決定該筆交易的狀態(tài),一般會(huì)當(dāng)成失敗處理。但是C系統(tǒng)對該筆交易的處理可能是成功了,這時(shí)B和C的狀態(tài)不一致,也出現(xiàn)了單邊帳。
3 對賬原則
銀行中間業(yè)務(wù)系統(tǒng)在整個(gè)交易過程中充當(dāng)一個(gè)中間角色。他既要和商家進(jìn)行對賬又要和核心系統(tǒng)進(jìn)行對賬。在兩個(gè)部分的對賬中都可能會(huì)出現(xiàn)對賬不一致的情況。銀行中間業(yè)務(wù)系統(tǒng)在和商家對賬時(shí),以銀行中間業(yè)務(wù)系統(tǒng)的狀態(tài)為準(zhǔn),商家根據(jù)銀行中間業(yè)務(wù)系統(tǒng)的狀態(tài)進(jìn)行調(diào)帳。銀行中間業(yè)務(wù)系統(tǒng)和銀行核心業(yè)務(wù)系統(tǒng)對賬時(shí),以銀行核心系統(tǒng)的狀態(tài)為準(zhǔn),銀行中間業(yè)務(wù)系統(tǒng)根據(jù)銀行核心系統(tǒng)的狀態(tài)進(jìn)行調(diào)賬。
4 對賬的方法和步驟
4.1 銀行中間業(yè)務(wù)系統(tǒng)和商家扣費(fèi)系統(tǒng)對賬
一般由銀行中間業(yè)務(wù)系統(tǒng)日切后進(jìn)行對賬。銀行中間業(yè)務(wù)系統(tǒng)統(tǒng)計(jì)當(dāng)天處理成功的交易總筆數(shù)、總金額、所有交易的明細(xì)信息(包括日期、流水、帳號、金額、狀態(tài)等)發(fā)送給商家系統(tǒng) ,后續(xù)由商家系統(tǒng)進(jìn)行對賬處理。
4.2 銀行中間業(yè)務(wù)系統(tǒng)和核心系統(tǒng)對賬
核心系統(tǒng)日切后,統(tǒng)計(jì)當(dāng)天處理成功的交易總筆數(shù)、總金額、所有交易的明細(xì)信息(包括日期、流水、帳號、金額、狀態(tài)等)發(fā)送給中間業(yè)務(wù)系統(tǒng),后續(xù)由中間業(yè)務(wù)系統(tǒng)進(jìn)行對賬處理。
4.3 對賬處理的過程
1)先把收到的對方系統(tǒng)發(fā)來的對賬匯總信息和明細(xì)信息進(jìn)行入庫處理。
2)統(tǒng)計(jì)本系統(tǒng)的總筆數(shù)、總金額,形成對賬總表。
3)對比本系統(tǒng)的交易明細(xì)和核心系統(tǒng)發(fā)來的交易明細(xì),形成對賬明細(xì)表。
4)根據(jù)對賬明細(xì)表,找出雙方狀態(tài)不一致的交易明細(xì)形成對賬不一致表。
通過對賬總表、對賬明細(xì)表、對賬不一致表,可以直觀的反映出兩個(gè)系統(tǒng)的賬務(wù)一致性。
圖4是銀行核心系統(tǒng)和中間業(yè)務(wù)系統(tǒng)的對賬流程圖,中間業(yè)務(wù)系統(tǒng)和商家扣費(fèi)系統(tǒng)的對賬過程也基本一樣。
5 對賬不一致以及調(diào)賬
5.1 單邊帳情況1(A不等于B)
根據(jù)圖2,商家扣費(fèi)系統(tǒng)對完帳后應(yīng)該會(huì)出現(xiàn)商家扣費(fèi)系統(tǒng)失敗,中間業(yè)務(wù)系統(tǒng)是成功的不一致情況。這時(shí)商家扣費(fèi)系統(tǒng)根據(jù)不一致明細(xì)信息調(diào)整自己系統(tǒng)該筆交易的狀態(tài)為成功,并按扣費(fèi)成功的邏輯修改系統(tǒng)內(nèi)相關(guān)的數(shù)據(jù)。
5.2 單邊帳情況2(B不等于C)
根據(jù)圖3,銀行中間業(yè)務(wù)系統(tǒng)對完賬后會(huì)出現(xiàn)中間業(yè)務(wù)系統(tǒng)失敗,核心系統(tǒng)成功的不一致情況。這時(shí)中間業(yè)務(wù)系統(tǒng)返回給商家的結(jié)果也是失敗狀態(tài),這時(shí)銀行中間業(yè)務(wù)系統(tǒng)需要往核心系統(tǒng)發(fā)起沖正交易進(jìn)行調(diào)賬,把扣了客戶的錢沖回去給客戶。
6 異常的連鎖反應(yīng)
1)對賬經(jīng)常是在當(dāng)天日切之后才進(jìn)行,是相對滯后的。在對賬調(diào)賬發(fā)起之前這個(gè)時(shí)間內(nèi),針對該筆異常的扣費(fèi),如果又發(fā)起了第二次交易,情況會(huì)變得復(fù)雜。
2)單邊帳情況1(A不等于B)時(shí),當(dāng)天如果發(fā)起第二次扣費(fèi)并且成功,這時(shí)會(huì)導(dǎo)致對賬后無法調(diào)整成功的情況,因?yàn)榭蛻舻那焚M(fèi)已經(jīng)被第二次扣費(fèi)處理成功了。這時(shí),實(shí)際上對客戶的欠費(fèi)扣了兩次錢。在系統(tǒng)設(shè)計(jì)時(shí)應(yīng)考慮通過如下方法解決這種情況:
方法1:商家扣費(fèi)系統(tǒng)可以對異常的交易標(biāo)識為第三種狀態(tài),以區(qū)別于成功、失敗的情形。對第三種狀態(tài)的扣費(fèi)交易通過晚上對賬來明確該筆交易的最后狀態(tài)為成功或者失敗,再做下一步處理。從而避免多次扣取客戶的錢。
方法2:銀行中間業(yè)務(wù)系統(tǒng)提供沖正接口給商家扣費(fèi)系統(tǒng),商家扣費(fèi)系統(tǒng)對完帳后對于自己失敗,中間業(yè)務(wù)系統(tǒng)成功的交易,在調(diào)賬時(shí)無法調(diào)成功的,發(fā)起沖正。
3)單邊帳情況2(B不等于C)時(shí),如果商家扣費(fèi)系統(tǒng)發(fā)起第二次扣費(fèi)并且成功,這時(shí)也會(huì)導(dǎo)致扣了客戶兩次錢,在系統(tǒng)設(shè)計(jì)時(shí)應(yīng)考慮通過如下方法解決這種情況:方法1:電信扣費(fèi)系統(tǒng)每天只發(fā)起一次扣費(fèi),如果失敗,下一天再發(fā)起扣費(fèi)。
方法2:銀行中間業(yè)務(wù)系統(tǒng)對賬后發(fā)起沖正,把多扣客戶的錢沖回去。
7 結(jié)束語
銀企互聯(lián)的業(yè)務(wù)種類繁多,這里只是列舉了一個(gè)常見的例子進(jìn)行了分析,其他異常情況的處理思想也是相通的。對賬和調(diào)賬就是以保證雙方系統(tǒng)的賬務(wù)一致性、保證資金安全為首要原則,它應(yīng)該是在系統(tǒng)建設(shè)方案設(shè)定的時(shí)候就制定好的一個(gè)規(guī)范。
參考文獻(xiàn):
[1] 理查德·史蒂文斯.UNIX環(huán)境高級編程 [M]. 2版. 張亞英,戚正偉,譯.北京: 人民郵電出版社, 2006:450-455.
[2] Mcdonald C.精通Oracle PL/SQL [M]. 蔡偉毅,譯.北京: 人民郵電出版社,2009:47-53.
[3] Jon C.TCP/IP高效編程[M].陳涓,趙振平,譯.北京: 人民郵電出版社,2011:210-215.