1.本发明涉及金融数据处理领域,尤其涉及一种支付交易异步排队处理方法及系统。
背景技术:2.联机交易中,当有些交易因为金额太大或者风控原因需要审批的时候,解决方案往往会采用直接拦截为失败交易,需要人为的更改风控策略,或者核对金额后重新由客户发起一笔;但这些交易往往都是应该直接通过的,缺少一种安全高效的直接处理方法。金融类的联机转账交易因为金额太大等风险等因素会直接给拒绝,需审批后二次发起,会导致客户体验差和交易延迟等等问题;直接设置成同步的联机审批会造成系统长时间等待,吞吐量降低,并发能力差。
3.本发明针对联机交易的中是由于系统误判需要重新发起交易的问题,提出了一种支付交易异步排队处理方法。采用排队处理加审批的方式避免了因为策略不完善或者不成熟导致的交易失败问题。采用异步的同时,避免单纯的改为同步进行审批时,当交易量变大容易降低系统并发性能情况。
技术实现要素:4.为解决现有技术的不足,本发明提出一种支付交易异步排队处理方法及系统,通过两阶段处理审批结果,利用redis技术保障处理的准确性和方案的可行性,可以减少成本,提升系统连接处理审批的效率,同时高效稳定地保障了审批结果处理的准确性,保障交易的准确性。
5.为实现以上目的,本发明所采用的技术方案包括:
6.一种支付交易异步排队处理方法,包括:
7.s1、获取交易请求,检查所述交易请求;
8.s2、获取检查通过的交易请求,形成排队交易请求,将所述排队交易请求加上redis锁存入数据库并记录入库时间;
9.s3、设置超时时间、审批标识、处理标识和处理结果标识;
10.所述审批标识包括已审批、未审批和超时未审批;
11.所述处理标识包括已处理、待处理和超时未处理;
12.按照所述入库时间对排队交易请求进行审批,获取审批结果,更新所述排队交易请求对应的审批标识;
13.s4、设置第一时间和第一轮询任务,定时执行所述第一轮询任务,审批所述排队交易请求并更新所述排队交易请求对应的审批标识和处理标识;
14.s5、设置第二时间和第二轮询任务,定时执行所述第二轮询任务,获取所述处理标识为已处理的排队交易请求,将所述排队交易请求发送至支付系统。
15.进一步地,s1中检查所述交易请求包括对交易请求的内容进行检查,所述交易请
求的内容包括商户、产品、全局流水号、子交易序号和交易信息;
16.判断所述交易请求的内容是否缺失和/或不合法;
17.当所述交易请求的内容有缺失和/或不合法时,返回失败;
18.当所述交易请求的内容没有缺失和/或不合法时,对所述交易请求进行防重检查。
19.进一步地,所述对所述交易请求进行防重检查的方法包括,将所述全局流水号和子交易序号作为查询条件,利用redis分布式锁查看所述交易请求是否已存在,若所述交易请求已存在,返回失败。
20.进一步地,s4中所述第一时间是从所述入库时间起24小时;
21.所述第一轮询任务包括:
22.s41、获取审批标识为未审批和所述第一时间内未处理的排队交易请求;
23.s42、对所述审批标识为未审批和所述第一时间内未处理的排队交易请求加第一分布式锁,设置所述第一分布式锁的过期时间,过期后自动释放所述第一分布式锁;
24.s43、对加锁成功的排队交易请求进行处理,根据所述审批标识检查所述排队交易请求是否已审批;
25.s44、若所述审批标识为已审批,则更新所述排队交易请求的处理标识为待处理;
26.若所述审批标识为未审批,则判断所述排队交易请求从入库时间起算是否超过所述超时时间;
27.s45、若所述排队交易请求从入库时间起算已超过所述超时时间,将所述排队交易请求的审批标识设置为超时未审批;
28.s46、解除所述第一分布式锁。
29.进一步地,s5中所述第二时间是所述入库时间起25小时;
30.所述第二轮询任务包括:
31.s51、获取处理标识为未处理和所述第二时间内未处理的排队交易请求;
32.s52、对所述处理标识为未处理和所述第二时间内未处理的排队交易请求加第二分布式锁,设置所述第二分布式锁的过期时间,过期后自动释放所述第二分布式锁;
33.s53、获取所述处理标识为已处理的排队交易请求,将所述处理标识为已处理的排队交易请求组装成报文发送至支付系统;
34.s54、根据支付系统返回的响应结果,判断是否发送成功,若未发送成功则进行重发;
35.s55、设置最大重发次数,超过所述最大重发次数则停止;
36.s56、解除所述第二分布式锁。
37.进一步地,所述处理结果标识包括放行和拒绝。
38.进一步地,所述审批超时时间设置由apollo配置中心实时配置。
39.本发明还涉及一种支付交易异步排队处理系统,包括:
40.排队接受请求模块,用于获取交易请求,检查所述交易请求、获取检查通过的交易请求,形成排队交易请求,将所述排队交易请求加上redis锁存入数据库并记录入库时间,以及按照所述入库时间对排队交易请求进行审批,获取审批结果,更新所述排队交易请求对应的审批标识;
41.轮询检查模块,用于设置第一时间和第一轮询任务,定时执行所述第一轮询任务,
审批所述排队交易请求并更新所述排队交易请求对应的审批标识和处理标识;
42.终态处理模块,用于设置第二时间和第二轮询任务,定时执行所述第二轮询任务,获取所述处理标识为已处理的排队交易请求,将所述排队交易请求发送至支付系统。
43.本发明还涉及一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
44.本发明还涉及一种电子设备,包括处理器和存储器;
45.所述存储器,用于存储交易请求、排队交易请求、超时时间、第一时间、第一轮询任务、第二时间和第二轮询任务;
46.所述处理器,用于执行存储器中存储的计算机程序,执行上述的方法。
47.本发明的有益效果为:
48.本发明通过两阶段处理审批结果,利用redis技术保障处理的准确性和方案的可行性,可以减少成本,提升系统连接处理审批的效率,同时高效稳定地保障了审批结果处理的准确性,保障交易的准确性。
附图说明
49.图1为本发明支付交易异步排队处理方法流程示意图。
50.图2为本发明支付交易异步排队处理结构示意图。
具体实施方式
51.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
52.本发明第一方面涉及一种步骤流程如图1所示的支付交易异步排队处理方法,包括:
53.s1、获取交易请求,检查所述交易请求;
54.具体而言,本技术实施例中,首先对交易请求的内容进行检查,优选的,交易请求的内容包括商户、产品、全局流水号、子交易序号和交易信息;
55.判断交易请求的内容是否缺失和/或不合法,当交易请求的内容有缺失和/或不合法时,返回失败;当交易请求的内容没有缺失和/或不合法时,对所述交易请求进行防重检查;利用全局流水号和子交易序号作为查询条件分两步去判断是否已处理过该请求:第一步利用redis分布式锁去查看是否存在数据;第二部则去数据库中判断该数据是否一致;如果一致则将处理结果返回,反之则将数据入库。
56.s2、获取检查通过的交易请求,形成排队交易请求,将所述排队交易请求加上redis锁存入数据库并记录入库时间;
57.具体而言,本技术实施例中,如果成功入库后进行排队,此时对该条交易请求加上redis锁,防止后续多次处理。此时完成对该笔交易的持久化和防重处理,确保交易的安全和准确;
58.s3、设置超时时间、审批标识、处理标识和处理结果标识;
59.所述审批标识包括已审批、未审批和超时未审批;
60.所述处理标识包括已处理、待处理和超时未处理;
61.按照所述入库时间对排队交易请求进行审批,获取审批结果,更新所述排队交易请求对应的审批标识;
62.具体而言,本技术实施例中,调用审批,为了确保交易的安全,将审批超时时间设置为由apollo配置中心实时配置,保证系统的灵活性。获取审批结果后,更新数据库中的审批标识和对应的处理标识。
63.s4、设置第一时间和第一轮询任务,定时执行所述第一轮询任务,优选的,执行间隔为5分钟一次;
64.审批所述排队交易请求并更新所述排队交易请求对应的审批标识和处理标识;
65.此处将任务转化为异步处理的流程模式,并且进行统一标记整理,将任务转化为独立的操作,当后续有异常时可以重新触发该步骤的任务,进行快速解决。
66.具体而言,本技术实施例中,所述第一时间是从所述入库时间起24小时;所述第一轮询任务包括:
67.s41、获取审批标识为未审批和所述第一时间内未处理的排队交易请求;
68.具体的,从mysql数据库中,根据审批标识为未审批和入库时间查询获取24小时内所有未处理的交易数据;
69.s42、对所述审批标识为未审批和所述第一时间内未处理的排队交易请求加第一分布式锁,设置所述第一分布式锁的过期时间,过期后自动释放所述第一分布式锁;
70.为了防止多台机器同时处理这些数据,加上第一分布式锁;若获加锁失败则证明已有机器在进行处理,结束当前任务;若加锁成功则继续进行后续操作,并且为了防止死锁,设置锁的过期时间,优选的设置锁的过期时间为5分钟,过期后自动释放第一分布式锁;
71.s43、对加锁成功的排队交易请求进行处理,根据所述审批标识检查所述排队交易请求是否已审批;
72.s44、若所述审批标识为已审批,则更新所述排队交易请求的处理标识为待处理;
73.若所述审批标识为未审批,则判断所述排队交易请求从入库时间起算是否超过所述超时时间;
74.s45、若所述排队交易请求从入库时间起算已超过所述超时时间,将所述排队交易请求的审批标识设置为超时未审批;
75.s46、解除所述第一分布式锁,防止死锁。
76.s5、设置第二时间和第二轮询任务,定时执行所述第二轮询任务,优选的,执行间隔为5分钟一次;
77.获取所述处理标识为已处理的排队交易请求,将所述排队交易请求发送至支付系统。
78.具体而言,本技术实施例中,所述第二时间是所述入库时间起25小时;所述第二轮询任务包括:
79.s51、获取处理标识为未处理和所述第二时间内未处理的排队交易请求;
80.具体的,从mysql数据库中,根据处理标识为待处理和入库时间查询获取25小时内所有未处理的交易数据;
81.s52、对所述处理标识为未处理和所述第二时间内未处理的排队交易请求加第二分布式锁,设置所述第二分布式锁的过期时间,过期后自动释放所述第二分布式锁;
82.为了防止多台机器同时处理这些数据,加上第二分布式锁;设置锁的过期时间,优选的设置锁的过期时间为5分钟,过期后自动释放第二分布式锁;
83.s53、获取所述处理标识为已处理的排队交易请求,将所述处理标识为已处理的排队交易请求组装成报文发送至支付系统;
84.s54、根据支付系统返回的响应结果,判断是否发送成功,若未发送成功则进行重发;
85.s55、设置最大重发次数,超过所述最大重发次数则停止,优选的设置最大重试次数为3次,超过则不进行重发;
86.s56、处理结束后解除所述第二分布式锁。
87.本发明另一方面还涉及一种支付交易异步排队处理处理系统,其结构如图2所示,包括:
88.排队接受请求模块,用于获取交易请求,检查所述交易请求、获取检查通过的交易请求,形成排队交易请求,将所述排队交易请求加上redis锁存入数据库并记录入库时间,以及按照所述入库时间对排队交易请求进行审批,获取审批结果,更新所述排队交易请求对应的审批标识;
89.轮询检查模块,用于设置第一时间和第一轮询任务,定时执行所述第一轮询任务,审批所述排队交易请求并更新所述排队交易请求对应的审批标识和处理标识;
90.终态处理模块,用于设置第二时间和第二轮询任务,定时执行所述第二轮询任务,获取所述处理标识为已处理的排队交易请求,将所述排队交易请求发送至支付系统。
91.通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。
92.本发明的实施例还提供能够实现上述实施例中的支付交易异步排队处理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的支付交易异步排队处理方法的全部步骤。
93.本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如交易请求、排队交易请求、超时时间、第一时间、第一轮询任务、第二时间和第二轮询任务等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
94.优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
95.额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处
理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为lcd显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
96.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
97.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
98.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
99.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
100.以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
技术特征:1.一种支付交易异步排队处理方法,其特征在于,包括:s1、获取交易请求,检查所述交易请求;s2、获取检查通过的交易请求,形成排队交易请求,将所述排队交易请求加上redis锁存入数据库并记录入库时间;s3、设置超时时间、审批标识、处理标识和处理结果标识;所述审批标识包括已审批、未审批和超时未审批;所述处理标识包括已处理、待处理和超时未处理;按照所述入库时间对排队交易请求进行审批,获取审批结果,更新所述排队交易请求对应的审批标识;s4、设置第一时间和第一轮询任务,定时执行所述第一轮询任务,审批所述排队交易请求并更新所述排队交易请求对应的审批标识和处理标识;s5、设置第二时间和第二轮询任务,定时执行所述第二轮询任务,获取所述处理标识为已处理的排队交易请求,将所述排队交易请求发送至支付系统。2.如权利要求1所述的方法,其特征在于,s1中检查所述交易请求包括对交易请求的内容进行检查,所述交易请求的内容包括商户、产品、全局流水号、子交易序号和交易信息;判断所述交易请求的内容是否缺失和/或不合法;当所述交易请求的内容有缺失和/或不合法时,返回失败;当所述交易请求的内容没有缺失和/或不合法时,对所述交易请求进行防重检查。3.如权利要求2所述的方法,其特征在于,所述对所述交易请求进行防重检查的方法包括,将所述全局流水号和子交易序号作为查询条件,利用redis分布式锁查看所述交易请求是否已存在,若所述交易请求已存在,返回失败。4.如权利要求1所述的方法,其特征在于,s4中所述第一时间是从所述入库时间起24小时;所述第一轮询任务包括:s41、获取审批标识为未审批和所述第一时间内未处理的排队交易请求;s42、对所述审批标识为未审批和所述第一时间内未处理的排队交易请求加第一分布式锁,设置所述第一分布式锁的过期时间,过期后自动释放所述第一分布式锁;s43、对加锁成功的排队交易请求进行处理,根据所述审批标识检查所述排队交易请求是否已审批;s44、若所述审批标识为已审批,则更新所述排队交易请求的处理标识为待处理;若所述审批标识为未审批,则判断所述排队交易请求从入库时间起算是否超过所述超时时间;s45、若所述排队交易请求从入库时间起算已超过所述超时时间,将所述排队交易请求的审批标识设置为超时未审批;s46、解除所述第一分布式锁。5.如权利要求1所述的方法,其特征在于,s5中所述第二时间是所述入库时间起25小时;所述第二轮询任务包括:s51、获取处理标识为未处理和所述第二时间内未处理的排队交易请求;
s52、对所述处理标识为未处理和所述第二时间内未处理的排队交易请求加第二分布式锁,设置所述第二分布式锁的过期时间,过期后自动释放所述第二分布式锁;s53、获取所述处理标识为已处理的排队交易请求,将所述处理标识为已处理的排队交易请求组装成报文发送至支付系统;s54、根据支付系统返回的响应结果,判断是否发送成功,若未发送成功则进行重发;s55、设置最大重发次数,超过所述最大重发次数则停止;s56、解除所述第二分布式锁。6.如权利要求1所述的方法,其特征在于,所述处理结果标识包括放行和拒绝。7.如权利要求1所述的方法,其特征在于,所述审批超时时间设置由apollo配置中心实时配置。8.一种支付交易异步排队处理系统,其特征在于,包括:排队接受请求模块,用于获取交易请求,检查所述交易请求、获取检查通过的交易请求,形成排队交易请求,将所述排队交易请求加上redis锁存入数据库并记录入库时间,以及按照所述入库时间对排队交易请求进行审批,获取审批结果,更新所述排队交易请求对应的审批标识;轮询检查模块,用于设置第一时间和第一轮询任务,定时执行所述第一轮询任务,审批所述排队交易请求并更新所述排队交易请求对应的审批标识和处理标识;终态处理模块,用于设置第二时间和第二轮询任务,定时执行所述第二轮询任务,获取所述处理标识为已处理的排队交易请求,将所述排队交易请求发送至支付系统。9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。10.一种电子设备,其特征在于,包括处理器和存储器;所述存储器,用于存储交易请求、排队交易请求、超时时间、第一时间、第一轮询任务、第二时间和第二轮询任务;所述处理器,用于执行存储器中存储的计算机程序,执行权利要求1至7中任一项所述的方法。
技术总结本发明涉及一种支付交易异步排队处理方法及系统,包括获取交易请求,检查所述交易请求;获取检查通过的交易请求,形成排队交易请求,将所述排队交易请求加上REDIS锁存入数据库并记录入库时间;按照所述入库时间对排队交易请求进行审批,获取审批结果,更新所述排队交易请求对应的审批标识;设置第一时间和第一轮询任务,定时执行所述第一轮询任务,审批所述排队交易请求并更新所述排队交易请求对应的审批标识和处理标识;设置第二时间和第二轮询任务,定时执行所述第二轮询任务,获取所述处理标识为已处理的排队交易请求,将所述排队交易请求发送至支付系统。本发明基于两阶段处理审批结果,在提升处理审批效率的同时保障了审批结果处理的准确性。审批结果处理的准确性。审批结果处理的准确性。
技术研发人员:谢金鑫 马鸿军
受保护的技术使用者:中信百信银行股份有限公司
技术研发日:2022.05.05
技术公布日:2022/7/4