APP下载

银企互联扣费业务的对账调账策略

2014-05-30冼顺

电脑知识与技术 2014年9期

冼顺

摘要:银企互联业务流程复杂,涉及的系统多,网络拓扑结构复杂,在整个交互过程中难免有堵塞、丢包等异常情况发生。为该类业务设计一套合理完善的对账调账机制,是保证业务可持续发展,保证资金安全,减少错帐的必要手段。通过正确的对账策略发现各系统的状态不一致的交易,再通过对应的调账策略,最后把各系统的账务调整成一致。

关键词:对账;对账不一致;调账;单边帐

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)09-2166-03

随着计算机技术的发展以及金融代收付业务的普及,越来越多的企业和银行建立了计算机网络互联,来实现其代收付业务的自动化,以加快企业效率,降低人工成本。由于这个业务过程往往是建立在两个或两个以上的服务器系统之间进行通讯为基础的,网络连接随着系统的增加而变得复杂。各系统的业务处理复杂度高,系统的业务量大等原因,在整个通讯过程中每一个环节出现异常都会导致交易的异常。所以每天各系统间进行对账是核实各系统交易状态一致的必要手段,通过对账找出系统间的不一致交易,再通过适当的调账策略,以保证最后多个系统间的交易状态一致。该文以银企互联中的扣费业务为例,总结了这个业务过程中的对账、调账策略。

1 银企互联扣费业务流程

如图1是银企互联的一个典型的业务流程:

步骤1:A商家为电信公司的扣费系统,计算出客户该月的电话费后,根据客户签约的 扣款银行帐号,向银行发起扣费交易。

步骤2:银行中间业务系统收到扣费交易后做必要的检验通过后联动向核心系统发起扣款交易。

步骤3:银行核心系统处理扣款交易,处理完后,返回扣款结果给银行中间业务系统。

步骤4:中间业务系统做后续处理后,再把最终结果返回给电信公司扣费系统。

2 单边帐的产生

从图1可以看到A、B、C三个系统间有多次联动的交互,在步骤1、2、3、4的交互过程中,主要有一个环节出现网络故障、堵塞等异常时,A、B、C系统的状态就可能会出现不一致,导致单边帐的出现:

2.1 A不等于B

如图2,当步骤4在返回结果时出现超时或者丢包时,A收不到B的结果返回,A系统一般会根据开发时预设的规则,决定该笔交易的状态,一般会当成失败处理。但是B系统对该笔交易的处理可能是已经成功了,这时A和B的状态不一致,出现了单边帐。

2.2 B不等于C

如图3,当步骤3在返回结果时出现超时或者丢包时,B系统收不到C系统的返回,B系统也会根据开发时预设的规则,决定该笔交易的状态,一般会当成失败处理。但是C系统对该笔交易的处理可能是成功了,这时B和C的状态不一致,也出现了单边帐。

3 对账原则

银行中间业务系统在整个交易过程中充当一个中间角色。他既要和商家进行对账又要和核心系统进行对账。在两个部分的对账中都可能会出现对账不一致的情况。银行中间业务系统在和商家对账时,以银行中间业务系统的状态为准,商家根据银行中间业务系统的状态进行调帐。银行中间业务系统和银行核心业务系统对账时,以银行核心系统的状态为准,银行中间业务系统根据银行核心系统的状态进行调账。

4 对账的方法和步骤

4.1 银行中间业务系统和商家扣费系统对账

一般由银行中间业务系统日切后进行对账。银行中间业务系统统计当天处理成功的交易总笔数、总金额、所有交易的明细信息(包括日期、流水、帐号、金额、状态等)发送给商家系统 ,后续由商家系统进行对账处理。

4.2 银行中间业务系统和核心系统对账

核心系统日切后,统计当天处理成功的交易总笔数、总金额、所有交易的明细信息(包括日期、流水、帐号、金额、状态等)发送给中间业务系统,后续由中间业务系统进行对账处理。

4.3 对账处理的过程

1)先把收到的对方系统发来的对账汇总信息和明细信息进行入库处理。

2)统计本系统的总笔数、总金额,形成对账总表。

3)对比本系统的交易明细和核心系统发来的交易明细,形成对账明细表。

4)根据对账明细表,找出双方状态不一致的交易明细形成对账不一致表。

通过对账总表、对账明细表、对账不一致表,可以直观的反映出两个系统的账务一致性。

图4是银行核心系统和中间业务系统的对账流程图,中间业务系统和商家扣费系统的对账过程也基本一样。

5 对账不一致以及调账

5.1 单边帐情况1(A不等于B)

根据图2,商家扣费系统对完帐后应该会出现商家扣费系统失败,中间业务系统是成功的不一致情况。这时商家扣费系统根据不一致明细信息调整自己系统该笔交易的状态为成功,并按扣费成功的逻辑修改系统内相关的数据。

5.2 单边帐情况2(B不等于C)

根据图3,银行中间业务系统对完账后会出现中间业务系统失败,核心系统成功的不一致情况。这时中间业务系统返回给商家的结果也是失败状态,这时银行中间业务系统需要往核心系统发起冲正交易进行调账,把扣了客户的钱冲回去给客户。

6 异常的连锁反应

1)对账经常是在当天日切之后才进行,是相对滞后的。在对账调账发起之前这个时间内,针对该笔异常的扣费,如果又发起了第二次交易,情况会变得复杂。

2)单边帐情况1(A不等于B)时,当天如果发起第二次扣费并且成功,这时会导致对账后无法调整成功的情况,因为客户的欠费已经被第二次扣费处理成功了。这时,实际上对客户的欠费扣了两次钱。在系统设计时应考虑通过如下方法解决这种情况:

方法1:商家扣费系统可以对异常的交易标识为第三种状态,以区别于成功、失败的情形。对第三种状态的扣费交易通过晚上对账来明确该笔交易的最后状态为成功或者失败,再做下一步处理。从而避免多次扣取客户的钱。

方法2:银行中间业务系统提供冲正接口给商家扣费系统,商家扣费系统对完帐后对于自己失败,中间业务系统成功的交易,在调账时无法调成功的,发起冲正。

3)单边帐情况2(B不等于C)时,如果商家扣费系统发起第二次扣费并且成功,这时也会导致扣了客户两次钱,在系统设计时应考虑通过如下方法解决这种情况:方法1:电信扣费系统每天只发起一次扣费,如果失败,下一天再发起扣费。

方法2:银行中间业务系统对账后发起冲正,把多扣客户的钱冲回去。

7 结束语

银企互联的业务种类繁多,这里只是列举了一个常见的例子进行了分析,其他异常情况的处理思想也是相通的。对账和调账就是以保证双方系统的账务一致性、保证资金安全为首要原则,它应该是在系统建设方案设定的时候就制定好的一个规范。

参考文献:

[1] 理查德·史蒂文斯.UNIX环境高级编程 [M]. 2版. 张亚英,戚正伟,译.北京: 人民邮电出版社, 2006:450-455.

[2] Mcdonald C.精通Oracle PL/SQL [M]. 蔡伟毅,译.北京: 人民邮电出版社,2009:47-53.

[3] Jon C.TCP/IP高效编程[M].陈涓,赵振平,译.北京: 人民邮电出版社,2011:210-215.