CN112053149A - 一种防止重复支付的方法、装置、电子设备和可读存储介质 - Google Patents
一种防止重复支付的方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN112053149A CN112053149A CN202010783710.1A CN202010783710A CN112053149A CN 112053149 A CN112053149 A CN 112053149A CN 202010783710 A CN202010783710 A CN 202010783710A CN 112053149 A CN112053149 A CN 112053149A
- Authority
- CN
- China
- Prior art keywords
- transaction
- payment
- paid
- request
- payment request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及互联网数字支付技术领域,尤其涉及一种防止重复支付的方法、装置、电子设备和可读存储介质,所述方法包括接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;如果存在,则确定所述第一交易支付请求为重复支付请求。本申请的技术方案能够避免重复发送交易导致重复支付的可能性,确保了电子支付交易的安全性。
Description
技术领域
本申请涉及互联网数字支付技术领域,尤其涉及一种防止重复支付的方法、装置、电子设备和可读存储介质。
背景技术
随着电子交易和网络经济的发展,网上支付活动日益频繁,市场对电子支付业务处理容量、并发处理效率等方面提出更高要求,因此目前电子支付主要采用异步支付。但是高并发的交易支付和异步返回支付结果的方案虽然解决了电子交易效率的需求,但是同时也带来了新的问题就是交易支付可能会重复发起和支付,一旦发生交易被重复处理的情况,则会导致用户的资金损失,引发用户投诉及后续问题。目前的防止重负支付的方法主要是采用操作后将页面操作按钮置灰技术进行第一次防重复处理,随后在支付指令到达服务器后,查询当前指令处理状态,判断指令是否已经被处理来进行第二次防重处理。但是交易处理量日益增加的情况下尤其是在某一时刻交易处理量激增的情况下,这种防重机制会仍然存在着导致部分支付指令重复支付的问题。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供一种防止重复支付的方法,所述方法包括:
接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;
根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果存在,则确定所述第一交易支付请求为重复支付请求。
可选地,所述方法包括:
根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果不存在,则将所第一交易支付请求写入待支付队列并修改所述第一交易支付请求的支付状态为待支付;
启动线程资源将所述第一支付交易请求写入支付登记表;
如果写入失败,则确定所述第一交易支付请求为重复支付请求。
可选地,在将所述第一支付交易请求写入支付登记表之前,所述方法还包括:
启动线程资源将所述第一支付交易请求的指令状态修改为待查证。
可选地,当所述第一交易为单笔交易时,其中,
所述交易支付请求中的交易标志号为交易流水号;
所述登记表为单笔支付登记表。
可选地,所述方法还包括:
将所述待支付队列中的支付请求按照预设规则进行分批标记;其中所述待支付状态的第一交易支付请求包括于所述待支付队列中;其中同一批次的待支付请求具有相同的批次标记号;
启动线程资源将包括所述第一交易支付请求的批次交易写入批次支付登记表;
如果写入失败,则确定包括所述第一交易支付请求的批次交易为重复交易。
可选地,所述方法还包括:
修改所述第一交易支付请求的支付状态为待支付后,锁定支付状态为待支付状态。
第二方面,本申请实施例提供了一种防止重复支付装置,所述装置包括:接收模块、检索模块、确定模块,其中,
所述接收模块,用于接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;
所述检索模块,用于根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果存在,所述确定模块,用于则确定所述第一交易支付请求为重复支付请求。
可选地,所述模块还包括处理模块,在所述检索模块用于根据所述交易标志号,在待支付队列中检索不存在相同交易标志号的待支付请求时,
所述处理模块,用于将所第一交易支付请求写入待支付队列并修改所述第一交易支付请求的支付状态为待支付;
所述处理模块,还用于启动线程资源将所述第一支付交易请求写入支付登记表;
所述确定模块,用于在写入失败时,确定所述第一交易支付请求为重复支付请求。
可选地,在将所述第一支付交易请求写入支付登记表之前,所述处理模块还用于:
启动线程资源将所述第一支付交易请求的指令状态修改为待查证。
可选地,所述处理模块还用于:
将所述待支付队列中的支付请求按照预设规则进行分批标记;其中所述待支付状态的第一交易支付请求包括于所述待支付队列中;其中同一批次的待支付请求具有相同的批次标记号;
启动线程资源将包括所述第一交易支付请求的批次交易写入批次支付登记表;
所述确定模块,用于在写入失败后确定包括所述第一交易支付请求的批次交易为重复交易。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述防止重复支付的方法。
第四方面,一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述防止重复支付的方法。
本申请实施例提供的技术方案带来的有益效果是能够保证对于单笔交易并发执行不再出现重复支付的问题;对于批量交易支付指令处理场景,保证批量交易指令的安全稳定,避免了重复发送交易导致重复支付的可能性,确保交易安全。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种防止重复支付的方法的流程示意图;
图2为本申请实施例提供的一种防止重复支付装置的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面将结合附图以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
为使本申请的目的、技术方案和优点更加清楚,图1公开了本申请实施例提供的一种防止重复支付的方法的流程图,如图1所示,所述防止重复支付的方法包括:
S101、接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;
S102、根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
S103、如果存在,则确定所述第一交易支付请求为重复支付请求。
在可选实施例中,所述方法包括:
根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果不存在,则将所第一交易支付请求写入待支付队列并修改所述第一交易支付请求的支付状态为待支付;
启动线程资源将所述第一支付交易请求写入支付登记表;
如果写入失败,则确定所述第一交易支付请求为重复支付请求。
可选地,所述方法还包括:修改所述第一交易支付请求的支付状态为待支付后,锁定支付状态为待支付状态,以避免发生重复交易。
在可选实施例中,在将所述第一支付交易请求写入支付登记表之前,所述方法还包括:
启动线程资源将所述第一支付交易请求的指令状态修改为待查证。
本申请实施例针对目前电子支付中,尤其是银行清算系统中,存在的高并发的单笔、批量交易设计了防止重复支付的方案,方案中客户端用于与业务操作用户进行交互,接收用户的支付请求,服务器接收到客户端上报的支付请求后生成支付指令并将支付指令放入待支付队列,由并发的线程资源作为消费方,对待支付队列中的支付指令进行防止重复判断和处理,对出待支付队列的支付指令或支付任务进行登记,登记成功后发送支付报文,向客户端反馈支付结果。
第一实施例
在本实施例中,以银行清算业务为例,当所述第一交易为单笔交易,其中,所述交易支付请求中的交易标志号为交易流水号,即该单笔交易的唯一标志号;所述登记表为单笔支付登记表。下面针对单笔交易场景来介绍本申请的防重支付方案:
步骤1、接收客户端上报的第一交易支付请求。多名业务人员登入清算系统根据交易流程发起交易支付请求并生成对应的交易支付指令,此时第一交易支付请求(或称之为第一交易支付指令)的支付状态为“初始”。
步骤2、根据所述交易流水号,在待支付队列中检索是否存在相同交易标志号的待支付请求。如果存在,说明该第一交易支付请求为重复支付请求,则不予处理;如果不存在,则此时将所述第一交易支付指令放入待支付队列中,修改支付状态为“待支付”,锁定指令避免重复提交进入步骤3。
步骤3、启动多个线程资源对待支付队列中的包括第一交易支付指令在内的多个待支付指令进行处理,每个线程拿到支付指令后,将支付指令状态修改为待查证,防止重复领用。
步骤4、启动线程资源将所述第一支付交易请求写入数据库的单笔支付登记表中。如果写入成功,则发送支付报文控制处理器完成支付并变更支付状态返回支付结果至客户端;如果写入单笔支付登记表失败,则说明该第一交易支付指令为重复支付指令,防重结束。
以下以银行清算业务操作实例来对上述步骤1-步骤4进行示范例补充说明,以更清楚的介绍本申请公开的防止重复支付的方案:
例如三名业务人员同时登入清算系统,针对场外划款、场内划款等业务场景,选中同一笔交易,其中两名业务人员同时进行处理,生成两笔支付指令。另一名业务人员间隔1s后进行处理,生成一笔支付指令。服务器同时收到两笔支付指令后,根据支付流水号检查指令支付状态,判断是否已在待支付队列中,在并发的情况下,前两笔指令此时均为“初始状态”,将两笔支付指令放入待支付队列中,修改支付状态为“待支付”,锁定指令避免重复提交。之后收到第三笔支付指令,检查指令支付状态,判断是否已在待支付队列中,根据支付流水号查询到待支付队列中已存在当前指令,识别第三笔指令为重复指令。服务器启动多个线程对待支付队列中的两笔待支付指令进行处理,每个线程拿到支付指令后,将指令状态改为待查证,防止重复领用。将拿到的支付指令写入单笔支付登记表中,由于单笔支付登记表以交易支付流水号为唯一标志号,所以只有一笔指令最终登记成功并发送支付报文,根据返回结果更新支付状态,将结果返回给业务人员。另一笔支付指令写入支付登记表失败,该指令为重复支付指令,将重复支付信息返回给业务人员。
第二实施例
在本申请实施例中,所述方法还包括:
将所述待支付队列中的支付请求按照预设规则进行分批标记;其中所述待支付状态的第一交易支付请求包括于所述待支付队列中;其中同一批次的待支付请求具有相同的批次标记号;
启动线程资源将包括所述第一交易支付请求的批次交易写入批次支付登记表;
如果写入失败,则确定包括所述第一交易支付请求的批次交易为重复交易。
下面以银行清算业务为例,针对批量交易支付场景来介绍本申请的防重支付方案:
步骤1、接收客户端上报的第一交易支付请求。多名业务人员登入清算系统,根据批量支付的交易流程,生成批量的支付指令,支付状态均为“初始”。
步骤2、根据所述交易流水号,在待支付队列中检索是否存在相同交易标志号的待支付请求。如果存在,说明该第一交易支付请求为重复支付请求,则不予处理;如果不存在,则此时将所述第一交易支付指令放入待支付队列中,修改支付状态为“待支付”,锁定指令避免重复提交进入步骤3。
步骤3、启动多个线程资源对待支付队列中的包括第一交易支付指令在内的多个待支付指令进行处理,具体为对待支付队列中的支付指令进行批次拆分,假定每1000笔为一个批次,每个批次根据批次号生成对应批次流水号。将批次流水号放入批次待支付队列,批次支付状态修改为“待支付”。启动多个线程对批次支付队列中的待支付指令进行处理,每个线程拿到批次支付指令后,将批次指令状态改为待查证,防止重复领用。同时将对应批次的指令生成批量支付文件。
步骤4、启动线程资源将所述第一支付交易请求写入批次支付登记表。如果写入成功,则发送支付报文控制处理器完成支付并变更包括第一交易支付指令在内的批次支付指令的支付状态,并返回支付结果至客户端;如果写入失败,则确定包括所述第一交易支付请求的批次交易为重复交易。
以下以银行清算业务操作实例来对上述步骤1-步骤4进行示范例补充说明,以更清楚的介绍本申请公开的防止重复支付的方案:例如三名业务人员同时登入清算系统,根据待遇支付交易流程,选中同一笔批量支付交易,其中两名业务人员同时进行处理,生成两笔批量支付指令。另一名业务人员间隔1s后进行处理,再生成一笔批量支付指令。服务器收到待遇支付指令后,根据批次号检查支付状态,判断是否已在待支付队列中,在并发的情况下,前两笔批量指令此时均为“初始状态”,将两笔支付指令放入待支付队列中,修改支付状态为“待支付”,锁定指令避免重复提交。之后收到第三笔批量支付指令,检查指令支付状态,判断是否已在待支付队列中,根据批次流水号查询到待支付队列中已存在当前批量指令,识别第三笔指令为重复指令。后台应用对待支付队列中的批量支付指令进行批次拆分,假定每1000笔为一个批次,每个批次根据批次号生成对应批次流水号。将批次流水号放入批次待支付队列,批次支付状态为“待支付”。服务器启动多个线程对批次待支付队列中的待支付指令进行处理,每个线程拿到批次支付指令后,将批次指令状态改为待查证,防止重复领用,同时将对应批次的指令生成批量支付文件。各线程将拿到的批量支付指令写入批次支付文件登记表中,由于批次支付登记表以批次流水号为唯一主键约束,所以只有一笔批量指令指令对应的批次支付最终登记成功并发送支付报文。之后通过定时任务检查批量支付结果文件,更新支付状态。另一笔支付指令写入批次支付文件登记表失败,该指令为重复支付指令,将重复支付信息返回给业务人员。
基于图1所示的实施例提供的防止重复支付的方法,图2示出了本申请实施例提供的一种防止重复支付装置,如图2所示,该装置主要可以包括:201接收模块、202检索模块和203确定模块,其中,
所述201接收模块,用于接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;
所述202检索模块,用于根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果存在,所述203确定模块,用于则确定所述第一交易支付请求为重复支付请求。
在本申请可选实施例中,所述模块还包括处理模块,在所述检索模块用于根据所述交易标志号,在待支付队列中检索不存在相同交易标志号的待支付请求时,
所述处理模块,用于将所第一交易支付请求写入待支付队列并修改所述第一交易支付请求的支付状态为待支付;
所述处理模块,还用于启动线程资源将所述第一支付交易请求写入支付登记表;
所述确定模块,用于在写入失败时,确定所述第一交易支付请求为重复支付请求。
在本申请可选实施例中,在将所述第一支付交易请求写入支付登记表之前,所述处理模块还用于:
启动线程资源将所述第一支付交易请求的指令状态修改为待查证。
在本申请可选实施例中,所述处理模块还用于:
将所述待支付队列中的支付请求按照预设规则进行分批标记;其中所述待支付状态的第一交易支付请求包括于所述待支付队列中;其中同一批次的待支付请求具有相同的批次标记号;
启动线程资源将包括所述第一交易支付请求的批次交易写入批次支付登记表;
所述确定模块,用于在写入失败后确定包括所述第一交易支付请求的批次交易为重复交易。
可以理解的是,本实施例中的防止重复支付装置的上述各模块具有实现图1中所示的实施例中的方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述各模块的功能描述具体可以参见图1中所示实施例中的方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的防止重复支付的方法。
作为一个示例,图3示出了本申请实施例所适用的一种电子设备的结构示意图,如图3所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的防止重复支付的方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的防止重复支付的方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例公开的防止重复支付方案,接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;如果存在,则确定所述第一交易支付请求为重复支付请求。基于本申请实施例所述的防止重复支付的技术方案能够保证对于单笔交易并发执行不再出现重复支付的问题;对于批量交易支付指令处理场景,保证批量交易指令的安全稳定,避免了重复发送交易导致重复支付的可能性,确保交易安全。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种防止重复支付的方法,其特征在于,所述方法包括:
接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;
根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果存在,则确定所述第一交易支付请求为重复支付请求。
2.根据权利要求1所述的防止重复支付的方法,其特征在于,所述方法包括:
根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果不存在,则将所第一交易支付请求写入待支付队列并修改所述第一交易支付请求的支付状态为待支付;
启动线程资源将所述第一支付交易请求写入支付登记表;
如果写入失败,则确定所述第一交易支付请求为重复支付请求。
3.根据权利要求2所述的防止重复支付的方法,其特征在于,在将所述第一支付交易请求写入支付登记表之前,所述方法还包括:
启动线程资源将所述第一支付交易请求的指令状态修改为待查证。
4.根据权利要求3所述的防止重复支付的方法,其特征在于,当所述第一交易为单笔交易时,其中,
所述交易支付请求中的交易标志号为交易流水号;
所述登记表为单笔支付登记表。
5.根据权利要求3所述的防止重复支付的方法,其特征在于,所述方法还包括:
将所述待支付队列中的支付请求按照预设规则进行分批标记;其中所述待支付状态的第一交易支付请求包括于所述待支付队列中;其中同一批次的待支付请求具有相同的批次标记号;
启动线程资源将包括所述第一交易支付请求的批次交易写入批次支付登记表;
如果写入失败,则确定包括所述第一交易支付请求的批次交易为重复交易。
6.根据权利要求4或5所述的防止重复支付的方法,其特征在于,所述方法还包括:
修改所述第一交易支付请求的支付状态为待支付后,锁定支付状态为待支付状态。
7.一种防止重复支付的装置,其特征在于,所述装置包括:接收模块、检索模块、确定模块,其中,
所述接收模块,用于接收客户端上报的第一交易支付请求,其中所述交易支付请求中包括交易标志号;
所述检索模块,用于根据所述交易标志号,在待支付队列中检索是否存在相同交易标志号的待支付请求;
如果存在,所述确定模块,用于则确定所述第一交易支付请求为重复支付请求。
8.根据权利要求7所述的防止重复支付的装置,其特征在于,所述模块还包括处理模块,在所述检索模块用于根据所述交易标志号,在待支付队列中检索不存在相同交易标志号的待支付请求时,
所述处理模块,用于将所第一交易支付请求写入待支付队列并修改所述第一交易支付请求的支付状态为待支付;
所述处理模块,还用于启动线程资源将所述第一支付交易请求写入支付登记表;
所述确定模块,用于在写入失败时,确定所述第一交易支付请求为重复支付请求。
9.根据权利要求8所述的防止重复支付的装置,其特征在于,在将所述第一支付交易请求写入支付登记表之前,所述处理模块还用于:
启动线程资源将所述第一支付交易请求的指令状态修改为待查证。
10.根据权利要求9所述的防止重复支付的装置,其特征在于,所述处理模块还用于:
将所述待支付队列中的支付请求按照预设规则进行分批标记;其中所述待支付状态的第一交易支付请求包括于所述待支付队列中;其中同一批次的待支付请求具有相同的批次标记号;
启动线程资源将包括所述第一交易支付请求的批次交易写入批次支付登记表;
所述确定模块,用于在写入失败后确定包括所述第一交易支付请求的批次交易为重复交易。
11.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-6中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010783710.1A CN112053149A (zh) | 2020-08-06 | 2020-08-06 | 一种防止重复支付的方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010783710.1A CN112053149A (zh) | 2020-08-06 | 2020-08-06 | 一种防止重复支付的方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112053149A true CN112053149A (zh) | 2020-12-08 |
Family
ID=73602179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010783710.1A Pending CN112053149A (zh) | 2020-08-06 | 2020-08-06 | 一种防止重复支付的方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112053149A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222580A (zh) * | 2021-05-27 | 2021-08-06 | 中国农业银行股份有限公司 | 账务处理方法及相关装置 |
CN113240528A (zh) * | 2021-06-18 | 2021-08-10 | 中国银行股份有限公司 | 金融交易处理方法及系统 |
CN113327358A (zh) * | 2021-04-08 | 2021-08-31 | 厦门路桥信息股份有限公司 | 防误刷过闸方法及装置 |
CN113592506A (zh) * | 2021-09-27 | 2021-11-02 | 北京华益精点生物技术有限公司 | 重复支付处理方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359996A (zh) * | 2018-10-16 | 2019-02-19 | 翟红鹰 | 防止重复付款的支付方法、交易平台、终端及存储介质 |
CN110111095A (zh) * | 2019-04-25 | 2019-08-09 | 银清科技(北京)有限公司 | 支付交易判重方法及支付系统 |
-
2020
- 2020-08-06 CN CN202010783710.1A patent/CN112053149A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359996A (zh) * | 2018-10-16 | 2019-02-19 | 翟红鹰 | 防止重复付款的支付方法、交易平台、终端及存储介质 |
CN110111095A (zh) * | 2019-04-25 | 2019-08-09 | 银清科技(北京)有限公司 | 支付交易判重方法及支付系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113327358A (zh) * | 2021-04-08 | 2021-08-31 | 厦门路桥信息股份有限公司 | 防误刷过闸方法及装置 |
CN113222580A (zh) * | 2021-05-27 | 2021-08-06 | 中国农业银行股份有限公司 | 账务处理方法及相关装置 |
CN113240528A (zh) * | 2021-06-18 | 2021-08-10 | 中国银行股份有限公司 | 金融交易处理方法及系统 |
CN113592506A (zh) * | 2021-09-27 | 2021-11-02 | 北京华益精点生物技术有限公司 | 重复支付处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112053149A (zh) | 一种防止重复支付的方法、装置、电子设备和可读存储介质 | |
EP3816910B1 (en) | Blockchain-based transaction processing method and apparatus, and electronic device | |
US20210157800A1 (en) | Blockchain-based transaction processing methods, apparatuses, and electronic devices | |
CN110020542B (zh) | 数据读写方法及装置、电子设备 | |
WO2020086231A1 (en) | Blockchain-based transaction processing method, apparatus, and electronic device | |
CN110188110B (zh) | 一种构建分布式锁的方法及装置 | |
EP3816912B1 (en) | Blockchain-based transaction processing method and apparatus, and electronic device | |
EP3958159B1 (en) | Data recording methods and apparatuses, electronic devices, and storage media | |
WO2016118429A1 (en) | System for efficient processing of transaction requests related to an account in a database | |
US20080201712A1 (en) | Method and System for Concurrent Message Processing | |
CN112688799B (zh) | 基于Redis集群的客户号分配方法以及分配装置 | |
CN111367694B (zh) | 事件处理方法、服务器及计算机存储介质 | |
CN108762895B (zh) | 处理分布式事务的方法及装置 | |
CN112182606A (zh) | 访问请求的处理方法、装置、电子设备及可读存储介质 | |
CN109325073B (zh) | 分布式事务的实现方法和装置 | |
CN112637222A (zh) | 一种请求的处理方法及装置 | |
CN112099934A (zh) | 一种批处理方法、系统、计算机设备及存储介质 | |
WO2023242820A1 (en) | Future conditional blockchain transaction techniques | |
CN109919623A (zh) | 防止账户透支方法、装置、设备及可读存储介质 | |
CN112527473B (zh) | 一种分布式事务处理方法及装置 | |
CN111737262B (zh) | 一种数据处理方法及装置 | |
CN113055401A (zh) | 一种企业业务的授权处理方法及装置 | |
WO2016168509A1 (en) | Fund recovery method and apparatus | |
CN116126481B (zh) | 分布式长事务的处理方法及装置 | |
CN115756768B (zh) | 基于saga的分布式事务处理方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |