解决系统间交易实时对账的实现方法、装置及存储介质制造方法及图纸

技术编号:36344210 阅读:8 留言:0更新日期:2023-01-14 17:58
本发明专利技术涉及数据处理领域,提供一种解决系统间交易实时对账的实现方法、装置及存储介质。目的在于解决现有技术通过日志文件捕获数据存在的需要清洗、转换等操作导致的效率不高的问题。主要方案包括将上下游系统交易信息的实时同步;不管是系统A还是系统B的数据变化请求,统一处理逻辑完成对账操作。http服务中拿到上下游系统的对账数据后,通过redis缓存对账数据,因为对账数据大多都是临时数据,对账完成后就可以删除,利用redis的快速存储和删除特点,再加上对key值合理的设计,实现了“拿一条对一条”的对账效果,而传统的对账方法都是将这些对账数据持久化到数据库表中,再开启定时任务去批量处理这些对账数据。定时任务去批量处理这些对账数据。定时任务去批量处理这些对账数据。

【技术实现步骤摘要】
解决系统间交易实时对账的实现方法、装置及存储介质


[0001]本专利技术涉及数据处理领域,提供一种解决系统间交易实时对账的实现方法、装置及存储介质。

技术介绍

[0002]目前银行所有涉及账务相关业务系统,基本都有对账模块,而传统的对账方式有两种:第一种是隔日对账,比如支付系统发一笔实时记账请求到核心系统,但是由于网络超时或其它异常,导致支付系统无法拿到请求的最终结果,支付系统会在T+1日获取核心T日的交易对账文件进行核对,核对完成后将T日交易置为终态。这种隔日对账的做法,在现在的互联网业务来看,时间周期长,客户体验度差,并且可能会由于支付系统对此类异常交易的处理不当,导致出现短款或长款的风险。
[0003]第二种是准实时对账,通过定时扫描上下游系统的数据库日志文件,解析获取交易增量数据,然后再统一存到对账数据库中,进行对账。这种对账做法,需要对日志文件中的业务数据进行一系列的数据清洗、转换、存储等,效率不高,并且额外存放了一份业务数据,还存在业务敏感数据泄露的风险。

技术实现思路

[0004]本专利技术的目的在于解决现有技术通过日志文件捕获数据存在的需要清洗、转换等操作导致的效率不高的问题。
[0005]为了实现上述目的本专利技术采用以下技术手段:
[0006]本专利技术提供了一种解决系统间交易实时对账的实现方法,包括以下步骤:
[0007]步骤1、上游系统A发送一笔请求至下游系统B,请求流水号S分别保存至系统A和系统B的交易流水表中,将流水号S作为系统A和系统B的对账流水号,并保证唯一;
[0008]步骤2、通过程序监听上游系统A和下游系统B的数据库表数据变化,并实时发送到http服务,实现上下游系统交易信息的实时同步;
[0009]步骤3、在http服务接口接收到请求后,不管是系统A还是系统B的数据变化请求,统一处理逻辑如下步骤4步骤9:
[0010]步骤4、将对账流水号S和系统标识组合作为key值,其它对账字段信息组合作为value,存入redis,若key值已存在,执行步骤5,若key值不存在,执行步骤6;
[0011]其中上游系统A的请求则key值为A_S,下游系统B的请求则key值为B_S
[0012]步骤5、如果当前请求的数据所属系统A,则更新key值为A_S的value值,如果当前请求的数据所属系统B,则更新key值为B_S的value值,表示是数据update操作;
[0013]步骤6、如果当前接收到的请求数据是系统B,执行步骤7,如果当前接收到的请求数据是系统A,执行步骤8;
[0014]步骤7、使用上游系统A的系统标识和对账流水号S组合作为key值A_S,再判断一次key值A_S在redis中是否存在,如果存在,取出key值为A_S对应的value信息,并与当前接收
到的下游系统B的数据进行比较,执行对账逻辑,如果不存在,使用系统B与对账流水号B_S作为key值,当前请求接收到的对账字段数据组合作为value,存入redis,进入步骤9;
[0015]步骤8、使用下游系统B的系统标识和对账流水号S组合作为key值B_S,再判断一次key值B_S在redis中是否存在,如果存在,取出key值为B_S对应的value信息,并与当前接收到的上游系统A的数据进行比较,执行对账逻辑,如果不存在,使用系统A与对账流水号A_S作为key值,当前请求接收到的对账字段数据组合作为value,存入redis,进入步骤9;
[0016]步骤9、将对账成功的数据从redis中删除,对账失败的数据先持久化到对账异常表并及时预警,再从redis中删除,便于后续处理;对于redis中未进行对账的数据,通过设置一个阈值,将超过阈值时间的redis数据作交易失败状态对账,对账成功后进行删除。
[0017]上述技术方案中,步骤2包括以下步骤:
[0018]步骤2.1、开发http服务接口,接收对数据库表变更操作即时捕获的请求,再对这些变更的数据进行对账处理,对账处理过程从步骤3开始;
[0019]步骤2.2、用上游系统A数据库的管理员账户创建ACL访问控制文件,配置ACL访问http服务的域名、IP、端口,并为上游系统A使用的数据库用户U1授权对UTL_HTTP包的执行权限;
[0020]步骤2.3、用数据库用户U1创建函数或存储过程F1,函数中通过UTP_HTTP包的BEGIN_REQUEST方法,调起http服务接口,发送http请求;
[0021]步骤2.4、用数据库用户U1创建触发器,监听系统A的交易流水表,一旦发生insert、update操作,调用函数或存储过程F1,在函数中提取需要对账的核心字段传入http服务;
[0022]步骤2.5、通过步骤2.22.4实现了系统A交易流水表实时数据变化的捕获,系统B重复步骤2.22.4的步骤操作即可。
[0023]本专利技术还提供了一种解决系统间交易实时对账的实现装置,包括以下模块:
[0024]请求流水号定义模块、上游系统A发送一笔请求至下游系统B,请求流水号S分别保存至系统A和系统B的交易流水表中,将流水号S作为系统A和系统B的对账流水号,并保证唯一;
[0025]实时同步模块、通过程序监听上游系统A和下游系统B的数据库表数据变化,并实时发送到http服务,实现上下游系统交易信息的实时同步;
[0026]逻辑处理模块、在http服务接口接收到请求后,不管是系统A还是系统B的数据变化请求,统一处理逻辑如下步骤1

