一种对账数据处理方法和装置与流程

    专利查询2022-08-27  100



    1.本发明涉及计算机技术领域,尤其涉及一种对账数据处理方法和装置。


    背景技术:

    2.为拓展交易场景,一些信贷公司与银行进行合作,合作模式为用户在支付渠道绑定虚拟银行储蓄卡进行消费、转账、充值等操作,来扣减用户信贷可用额度。为确保交易信息的一致性以及扣减额度的准确性,需要定期对银行侧交易数据与借贷公司交易数据进行核对。
    3.传统的数据核对方式一般是银行侧给出对账文件,然后导入数据库,逐条与借贷公司的交易记录进行核对。如果文件过大则耗时较长,现有也并未在后台页面显示对账结果。为了提高对账效率以及对账的灵活性,目前虽有提供相应对账方法,但这些方法至少存在如下问题:
    4.1、需根据关键字对对账文件进行排序操作,一定程度上影响效率;无法支持多种业务类型的对账文件,且对账字段不能参数化配置。
    5.2、需对原始对账文件再次进行数据加工,效率较低;过于依赖redis(一种键-值数据库)中间件,风险性较大,且没有风险规避方案;当对账文件较大时,容易造成redis内存不足,引发对账错误、对账异常问题。


    技术实现要素:

    6.有鉴于此,本发明实施例提供一种对账数据处理方法和装置,至少能够解决现有技术中对账效率和灵活性不高的现象。
    7.为实现上述目的,根据本发明实施例的一个方面,提供了一种对账数据处理方法,应用于对账系统,所述对账系统与第一对账端和第二对账端通信连接,包括:
    8.在监听到第一对账端发送的对账文件后,解析所述对账文件,得到交易明细数据;以及在监听到第二对账端发送的业务数据后,对所述业务数据进行对象转换处理,得到转换后的业务对象;
    9.扫描当前状态为未核对的交易对象,生成对账消息队列mq消息,确定与所述交易对象对应的目标对账端;其中,所述交易对象包括所述交易明细数据和所述业务对象之中的至少一项;
    10.将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,并将本次核对的交易明细数据和业务对象的状态更改为已核对。
    11.可选的,所述对账系统还包括对账数据库,用于存储对账文件明细表和交易记录明细表,对账文件明细表用于存储交易明细数据,交易记录明细表用于存储业务对象;
    12.在监听到第一对账端发送的对账文件之后,还包括:
    13.基于所述对账文件的文件名,在缓存中进行防重校验,若校验结果为存在,则停止对账流程;以及
    14.基于所述对账文件的文件名,在所述对账数据库的对账文件名表中进行防重校验,若校验结果为存在,则停止对账流程。
    15.可选的,还包括:
    16.响应于监听到服务器的预设目录下存在对账文件,确定与第一对账端对应的本地临时目录,将所述对账文件下载到所述本地临时目录下,并上传到云存储中;以及
    17.在检测到所述对账文件的状态为已核对后,对所述本地临时目录下的所述对账文件进行清除处理。
    18.可选的,所述解析所述对账文件,包括:
    19.解析所述对账文件,得到文件头信息和其他行信息,对文件头信息中记录的交易总条数和交易总金额,和其他行信息中记录的交易条数和交易金额汇总后的信息进行校验,若校验结果为相同,则确定对账文件可用,否则为不可用。
    20.可选的,所述将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,包括执行下述步骤的至少一项:
    21.响应于对账mq消息包含交易明细数据,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据交易明细数据中的第一交易流水号,获取第二对账端中与所述第一交易流水号对应的业务对象,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;
    22.响应于对账mq消息包含业务对象,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据业务对象中的第二交易流水号,获取第一对账端中与所述第二交易流水号对应的交易明细数据,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。
    23.可选的,所述将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,包括执行下述步骤的至少一项:
    24.响应于对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;
    25.响应于对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。
    26.为实现上述目的,根据本发明实施例的另一方面,提供了一种对账数据处理装置,应用于对账系统,所述对账系统与第一对账端和第二对账端通信连接,包括:
    27.对账文件接收模块,用于在监听到第一对账端发送的对账文件后,解析所述对账文件,得到交易明细数据;
    28.业务数据接收模块,用于在监听到第二对账端发送的业务数据后,对所述业务数据进行对象转换处理,得到转换后的业务对象;
    29.扫描模块,用于扫描当前状态为未核对的交易对象,生成对账消息队列mq消息,确定与所述交易对象对应的目标对账端;其中,所述交易对象包括所述交易明细数据和所述
    业务对象之中的至少一项;
    30.处理模块,用于将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,并将本次核对的交易明细数据和业务对象的状态更改为已核对。
    31.可选的,所述对账系统还包括对账数据库,用于存储对账文件明细表和交易记录明细表,对账文件明细表用于存储交易明细数据,交易记录明细表用于存储业务对象;
    32.所述对账文件接收模块,还用于:
    33.基于所述对账文件的文件名,在缓存中进行防重校验,若校验结果为存在,则停止对账流程;以及
    34.基于所述对账文件的文件名,在所述对账数据库的对账文件名表中进行防重校验,若校验结果为存在,则停止对账流程。
    35.可选的,所述对账文件接收模块,还用于:
    36.响应于监听到服务器的预设目录下存在对账文件,确定与第一对账端对应的本地临时目录,将所述对账文件下载到所述本地临时目录下,并上传到云存储中;以及
    37.在检测到所述对账文件的状态为已核对后,对所述本地临时目录下的所述对账文件进行清除处理。
    38.可选的,所述对账文件接收模块,用于:
    39.解析所述对账文件,得到文件头信息和其他行信息,对文件头信息中记录的交易总条数和交易总金额,和其他行信息中记录的交易条数和交易金额汇总后的信息进行校验,若校验结果为相同,则确定对账文件可用,否则为不可用。
    40.可选的,所述处理模块,用于执行下述步骤的至少一项:
    41.响应于对账mq消息包含交易明细数据,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据交易明细数据中的第一交易流水号,获取第二对账端中与所述第一交易流水号对应的业务对象,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;
    42.响应于对账mq消息包含业务对象,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据业务对象中的第二交易流水号,获取第一对账端中与所述第二交易流水号对应的交易明细数据,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。
    43.可选的,所述处理模块,用于执行下述步骤的至少一项:
    44.响应于对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;
    45.响应于对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。所述对账文件接收模块,还用于所述对账文件接收模块,还用于所述对账文件接收模块,用于
    46.为实现上述目的,根据本发明实施例的再一方面,提供了一种对账电子设备。
    47.本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的对账数据处理方法。
    48.为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的对账数据处理方法。
    49.根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:在监听到银行侧文件时进行解析,写入对账文件明细表,在监听业务mq消息后写入交易明细表,定时扫描这两个表以查询出状态为未核对的交易对象,进而使得相应目标对账端对交易对象进行对账处理,以此基于消息驱动的方式提升并行处理批次,提高对账效率,且批次大小可配置,避免文件过大无法对账的问题。
    50.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
    附图说明
    51.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
    52.图1是根据本发明实施例的一种对账数据处理方法的主要流程示意图;
    53.图2是根据本发明实施例的一具体地对账数据处理方法的流程示意图;
    54.图3是根据本发明实施例的另一具体地对账数据处理方法的流程示意图;
    55.图4是根据本发明实施例的一种对账数据处理装置的主要模块示意图;
    56.图5是模块之间的连接关系图;
    57.图6是本发明实施例可以应用于其中的示例性系统架构图;
    58.图7是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
    具体实施方式
    59.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
    60.对于本方案涉及的词语,做解释如下:
    61.cron表达式:是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义。
    62.redis:是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。
    63.消息队列(message queue,mq):一种应用程序对应用程序的通信方法。
    64.参见图1,示出的是本发明实施例提供的一种对账数据处理方法的主要流程图,包括如下步骤:
    65.s101:在监听到第一对账端发送的对账文件后,解析所述对账文件,得到交易明细数据;
    66.s102:在监听到第二对账端发送的业务数据后,对所述业务数据进行对象转换处理,得到转换后的业务对象;
    67.s103:扫描当前状态为未核对的交易对象,生成对账消息队列mq消息,确定与所述交易对象对应的目标对账端;其中,所述交易对象包括所述交易明细数据和所述业务对象之中的至少一项;
    68.s104:将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,并将本次核对的交易明细数据和业务对象的状态更改为已核对。
    69.上述实施方式中,对于步骤s101,本方案以第一对账端为银行侧,第二对账端为业务侧为例进行说明,两者均与对账系统交互。银行侧实时将对账文件上传到sftp(帮助用户通过安全文件传输协议)服务器。对账系统中设置有对账文件接收模块,用以实时监听sftp服务器预设目录下是否存在银行侧上传的对账文件。若存在对账文件,则以对账文件的文件名为key,在缓存中进行防重校验,以校验缓存中是否已存在该对账文件,以防止银行侧上传多个重复的对账文件,导致系统多次重复对账问题。
    70.进一步的,对账系统还可以以对账文件的文件名为key,在对账数据库中进行防重校验,查询对账数据库的对账文件名表中是否已存在相关记录,若存有该对账文件的文件名,则表明该对账文件已进行核对,无需再处理,以此进行对账数据库兜底防重。
    71.实际操作中可能会存有多个银行侧,因而对账系统可以预先针对不同的银行侧,设置不同的本地临时目录,将某一银行侧上传的对账文件下载到相应本地临时目录下,并上传到云存储中,以便后台能下载对账文件进行文件溯源,防止文件丢失。需要说明的是,本地临时目录下存储的均是状态为未核对的对账文件,若某一对账文件的状态更改为已核对,则会即时/定时对其进行清除操作。
    72.另外,云存储是一个必选项,若未设置云存储,1)后台对文件查询展示较为困难,不能针对某个对账文件进行下载操作;2)文件信息不可追溯,当sftp服务器异常时,银行侧上传的对账文件查询不到,造成工作人员不必要的工作,解决问题的周期长,效率低且操作较为复杂;3)不能线下有针对性的对某个对账文件,实施手动上传操作。
    73.按照文件对账规则,对该对账文件进行解析操作。此处的文件对账规则,是指后台配置的本机临时文件下载地址、sftp服务器上传文件地址、文件每行数据分隔符定义,文件开始行号、结束行号、每行数据定义等。
    74.例如:对账文件的文件头(即第一行)记录有交易总条数、交易总金额、交易日期、交易账户信息,如3|64.6|20210410|2950000001|,以“|”为间隔。其他行则记录有:交易流水号|虚拟卡号|交易金额|交易类型(ft0001消费、ft0002撤单、ft0003退货)|交易时间|原交易流水号(退货需要)|来源渠道|交易分类|。如:
    75.8d08acdd0e3d4f7d9b936c7e01ff125b|623185008016391707|33.8|ft0001|20210410|151934||am||00|
    76.8a6341dd4b0b43dc9c6af1fc9029c02d|623185008003078390|6.5|ft0001|20210410|152558||am||00|
    77.b560deb214684de8b2c9500e1ab9df31|623185008002349495|24.3|ft0001|20210410|132324||am||00|
    78.数据之间都是以“|”进行间隔的,需解析对账文件后才能获得各个数据,所以需要
    解析操作。
    79.对银行侧对账文件中文件头记录的交易总条数和交易总金额,和除了文件头外,其他行记录的交易明细的总笔数和总金额进行核对,以校验对账文件内部所记载内容的完整性和正确性。例如,文件头记录的交易总条数为5、交易总金额为64.3,而其他行汇总后的交易总条数为4、交易金额为58,即表示该对账文件的内容是不可使用的。
    80.银行侧的对账文件是包含银行侧交易明细数据的,因而对账文件的内容在校验通过后,需要把这部分交易明细数据入库(对账数据库),存入对账文件明细表中,以便后续使用。
    81.对于步骤s102,业务侧发送业务数据mq给mq服务器。对账系统中的业务数据接收模块,实时监听业务系统发送的mq消息,并对监听到的业务数据进行对象转换处理,之后将转换后的业务对象存入对账数据库的交易记录明细表中。其中,mq消息包含消费数据信息、还款数据信息、退款数据信息等。
    82.业务数据通常都是json形式的字符串,例如:商户信息
    [0083][0084]
    需要把json串转换为java对象merchant,具有属性字段merchantcode、submerchantcode、submerchantname程序才能使用。
    [0085]
    需要说明的是,业务侧不需要上传对账文件,只需在做完每笔业务交易后,把业务mq消息发给mq服务器即可,由业务数据接收模块监听mq消息进行入库处理。
    [0086]
    对于步骤s103和s104,银行侧对账文件明细表和业务侧交易记录明细表均设置于对账数据库中。对账系统设置的扫描模块,分别扫描对账文件明细表中的每一行交易明细数据,包括如下至少一个:银行侧mq对账消息、扫描交易记录明细表中的每一行业务对象,发出业务侧mq对账消息。也开始对扫描模块设置定时任务,定时任务可以设置为cron表达式,每隔几秒扫描数据。数据也可以批量扫描,每个批次的数据量可配置,例如批次量为2000条,以避免由于银行侧对账文件过大无法核对的问题。
    [0087]
    实施例一,对账mq消息仅包含交易明细数据
    [0088]
    步骤一:对账系统响应于对账mq消息包含交易明细数据,将对账mq消息发给银行侧;
    [0089]
    步骤二:银行侧在监听到对账mq消息后,根据交易明细数据中的第一交易流水号,获取业务侧中与所述第一交易流水号对应的业务对象,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致;
    [0090]
    步骤三:对账系统接收银行侧返回的对账结果。
    [0091]
    本实施例中,银行侧核对模块,用以实时监听对账系统的定时任务发出的银行侧对账mq消息,监听到后进行内部对象转换(同前述业务侧对象转换),根据mq消息体中的交易流水号,从交易记录明细表中查找对应的业务对象,两者为一一对应关系,且该业务对象
    当前的状态应当为未核对或核对异常。
    [0092]
    根据预先配置的对账字段内容,核对银行侧对账mq与业务对象中的数据是否一致,例如,核对用户信息是否一致、交易金额是否一致、卡号是否一致、交易时间是否一致等。将对账结果写入结果表,更新交易记录表中的核对状态为已核对。写结算流水,便于财务进行结算操作。需要说明的是,此处的对账字段内容可以预先配置,如设置配置界面,可由业务侧、银行侧、开发人员选择其中部分对账字段进行设置,此时为自定义对账字段,也可以由开发人员统一设置,此时为统一对账字段。
    [0093]
    实施例二,对账mq消息仅包含业务对象
    [0094]
    步骤一:对账系统响应于对账mq消息包含业务对象,将对账mq消息发给业务侧;
    [0095]
    步骤二:业务侧在监听到对账mq消息后,根据业务对象中的第二交易流水号,获取银行侧中与所述第二交易流水号对应的交易明细数据,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致;
    [0096]
    步骤三:对账系统接收业务侧返回的对账结果。
    [0097]
    本实施例中,业务侧核对模块,用以实时监听定时任务发出的业务侧对账mq消息,监听到后同样进行内部对象转换。根据mq消息体中的交易流水号,从对账文件明细表中查询对应的交易明细数据。同样根据配置的对账字段内容进行核对,将对账结果写入对账结果表,更新对账文件明细表的核对状态。
    [0098]
    实施例三,对账系统发出双边对账mq消息,其中一个对账mq消息仅包含业务对象,另一个对账mq消息仅包括交易明细数据
    [0099]
    步骤一:对账系统响应于对账mq消息包含交易明细数据,将对账mq消息发给银行侧,以使得银行侧在监听到对账mq消息后,根据交易明细数据中的第一交易流水号,获取业务侧中与所述第一交易流水号对应的业务对象,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收银行侧返回的对账结果;
    [0100]
    步骤二:对账系统响应于对账mq消息包含业务对象,将对账mq消息发给业务侧,以使得业务侧在监听到对账mq消息后,根据业务对象中的第二交易流水号,获取银行侧中与所述第二交易流水号对应的交易明细数据,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收业务侧返回的对账结果。
    [0101]
    实施例四,对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象
    [0102]
    步骤一:对账系统响应于对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象,将对账mq消息发给银行侧;
    [0103]
    步骤二:以使得银行侧在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致;
    [0104]
    步骤三:接收银行侧返回的对账结果。
    [0105]
    前述实施例中,无论是银行侧核对模块还是业务侧核对模块,在收到mq对账消息后,均需要根据消息体中交易对象的交易流水号,获取对方与之对应的信息进行核对。本实施例中,对账系统在生成对账mq消息时,已根据交易明细数据的交易流水号,获取业务侧与之对应的业务对象,因而银行侧无需再查询业务对象,直接进行核对即可,以此提高对账效率。
    [0106]
    实施例五,对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据
    [0107]
    步骤一:对账系统响应于对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据,将对账mq消息发给业务侧;
    [0108]
    步骤二:业务侧在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致;
    [0109]
    步骤三:对账系统接收业务侧返回的对账结果。
    [0110]
    本实施例中对账系统在生成对账mq消息时,已根据交易对象中的交易流水号,获取银行侧与之对应的交易明细数据,因而业务侧无需再查询交易明细数据,直接进行核对即可,以此提高对账效率。且对账字段可以进行参数化配置,在新增对账字段时,无需修改代码新增配置即可实现。
    [0111]
    实施例六,对账系统发出双边对账mq消息,mq对账消息包含交易明细数据和业务对象
    [0112]
    步骤一:对账系统响应于对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象,将对账mq消息发给银行侧,以使得银行侧在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收银行侧返回的对账结果;
    [0113]
    步骤二:对账系统响应于对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据,将对账mq消息发给业务侧,以使得业务侧在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收业务侧返回的对账结果。
    [0114]
    对于核对有差异的记录,需进行挂账处理,可以参与下个周期的数据比对。例如,2021-09-23文件中记录核对失败,银行侧有数据,业务侧没有数据(如网络超时,导致该条数据没有写入业务侧库)。2021-09-24由于网络恢复正常,该条数据又写入到业务侧,则该条差异数据可以参与2021-09-24日的核对。
    [0115]
    后台操作模块针对银行侧核对模块、业务侧核对模块的对账结果进行页面展示,如展示每条数据的对账结果:核对成功、核对失败、差异数据等状态,并对存在差异的记录进行认领、差异确认。为保证数据的完整性与一致性,后续进行对应的退款(如业务侧有数据、银行侧无数据)或者写结算(如银行侧有数据、业务侧无数据)操作。后台操作模块还可以进行对账文件下载、对账文件明细结果查询、交易流水查询、对账文件上传(帮助银行侧补发对账文件)。
    [0116]
    其中,认领是运营人员针对核对失败的记录进行人工干预,多个运营人员可以同时对差异记录进行处理,一条差异记录被一个运营人员认领后,不能被其他运营人员认领。差异确认:针对核对失败的记录信息进行退款操作,例如:业务侧有数据,银行侧没有数据,以保证数据的完整性和一致性。
    [0117]
    另外,在整个处理过程中,对账系统在操作过程中若由于网络异常出现对账异常情况,可以自动进行重试,直至得到重复次数达到上限为止,如10次,以此提高系统执行效率,确保系统更加高效地平稳地运行。对于银行侧或业务侧,若在对账处理过程中若出现网络异常情况,则重复进行对账操作,直至得到对账结果或重复次数达到预设上限为止,如8
    次、10次。
    [0118]
    上述实施例所提供的基于消息驱动的方式并发核对数据提高核对效率,同时避免后续由于网络异常无法自动重新核对的问题,对对账结果进行数据完整性校验操作,确保整个对账流程高效、结果可靠。
    [0119]
    参见图2,示出了根据本发明实施例的一具体地对账数据处理方法流程示意图,包括如下步骤:
    [0120]
    s201:银行侧上传对账文件至sftp服务器;
    [0121]
    s202:对账系统监听sftp服务器预设目录下是否存在银行侧上传的对账文件,若存在,则对对账文件进行解析校验,校验通过将对账文件存入对账数据库的对账文件明细表中;
    [0122]
    s203:业务侧上传业务数据至mq服务器;
    [0123]
    s204:对账系统监听mq服务器下的业务数据,在进行对象转换后,存入对账数据库的交易记录明细表中;
    [0124]
    s205:对账系统定时扫描对账文件明细表、交易记录明细表,并发出对账mq消息;
    [0125]
    s206:对于银行侧核对模块,在监听到银行侧对账mq消息后,对其进行对象转换;其中,对账mq消息仅包含交易明细数据;
    [0126]
    s207:根据交易明细数据中的第一交易流水号,获取业务对账端中与所述第一交易流水号对应的业务对象;
    [0127]
    s208:核对银行侧对账mq消息与业务对象中的金额、资金类型、用户信息是否匹配,得到对账结果并返回给对账系统;
    [0128]
    s209:对于业务侧核对模块,在监听到业务侧对账mq消息后,对其进行对象转换;其中,对账mq消息仅包含业务对象;
    [0129]
    s210:根据业务对象中的第二交易流水号,获取银行对账端中与所述第二交易流水号对应的交易明细数据;
    [0130]
    s211:核对业务侧对账mq消息与银行交易记录的金额、资金类型、用户信息是否匹配,得到对账结果并返回给对账系统;
    [0131]
    s212:对账系统接收银行侧、业务侧之中的至少一个返回的对账结果,并记录到对账结果表中,将本次核对的交易明细数据和业务对象的状态更改为已核对。
    [0132]
    参见图3,示出了根据本发明实施例的另一具体地对账数据处理方法流程示意图,包括如下步骤:
    [0133]
    s301:银行侧上传对账文件至sftp服务器;
    [0134]
    s302:对账系统监听sftp服务器预设目录下是否存在银行侧上传的对账文件,若存在,则对对账文件进行解析校验,校验通过将对账文件存入对账数据库的对账文件明细表中;
    [0135]
    s303:业务侧上传业务数据至mq服务器;
    [0136]
    s304:对账系统监听mq服务器下的业务数据,在进行对象转换后,存入对账数据库的交易记录明细表中;
    [0137]
    s305:对账系统定时扫描对账文件明细表、交易记录明细表,并发出对账mq消息;
    [0138]
    s306:银行端核对模块在监听到对账mq消息后,根据预先配置的对账字段,核对业
    务对象中的数据和交易明细数据是否一致,得到对账结果并返回给对账系统;其中,对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象;
    [0139]
    s307:业务端核对模块在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,得到对账结果并返回给对账系统;其中,对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据;
    [0140]
    s308:对账系统接收银行侧、业务侧之中的至少一个返回的对账结果,并记录到对账结果表中,将本次核对的交易明细数据和业务对象的状态更改为已核对。
    [0141]
    本方案相对于现有技术,至少存在如下有益效果:1、通过定时扫描状态为未核对的交易对象,以生成对账mq消息发给相应目标对账端做对账处理,支持银行侧到业务侧、业务侧到银行侧的双边对账,且可并行处理。2、在出现由于网络异常导致的对账系统异常、银行侧或业务侧异常时,可以重新进行对账操作,以此提高对账实效性;3、对于对账结果为异常的对账数据,由人工介入,如挂账、认领、差异确认,保证对账数据对账后的完整性。
    [0142]
    参见图4,示出了本发明实施例提供的一种对账数据处理装置400的主要模块示意图,包括:
    [0143]
    对账文件接收模块401,用于在监听到第一对账端发送的对账文件后,解析所述对账文件,得到交易明细数据;
    [0144]
    业务数据接收模块402,用于在监听到第二对账端发送的业务数据后,对所述业务数据进行对象转换处理,得到转换后的业务对象;
    [0145]
    扫描模块403,用于扫描当前状态为未核对的交易对象,生成对账消息队列mq消息,确定与所述交易对象对应的目标对账端;其中,所述交易对象包括所述交易明细数据和所述业务对象之中的至少一项;
    [0146]
    处理模块404,用于将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,并将本次核对的交易明细数据和业务对象的状态更改为已核对。
    [0147]
    本发明实施装置中,所述对账系统还包括对账数据库,用于存储对账文件明细表和交易记录明细表,对账文件明细表用于存储交易明细数据,交易记录明细表用于存储业务对象;
    [0148]
    所述对账文件接收模块401,还用于:
    [0149]
    基于所述对账文件的文件名,在缓存中进行防重校验,若校验结果为存在,则停止对账流程;以及
    [0150]
    基于所述对账文件的文件名,在所述对账数据库的对账文件名表中进行防重校验,若校验结果为存在,则停止对账流程。
    [0151]
    本发明实施装置中,所述对账文件接收模块401,还用于:
    [0152]
    响应于监听到服务器的预设目录下存在对账文件,确定与第一对账端对应的本地临时目录,将所述对账文件下载到所述本地临时目录下,并上传到云存储中;以及
    [0153]
    在检测到所述对账文件的状态为已核对后,对所述本地临时目录下的所述对账文件进行清除处理。
    [0154]
    本发明实施装置中,所述对账文件接收模块401,用于:
    [0155]
    解析所述对账文件,得到文件头信息和其他行信息,对文件头信息中记录的交易
    总条数和交易总金额,和其他行信息中记录的交易条数和交易金额汇总后的信息进行校验,若校验结果为相同,则确定对账文件可用,否则为不可用。
    [0156]
    本发明实施装置中,所述处理模块404,用于执行下述步骤的至少一项:
    [0157]
    响应于对账mq消息包含交易明细数据,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据交易明细数据中的第一交易流水号,获取第二对账端中与所述第一交易流水号对应的业务对象,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;
    [0158]
    响应于对账mq消息包含业务对象,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据业务对象中的第二交易流水号,获取第一对账端中与所述第二交易流水号对应的交易明细数据,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。
    [0159]
    本发明实施装置中,所述处理模块404,用于执行下述步骤的至少一项:
    [0160]
    响应于对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;
    [0161]
    响应于对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。
    [0162]
    参见图5,示出了本发明实施例提供的模块之间关系的示意图,包括:
    [0163]
    对账文件接收模块,负责处理银行侧的对账文件,如监听sftp服务器中是否存在银行侧上传的对账文件,对账文件内部校验以及处理存入对账文件明细表中;
    [0164]
    业务数据接收模块,负责处理业务侧的业务数据,如监听mq服务器中的业务数据,对象转换以存入交易记录明细表中;
    [0165]
    对账数据库,用于存储对账文件明细表、交易记录明细表等;
    [0166]
    扫描模块,用于扫描对账文件明细表中的交易明细数据,以生成银行侧对账mq消息;以及扫描交易记录明细表中的业务对象,以生成业务侧对账mq消息;
    [0167]
    银行侧核对模块,用于对银行侧对账mq消息,根据mq消息中的交易流水号,查找相应业务数据进行核对,得到对账结果;
    [0168]
    业务侧核对模块,用于对业务侧对账mq消息,根据mq消息中的交易流水号,查找相应交易明细数据进行核对,得到对账结果;
    [0169]
    后台操作模块,用于对对账结果进行显示,对操作存在差异的业务数据和交易明细数据进行挂账处理、认领处理或差异确认处理等;异常重试等。
    [0170]
    由此可知,上述处理模块,包含了银行侧核对模块、业务侧核对模块和后台操作模块。另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
    [0171]
    图6示出了可以应用本发明实施例的示例性系统架构600,包括终端设备601、602、603,网络604和服务器605(仅仅是示例)。
    [0172]
    终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,安装有各种通讯客户端应用,用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。
    [0173]
    网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
    [0174]
    服务器605可以是提供各种服务的服务器,用于执行接收数据并处理入库、生成mq消息进行双边对账、接收对账结果并保存等操作。需要说明的是,本发明实施例所提供的方法一般由服务器605执行,相应地,装置一般设置于服务器605中。
    [0175]
    应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
    [0176]
    下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
    [0177]
    如图7所示,计算机系统700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram 703中,还存储有系统700操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
    [0178]
    以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
    [0179]
    特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本发明的系统中限定的上述功能。
    [0180]
    需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,
    其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
    [0181]
    附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
    [0182]
    描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括对账文件接收模块、业务数据接收模块、扫描模块、处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,处理模块还可以被描述为“对账处理模块”。
    [0183]
    作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行时实现上述任一所述的对账数据处理方法。
    [0184]
    上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

    技术特征:
    1.一种对账数据处理方法,其特征在于,应用于对账系统,所述对账系统与第一对账端和第二对账端通信连接,所述方法包括:在监听到第一对账端发送的对账文件后,解析所述对账文件,得到交易明细数据;以及在监听到第二对账端发送的业务数据后,对所述业务数据进行对象转换处理,得到转换后的业务对象;扫描当前状态为未核对的交易对象,生成对账消息队列mq消息,确定与所述交易对象对应的目标对账端;其中,所述交易对象包括所述交易明细数据和所述业务对象之中的至少一项;将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,并将本次核对的交易明细数据和业务对象的状态更改为已核对。2.根据权利要求1所述的方法,其特征在于,所述对账系统还包括对账数据库,用于存储对账文件明细表和交易记录明细表,对账文件明细表用于存储交易明细数据,交易记录明细表用于存储业务对象;在监听到第一对账端发送的对账文件之后,还包括:基于所述对账文件的文件名,在缓存中进行防重校验,若校验结果为存在,则停止对账流程;以及基于所述对账文件的文件名,在所述对账数据库的对账文件名表中进行防重校验,若校验结果为存在,则停止对账流程。3.根据权利要求1或2所述的方法,其特征在于,还包括:响应于监听到服务器的预设目录下存在对账文件,确定与第一对账端对应的本地临时目录,将所述对账文件下载到所述本地临时目录下,并上传到云存储中;以及在检测到所述对账文件的状态为已核对后,对所述本地临时目录下的所述对账文件进行清除处理。4.根据权利要求1所述的方法,其特征在于,所述解析所述对账文件,包括:解析所述对账文件,得到文件头信息和其他行信息,对文件头信息中记录的交易总条数和交易总金额,和其他行信息中记录的交易条数和交易金额汇总后的信息进行校验,若校验结果为相同,则确定对账文件可用,否则为不可用。5.根据权利要求1所述的方法,其特征在于,所述将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,包括执行下述步骤的至少一项:响应于对账mq消息包含交易明细数据,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据交易明细数据中的第一交易流水号,获取第二对账端中与所述第一交易流水号对应的业务对象,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;响应于对账mq消息包含业务对象,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据业务对象中的第二交易流水号,获取第一对账端中与所述第二交易流水号对应的交易明细数据,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。6.根据权利要求1所述的方法,其特征在于,所述将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,包括执行下述步骤的至少一项:
    响应于对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;响应于对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。7.一种对账数据处理装置,其特征在于,应用于对账系统,所述对账系统与第一对账端和第二对账端通信连接,所述装置包括:对账文件接收模块,用于在监听到第一对账端发送的对账文件后,解析所述对账文件,得到交易明细数据;业务数据接收模块,用于在监听到第二对账端发送的业务数据后,对所述业务数据进行对象转换处理,得到转换后的业务对象;扫描模块,用于扫描当前状态为未核对的交易对象,生成对账消息队列mq消息,确定与所述交易对象对应的目标对账端;其中,所述交易对象包括所述交易明细数据和所述业务对象之中的至少一项;处理模块,用于将对账mq消息发给所述目标对账端进行对账处理,接收所述目标对账端返回的对账结果,并将本次核对的交易明细数据和业务对象的状态更改为已核对。8.根据权利要求7所述的装置,其特征在于,所述处理模块,用于执行下述步骤的至少一项:响应于对账mq消息包含交易明细数据,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据交易明细数据中的第一交易流水号,获取第二对账端中与所述第一交易流水号对应的业务对象,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;响应于对账mq消息包含业务对象,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据业务对象中的第二交易流水号,获取第一对账端中与所述第二交易流水号对应的交易明细数据,并根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。9.根据权利要求7所述的装置,其特征在于,所述处理模块,用于执行下述步骤的至少一项:响应于对账mq消息包含交易明细数据和与交易明细数据中交易流水号对应的业务对象,将对账mq消息发给第一对账端,以使得第一对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第一对账端返回的对账结果;响应于对账mq消息包含业务对象和与业务对象中交易流水号对应的交易明细数据,将对账mq消息发给第二对账端,以使得第二对账端在监听到对账mq消息后,根据预先配置的对账字段,核对业务对象中的数据和交易明细数据是否一致,接收第二对账端返回的对账结果。
    10.一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。

    技术总结
    本发明公开了一种对账数据处理方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:在监听到第一对账端发送的对账文件后,解析对账文件,得到交易明细数据;以及在监听到第二对账端发送的业务数据后,对业务数据进行对象转换处理,得到转换后的业务对象;扫描当前状态为未核对的交易对象,生成对账消息队列MQ消息,确定与交易对象对应的目标对账端;将对账MQ消息发给目标对账端进行对账处理,接收目标对账端返回的对账结果,并将本次核对的交易明细数据和业务对象的状态更改为已核对。该实施方式基于消息驱动的方式,并发核对数据以提高核对效率,同时确保整个对账流程高效、结果可靠。结果可靠。结果可靠。


    技术研发人员:黄宝祥 刘剑秋
    受保护的技术使用者:京东科技控股股份有限公司
    技术研发日:2022.02.17
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-11491.html

    最新回复(0)