步骤6:
[0027]步骤1、将对账流水号S和系统标识组合作为key值,其它对账字段信息组合作为value,存入redis,若key值已存在,执行步骤2,若key值不存在,执行步骤3;
[0028]其中上游系统A的请求则key值为A_S,下游系统B的请求则key值为B_S
[0029]步骤2、如果当前请求的数据所属系统A,则更新key值为A_S的value值,如果当前请求的数据所属系统B,则更新key值为B_S的value值,表示是数据update操作;
[0030]步骤3、如果当前接收到的请求数据是系统B,执行步骤4,如果当前接收到的请求数据是系统A,执行步骤5;
[0031]步骤4、使用上游系统A的系统标识和对账流水号s组合作为key值A_S,再判断一次key值A_S在redis中是否存在,如果存在,取出key值为A_S对应的value信息,并与当前接收
到的下游系统B的数据进行比较,执行对账逻辑,如果不存在,使用系统B与对账流水号B_S作为key值,当前请求接收到的对账字段数据组合作为value,存入redis,进入步骤6;
[0032]步骤5、使用下游系统B的系统标识和对账流水号S组合作为key值B_S,再判断一次key值B_S在redis中是否存在,如果存在,取出key值为B_S对应的value信息,并与当前接收到的上游系统A的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种解决系统间交易实时对账的实现方法,其特征在于,包括以下步骤:步骤1、上游系统A发送一笔请求至下游系统B,请求流水号S分别保存至系统A和系统B的交易流水表中,将流水号S作为系统A和系统B的对账流水号,并保证唯一;步骤2、通过程序监听上游系统A和下游系统B的数据库表数据变化,并实时发送到http服务,实现上下游系统交易信息的实时同步;步骤3、在http服务接口接收到请求后,不管是系统A还是系统B的数据变化请求,统一处理逻辑如下步骤4

步骤9:步骤4、将对账流水号S和系统标识组合作为key值,其它对账字段信息组合作为value,存入redis,若key值已存在,执行步骤5,若key值不存在,执行步骤6;其中上游系统A的请求则key值为A_S,下游系统B的请求则key值为B_S步骤5、如果当前请求的数据所属系统A,则更新key值为A_S的value值,如果当前请求的数据所属系统B,则更新key值为B_S的value值,表示是数据update操作;步骤6、如果当前接收到的请求数据是系统B,执行步骤7,如果当前接收到的请求数据是系统A,执行步骤8;步骤7、使用上游系统A的系统标识和对账流水号S组合作为key值A_S,再判断一次key值A_S在redis中是否存在,如果存在,取出key值为A_S对应的value信息,并与当前接收到的下游系统B的数据进行比较,执行对账逻辑,如果不存在,使用系统B与对账流水号B_S作为key值,当前请求接收到的对账字段数据组合作为value,存入redis,进入步骤9;步骤8、使用下游系统B的系统标识和对账流水号S组合作为key值B_S,再判断一次key值B_S在redis中是否存在,如果存在,取出key值为B_S对应的value信息,并与当前接收到的上游系统A的数据进行比较,执行对账逻辑,如果不存在,使用系统A与对账流水号A_S作为key值,当前请求接收到的对账字段数据组合作为value,存入redis,进入步骤9;步骤9、将对账成功的数据从redis中删除,对账失败的数据先持久化到对账异常表并及时预警,再从redis中删除,便于后续处理;对于redis中未进行对账的数据,通过设置一个阈值,将超过阈值时间的redis数据作交易失败状态对账,对账成功后进行删除。2.根据权利要求1所述的一种解决系统间交易实时对账的实现方法,其特征在于,步骤2包括以下步骤:步骤2.1、开发http服务接口,接收对数据库表变更操作即时捕获的请求,再对这些变更的数据进行对账处理,对账处理过程从步骤3开始;步骤2.2、用上游系统A数据库的管理员账户创建ACL访问控制文件,配置ACL访问http服务的域名、IP、端口,并为上游系统A使用的数据库用户U1授权对UTL_HTTP包的执行权限;步骤2.3、用数据库用户U1创建函数或存储过程F1,函数中通过UTP_HTTP包的BEGIN_REQUEST方法,调起http服务接口,发送http请求;步骤2.4、用数据库用户U1创建触发器,监听系统A的交易流水表,一旦发生insert、update操作,调用函数或存储过程F1,在函数中提取需要对账的核心字段传入http服务;步骤2.5、通过步骤2.22.4实现了系统A交易流水表实时数据变化的捕获,系统B重复步骤2.22.4的步骤操作即可。3.一种解决系统间交易实时对账的实现装置,其特征在于,包括以下模块:请求流水号定义模块、上游系统A发送一笔请求至下游系统B...

【专利技术属性】
技术研发人员:廖浩徐晋毅
申请(专利权)人:武汉众邦银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1