CN111861746A - 一种处理交易数据的方法和装置 - Google Patents

一种处理交易数据的方法和装置 Download PDF

Info

Publication number
CN111861746A
CN111861746A CN202010646501.2A CN202010646501A CN111861746A CN 111861746 A CN111861746 A CN 111861746A CN 202010646501 A CN202010646501 A CN 202010646501A CN 111861746 A CN111861746 A CN 111861746A
Authority
CN
China
Prior art keywords
transaction
call stack
calling
code
transaction system
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
Application number
CN202010646501.2A
Other languages
English (en)
Inventor
李海宁
张平
殷钊
刘宁
吕雄
张文静
陈达
张茜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp, CCB Finetech Co Ltd filed Critical China Construction Bank Corp
Priority to CN202010646501.2A priority Critical patent/CN111861746A/zh
Publication of CN111861746A publication Critical patent/CN111861746A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/03Credit; Loans; Processing thereof

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种处理交易数据的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中;接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统;根据所述交易调用栈中的交易码确定是否发起冲正。该实施方式能够解决处理交易一致性的效率低的技术问题。

Description

一种处理交易数据的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理交易数据的方法和装置。
背景技术
在会计记账中,会有对应的借贷两方,如果只有借或者只有贷,会发生借贷不平,形成单边账。从技术实现角度出发,一个应用/应用组件在作为服务端响应前端请求的同时,也作为客户端组合调用其他关联应用/应用组件,此时如果发生网络超时或其他交易异常,导致借贷两方的组件没有同时记账,则会发生借贷不平。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现今金融行业中,跨系统和跨机构间的账务交易场景极为普遍,但是都存在着账务一致性低的问题,需要通过手工核对调账,会造成资金风险且处理效率低。
发明内容
有鉴于此,本发明实施例提供一种处理交易数据的方法和装置,以解决处理交易一致性的效率低的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种处理交易数据的方法,包括:
获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中;
接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统;
根据所述交易调用栈中的交易码确定是否发起冲正。
可选地,根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统,包括:
判断所述第一交易系统的调用结果是否为成功;
若是,则调用第二交易系统,将所述第二交易系统的交易码压入到所述交易调用栈中;接收所述第二交易系统的调用结果,并根据所述第二交易系统的调用结果确定是否将所述第二交易系统的交易码从所述交易调用栈中出栈;
若否,则判断所述第一交易系统的调用结果是否为失败;若是,则将所述第一交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
可选地,根据所述第二交易系统的调用结果确定所述第二交易系统的交易码是否从所述交易调用栈中出栈,包括:
判断所述第二交易系统的调用结果是否为成功;
若是,则释放所述交易调用栈;
若否,则判断所述第二交易系统的调用结果是否为失败;若是,则将所述第二交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
可选地,将所述第一交易系统的交易码压入到交易调用栈中之后,还包括:
将所述交易的交易流水号、所述第一交易系统的交易码、调用所述第一交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
可选地,将所述第二交易系统的交易码压入到所述交易调用栈中之后,还包括:
将所述交易的交易流水号、所述第二交易系统的交易码、调用所述第二交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
可选地,根据所述交易调用栈中的交易码确定是否发起冲正,包括:
判断所述交易调用栈是否为空;
若是,则释放所述交易调用栈;
若否,则以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,然后释放所述交易调用栈。
可选地,以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,之后,还包括:
若冲正失败,则将冲正失败的交易对应的交易流水号、交易码、子序号和交易日期写入待冲正任务表;
通过定时任务定期检查所述待冲正任务表,根据所述待冲正任务表进行重试冲正。
可选地,根据所述待冲正任务表进行重试冲正,包括:
根据所述交易的流水号从所述待冲正任务表中获取所述交易对应的子序号;
按照所述子序号的倒序,从所述待冲正任务表查询出待冲正交易列表;
对所述待冲正交易列表顺序地发起冲正。
另外,根据本发明实施例的另一个方面,提供了一种处理交易数据的装置,包括:
第一处理模块,用于获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中;
第二处理模块,用于接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统;
冲正模块,用于根据所述交易调用栈中的交易码确定是否发起冲正。
可选地,所述第二处理模块还用于:
判断所述第一交易系统的调用结果是否为成功;
若是,则调用第二交易系统,将所述第二交易系统的交易码压入到所述交易调用栈中;接收所述第二交易系统的调用结果,并根据所述第二交易系统的调用结果确定是否将所述第二交易系统的交易码从所述交易调用栈中出栈;
若否,则判断所述第一交易系统的调用结果是否为失败;若是,则将所述第一交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
可选地,所述第二处理模块还用于:
判断所述第二交易系统的调用结果是否为成功;
若是,则释放所述交易调用栈;
若否,则判断所述第二交易系统的调用结果是否为失败;若是,则将所述第二交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
可选地,所述第一处理模块还用于:
将所述第一交易系统的交易码压入到交易调用栈中之后,将所述交易的交易流水号、所述第一交易系统的交易码、调用所述第一交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
可选地,所述第二处理模块还用于:
将所述第二交易系统的交易码压入到所述交易调用栈中之后,将所述交易的交易流水号、所述第二交易系统的交易码、调用所述第二交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
可选地,所述冲正模块还用于:
判断所述交易调用栈是否为空;
若是,则释放所述交易调用栈;
若否,则以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,然后释放所述交易调用栈。
可选地,所述冲正模块还用于:
以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,若冲正失败,则将冲正失败的交易对应的交易流水号、交易码、子序号和交易日期写入待冲正任务表;
通过定时任务定期检查所述待冲正任务表,根据所述待冲正任务表进行重试冲正。
可选地,所述冲正模块还用于:
根据所述交易的流水号从所述待冲正任务表中获取所述交易对应的子序号;
按照所述子序号的倒序,从所述待冲正任务表查询出待冲正交易列表;
对所述待冲正交易列表顺序地发起冲正。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用根据第一交易系统的调用结果确定是否将第一交易系统的交易码从交易调用栈中出栈以及是否继续调用第二交易系统,根据交易调用栈中的交易码确定是否发起冲正的技术手段,所以克服了现有技术中处理交易一致性的效率低的技术问题。本发明实施例通过交易调用栈对交易一致性进行统一识别,避免了各种复杂场景中由于判定标准的差异,导致误判;发生交易不一致时按出栈顺序发起冲正,在出现单边账的极端情况下,避免资金损失。因此本发明实施例在返回交易结果前即可发现交易一致性问题,并通过同步冲正实时调整,保证了大部分情况下对客户无感,具有实时性高、智能化强等优点。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的贷记卡还款交易的处理流程的示意图;
图2是根据本发明实施例的处理交易数据的方法的主要流程的示意图;
图3是根据本发明一个可参考实施例的处理交易数据的方法的主要流程的示意图;
图4是根据本发明另一个可参考实施例的处理交易数据的方法的主要流程的示意图;
图5是根据本发明实施例的处理交易数据的装置的主要模块的示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,下面以贷记卡还款交易为例,说明在联机交易实现中,遵循以下处理流程:
接收到用户发起的交易请求后,交易组合点系统首先调用借记卡核心系统执行扣款操作,再调用贷记卡核心系统进行还款操作,成功后组合点更新本地日志,并记录交易完成状态。在正常情况下,交易组合点系统、借记卡核心系统、贷记卡核心系统三方都操作成功,但存在以下三种异常场景:
1)当组合点调用借记卡核心系统扣款时出现超时;
2)当组合点调用借记卡核心系统扣款成功,之后调用贷记卡核心系统进行还款操作时由于贷记卡号输入错误还款失败;
3)当组合点调用借记卡核心系统扣款成功,之后调用贷记卡核心系统进行还款操作时出现超时。
这三种异常场景都可能会产生借贷不平的情况。在现有技术实现中,需要借记卡核心系统和贷记卡核心系统分别提供查询交易和手工冲正交易。人工先查询该交易状态,究竟是成功还是失败,再结合交易场景发起手工冲正交易。
因此,现有处理方式需要等待日终报表或客户反馈之后,业务人员才能识别异常交易并进行处理,无法做到产生不确定异常时立即处理,时效性低。而且实际金融交易的服务组合与调用关系多种多样,可能发生的异常场景也很多,分析处理异常情况需耗费大量人力时间。
为了解决现有技术存在的技术问题,本发明实施例提供了一种处理交易数据的方法,该方法能够及时处理大部分跨系统和跨机构间的账务不一致情况,提高了账务交易的准确性,极大减少了手工处理工作量,具有时效性高的优点。
图2是根据本发明实施例的处理交易数据的方法的主要流程的示意图。作为本发明的一个实施例,如图2所示,所述处理交易数据的方法可以包括:
步骤201,获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中。
在该步骤中,交易组合点系统接收到用户发起的交易请求后,首先调用第一交易系统,并将所述第一交易系统的交易码压入到交易调用栈中。可选地,第一交易系统可以是借记卡核心系统,也可以是贷记卡核心系统,本发明实施例对此不作限制。在本发明的实施例中,可以先调用借记卡核心系统、再调用贷记卡核心系统;也可以先调用贷记卡核心系统,再调用借记卡核心系统。其中,所述交易码用于指示交易类型,比如扣款、还款、存款、取现等,不同的交易类型用不用的交易码表示。如果第一交易系统为借记卡核心系统,则第一交易系统的交易类型为扣款,那么第一交易系统的交易码为扣款的交易码。
可选地,将所述第一交易系统的交易码压入到交易调用栈中之后,还包括:将所述交易的交易流水号、所述第一交易系统的交易码、调用所述第一交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。为了便于查询当前处理的交易的各项信息,交易组合点系统在调用其他交易系统的同时,除了维护交易调用栈,同时也要记录交易调用关联关系表(用于异步冲正),记录内容包含交易流水号、交易码、子序号、交易日期;其中,交易流水号为交易发起点生成的全局唯一,各系统间共用,一直持续到交易结束的交易标识;子序号初始为0,每次发送交易调用时顺序加一。例如,当交易组合点系统调用第一交易系统时,子序号为0,当交易组合点系统接着调用第二交易系统时,子序号为1,以此类推。
步骤202,接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统。
交易组合点系统调用第一交易系统后,接收所述第一交易系统的调用结果:成功(返回00)或者失败(返回01)。然后交易组合点系统根据所述第一交易系统的调用结果,确定是否将步骤201中的交易码从所述交易调用栈中出栈,以及,是否继续调用第二交易系统。
可选地,根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统,包括:
判断所述第一交易系统的调用结果是否为成功;
若是,则调用第二交易系统,将所述第二交易系统的交易码压入到所述交易调用栈中;接收所述第二交易系统的调用结果,并根据所述第二交易系统的调用结果确定是否将所述第二交易系统的交易码从所述交易调用栈中出栈;
若否,则判断所述第一交易系统的调用结果是否为失败;若是,则将所述第一交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
交易组合点系统接收所述第一交易系统的调用结果,如果所述第一交易系统的调用结果为成功,则将所述第一交易系统的交易码继续留在所述交易调用栈中,并接着调用第二交易系统。在调用第二交易系统时,也同样将所述第二交易系统的交易码压入到所述交易调用栈中。然后接收所述第二交易系统的调用结果,并根据所述第二交易系统的调用结果确定是否将所述第二交易系统的交易码从所述交易调用栈中出栈。
如果所述第一交易系统的调用结果不为成功,则继续判断所述第一交易系统的调用结果是否为失败。如果所述第一交易系统的调用结果为失败,则将所述第一交易系统的交易码从所述交易调用栈中出栈;如果所述第一交易系统的调用结果不为失败(一般是第一交易系统超时未返回结果,导致交易状态不确定),则将所述第一交易系统的交易码继续留在所述交易调用栈中。
可选地,根据所述第二交易系统的调用结果确定所述第二交易系统的交易码是否从所述交易调用栈中出栈,包括:
判断所述第二交易系统的调用结果是否为成功;
若是,则释放所述交易调用栈;
若否,则判断所述第二交易系统的调用结果是否为失败;若是,则将所述第二交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
与调用第一交易系统类似,交易组合点系统接收所述第二交易系统的调用结果,如果所述第二交易系统的调用结果为成功,则将所述第二交易系统的交易码继续留在所述交易调用栈中。如果所述第二交易系统的调用结果不为成功,则继续判断所述第二交易系统的调用结果是否为失败。如果所述第二交易系统的调用结果为失败,则将所述第二交易系统的交易码从所述交易调用栈中出栈;如果所述第二交易系统的调用结果不为失败(一般是第二交易系统超时未返回结果,导致交易状态不确定),则将所述第二交易系统的交易码继续留在所述交易调用栈中。
可选地,将所述第二交易系统的交易码压入到所述交易调用栈中之后,还包括:将所述交易的交易流水号、所述第二交易系统的交易码、调用所述第二交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。为了便于查询当前处理的交易的各项信息,交易组合点系统在调用其他交易系统的同时,除了维护交易调用栈,同时也要记录交易调用关联关系表(用于异步冲正),记录内容包含交易流水号、交易码、子序号、交易日期。如前文所述,当交易组合点系统调用第二交易系统时,子序号为1。
步骤203,根据所述交易调用栈中的交易码确定是否发起冲正。
在步骤201和步骤202的基础上,根据交易调用栈中的交易码确定是否发起冲正,如果交易调用栈中有交易码,则发起冲正,反之,则不处理。
可选地,步骤103可以包括:判断所述交易调用栈是否为空;若是,则释放所述交易调用栈;若否,则以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,然后释放所述交易调用栈。组合点交易异常结束,有借贷不平产生时,以交易调用栈出栈顺序(先入后出,后入先出)为冲正顺序,依次对出栈交易发起冲正,然后释放所述交易调用栈。
因此在借贷不平发生时,交易组合点系统第一时间自动进行调整,避免单边账可能产生的业务影响和资金风险,并减少由此带来的沟通解释、调账等工作。
可选地,以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,之后,还包括:若冲正失败,则将冲正失败的交易对应的交易流水号、交易码、子序号和交易日期写入待冲正任务表;通过定时任务定期检查所述待冲正任务表,根据所述待冲正任务表进行重试冲正。在本发明的实施例中,对于冲正失败的交易,新建异步冲正任务(包括交易流水号、交易码、子序号和交易日期等信息),并将所述异步冲正任务插入到待冲正任务表,用于异步冲正。
可选地,根据所述待冲正任务表进行重试冲正,包括:根据所述交易的流水号从所述待冲正任务表中获取所述交易对应的子序号;按照所述子序号的倒序,从所述待冲正任务表查询出待冲正交易列表;对所述待冲正交易列表顺序地发起冲正。基于多机部署的定时任务定期检查待冲正任务表,发起重试冲正。冲正任务被调起后根据交易流水号获取对应的所有子序号,然后按照子序号倒序方式查询出待冲正任务表中的待冲正交易列表;最后针对待冲正交易列表,顺序地发起冲正。同步冲正失败后转异步冲正,可以防止资源占用对交易业务产生影响;而且异步多次重试机制进一步降低了需要人工干预的处理量。
根据上面所述的各种实施例,可以看出本发明实施例通过根据第一交易系统的调用结果确定是否将第一交易系统的交易码从交易调用栈中出栈以及是否继续调用第二交易系统,根据交易调用栈中的交易码确定是否发起冲正的技术手段,解决了现有技术中处理交易一致性的效率低的技术问题。本发明实施例通过交易调用栈对交易一致性进行统一识别,避免了各种复杂场景中由于判定标准的差异,导致误判;发生交易不一致时按出栈顺序发起冲正,在出现单边账的极端情况下,避免资金损失。因此本发明实施例在返回交易结果前即可发现交易一致性问题,并通过同步冲正实时调整,保证了大部分情况下对客户无感,具有实时性高、智能化强等优点。
图3是根据本发明一个可参考实施例的处理交易数据的方法的主要流程的示意图。作为本发明的又一个实施例,如图3所示,所述处理交易数据的方法可以包括:
步骤301,获取待处理的交易,根据交易调用第一交易系统,将第一交易系统的交易码压入到交易调用栈中。
步骤302,接收第一交易系统的调用结果。
步骤303,判断第一交易系统的调用结果是否为成功;若是,则执行步骤304;若否,则执行步骤310。
步骤304,调用第二交易系统,将第二交易系统的交易码压入到交易调用栈中。
步骤305,接收第二交易系统的调用结果。
步骤306,判断第二交易系统的调用结果是否为成功;若是,则执行步骤307;若否,则执行步骤308。
步骤307,释放交易调用栈。
步骤308,判断第二交易系统的调用结果是否为失败;若是,则执行步骤309;若否,则执行步骤312。
步骤309,将第二交易系统的交易码从交易调用栈中出栈。
步骤310,判断第一交易系统的调用结果是否为失败;若是,则执行步骤311;若否,则执行步骤312。
步骤311,将第一交易系统的交易码从交易调用栈中出栈。
步骤312,不对交易调用栈进行操作。
步骤313,判断交易调用栈是否为空;若是,则执行步骤307;若否,则执行步骤314。
步骤314,以交易调用栈的出栈顺序为冲正顺序,依次对交易调用栈中的交易码发起冲正。
交易一致性在金融账务系统中非常重要,若采用传统的处理方法解决交易一致性问题,系统在日终才能发现不一致,后续需要手工对不一致性问题做分析与处理,在交易实时性要求很高或交易异常时有较严重的资金风险时,事后需要做出大量沟通解释工作,并会导致较严重社会影响或者面临银监会等上级管理机构追责的情况。
本发明实施例对不一致场景的识别与调整过程全部进行自动化识别和自动化处理,不需要人为干预,并且是实时的,避免事后出现问题的各种善后工作。
另外,在本发明一个可参考实施例中处理交易数据的方法的具体实施内容,在上面所述处理交易数据的方法中已经详细说明了,故在此重复内容不再说明。
图4是根据本发明另一个可参考实施例的处理交易数据的方法的主要流程的示意图。作为本发明的另一个实施例,如图4所示,所述处理交易数据的方法可以包括:
插入交易日志。
调用借记卡核心系统执行扣款交易A:将A的交易码压入栈中,并记录交易调用关联关系表(子序号=0)。
判断借记卡核心系统是否返回00(成功)?如果借记卡核心系统返回00,则调用贷记卡核心系统执行还款交易B:将B的交易码压入栈中,并记录交易调用关联关系表(子序号=1)。
判断贷记卡核心系统是否返回00?如果贷记卡核心系统返回00,则释放栈,并将交易日志更新为成功状态。如果贷记卡核心系统未返回00,则判断贷记卡核心系统是否返回01(失败)?如果贷记卡核心系统返回01,则将交易B的交易码出栈。
如果借记卡核心系统未返回00,则判断借记卡核心系统是否返回01?如果借记卡核心系统返回01,则将交易A的交易码出栈。
如果借记卡核心系统未返回01或者如果贷记卡核心系统未返回01,则继续判断栈是否为空,如果否,则按照出栈顺序发起冲正,如果是,则将交易日志更新为失败状态。
按照出栈顺序发起冲正的过程中,判断冲正是否成功,如果成功,则将交易日志更新为成功状态。如果不成功,则新建异步冲正任务。
仍以贷记卡还款交易异常场景为例:
1)交易组合点系统调用借记卡核心系统针对交易A执行扣款,则将交易A的交易码压入交易调用栈中,如果交易组合点系统超时未收到响应导致交易异常结束。此时如果客户借记卡被扣款,但信用卡未提升额度,存在借贷不平,通过交易调用栈不为空可识别此种场景,交易组合点系统自动发起对系统交易A的冲正。
2)交易组合点系统调用借记卡核心系统针对交易A执行扣款,将交易A的交易码压入交易调用栈中,交易A成功之后调用贷记卡核心系统针对交易B进行还款,将交易B的交易码压入交易调用栈中,由于贷记卡卡号输入错误,导致交易B失败,交易B的交易码出栈。此时客户借记卡被扣款,但信用卡未提升额度,发送借贷不平,通过交易调用栈不为空可识别此种场景,此时栈中只有交易A的交易码,系统自动对交易A进行冲正。
3)交易组合点系统调用借记卡核心系统针对交易A执行扣款,将交易A的交易码压入交易调用栈中,交易A成功之后调用贷记卡核心系统针对交易B进行还款,将交易B的交易码压入交易调用栈中,如果交易组合点系统超时未收到响应导致交易异常结束。此时客户借记卡被扣款,但信用卡是否提升额度未知,可能存在借贷不平。通过交易调用栈不为空可识别此种场景,系统按出栈顺序,先发起对交易B冲正,再发起对交易A冲正。
另外,在本发明另一个可参考实施例中处理交易数据的方法的具体实施内容,在上面所述处理交易数据的方法中已经详细说明了,故在此重复内容不再说明。
图5是根据本发明实施例的处理交易数据的装置的主要模块的示意图,如图5所示,所述处理交易数据的装置500包括第一处理模块501、第二处理模块502和冲正模块503;其中,第一处理模块501用于获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中;第二处理模块502用于接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统;冲正模块503用于根据所述交易调用栈中的交易码确定是否发起冲正。
可选地,所述第二处理模块502还用于:
判断所述第一交易系统的调用结果是否为成功;
若是,则调用第二交易系统,将所述第二交易系统的交易码压入到所述交易调用栈中;接收所述第二交易系统的调用结果,并根据所述第二交易系统的调用结果确定是否将所述第二交易系统的交易码从所述交易调用栈中出栈;
若否,则判断所述第一交易系统的调用结果是否为异常;若是,则将所述第一交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
可选地,所述第二处理模块502还用于:
判断所述第二交易系统的调用结果是否为成功;
若是,则释放所述交易调用栈;
若否,则判断所述第二交易系统的调用结果是否为失败;若是,则将所述第二交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
可选地,所述第一处理模块501还用于:
将所述第一交易系统的交易码压入到交易调用栈中之后,将所述交易的交易流水号、所述第一交易系统的交易码、调用所述第一交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
可选地,所述第二处理模块502还用于:
将所述第二交易系统的交易码压入到所述交易调用栈中之后,将所述交易的交易流水号、所述第二交易系统的交易码、调用所述第二交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
可选地,所述冲正模块503还用于:
判断所述交易调用栈是否为空;
若是,则释放所述交易调用栈;
若否,则以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,然后释放所述交易调用栈。
可选地,所述冲正模块503还用于:
以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,若冲正失败,则将冲正失败的交易对应的交易流水号、交易码、子序号和交易日期写入待冲正任务表;
通过定时任务定期检查所述待冲正任务表,根据所述待冲正任务表进行重试冲正。
可选地,所述冲正模块503还用于:
根据所述交易的流水号从所述待冲正任务表中获取所述交易对应的子序号;
按照所述子序号的倒序,从所述待冲正任务表查询出待冲正交易列表;
对所述待冲正交易列表顺序地发起冲正。
根据上面所述的各种实施例,可以看出本发明实施例通过根据第一交易系统的调用结果确定是否将第一交易系统的交易码从交易调用栈中出栈以及是否继续调用第二交易系统,根据交易调用栈中的交易码确定是否发起冲正的技术手段,解决了现有技术中处理交易一致性的效率低的技术问题。本发明实施例通过交易调用栈对交易一致性进行统一识别,避免了各种复杂场景中由于判定标准的差异,导致误判;发生交易不一致时按出栈顺序发起冲正,在出现单边账的极端情况下,避免资金损失。因此本发明实施例在返回交易结果前即可发现交易一致性问题,并通过同步冲正实时调整,保证了大部分情况下对客户无感,具有实时性高、智能化强等优点。
需要说明的是,在本发明所述处理交易数据的装置的具体实施内容,在上面所述处理交易数据的方法中已经详细说明了,故在此重复内容不再说明。
图6示出了可以应用本发明实施例的处理交易数据的方法或处理交易数据的装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、物品信息——仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的处理交易数据的方法一般由服务器605执行,相应地,所述处理交易数据的装置一般设置在服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一处理模块、第二处理模块和冲正模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中;接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统;根据所述交易调用栈中的交易码确定是否发起冲正。
根据本发明实施例的技术方案,因为采用根据第一交易系统的调用结果确定是否将第一交易系统的交易码从交易调用栈中出栈以及是否继续调用第二交易系统,根据交易调用栈中的交易码确定是否发起冲正的技术手段,所以克服了现有技术中处理交易一致性的效率低的技术问题。本发明实施例通过交易调用栈对交易一致性进行统一识别,避免了各种复杂场景中由于判定标准的差异,导致误判;发生交易不一致时按出栈顺序发起冲正,在出现单边账的极端情况下,避免资金损失。因此本发明实施例在返回交易结果前即可发现交易一致性问题,并通过同步冲正实时调整,保证了大部分情况下对客户无感,具有实时性高、智能化强等优点。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (11)

1.一种处理交易数据的方法,其特征在于,包括:
获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中;
接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统;
根据所述交易调用栈中的交易码确定是否发起冲正。
2.根据权利要求1所述的方法,其特征在于,根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统,包括:
判断所述第一交易系统的调用结果是否为成功;
若是,则调用第二交易系统,将所述第二交易系统的交易码压入到所述交易调用栈中;接收所述第二交易系统的调用结果,并根据所述第二交易系统的调用结果确定是否将所述第二交易系统的交易码从所述交易调用栈中出栈;
若否,则判断所述第一交易系统的调用结果是否为失败;若是,则将所述第一交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
3.根据权利要求2所述的方法,其特征在于,根据所述第二交易系统的调用结果确定所述第二交易系统的交易码是否从所述交易调用栈中出栈,包括:
判断所述第二交易系统的调用结果是否为成功;
若是,则释放所述交易调用栈;
若否,则判断所述第二交易系统的调用结果是否为失败;若是,则将所述第二交易系统的交易码从所述交易调用栈中出栈;若否,则不对所述交易调用栈进行操作。
4.根据权利要求2所述的方法,其特征在于,将所述第一交易系统的交易码压入到交易调用栈中之后,还包括:
将所述交易的交易流水号、所述第一交易系统的交易码、调用所述第一交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
5.根据权利要求4所述的方法,其特征在于,将所述第二交易系统的交易码压入到所述交易调用栈中之后,还包括:
将所述交易的交易流水号、所述第二交易系统的交易码、调用所述第二交易系统的子序号和所述交易的交易日期记录到交易调用关联关系表中。
6.根据权利要求1所述的方法,其特征在于,根据所述交易调用栈中的交易码确定是否发起冲正,包括:
判断所述交易调用栈是否为空;
若是,则释放所述交易调用栈;
若否,则以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,然后释放所述交易调用栈。
7.根据权利要求6所述的方法,其特征在于,以所述交易调用栈的出栈顺序为冲正顺序,依次对所述交易调用栈中的交易码发起冲正,之后,还包括:
若冲正失败,则将冲正失败的交易对应的交易流水号、交易码、子序号和交易日期写入待冲正任务表;
通过定时任务定期检查所述待冲正任务表,根据所述待冲正任务表进行重试冲正。
8.根据权利要求7所述的方法,其特征在于,根据所述待冲正任务表进行重试冲正,包括:
根据所述交易的流水号从所述待冲正任务表中获取所述交易对应的子序号;
按照所述子序号的倒序,从所述待冲正任务表查询出待冲正交易列表;
对所述待冲正交易列表顺序地发起冲正。
9.一种处理交易数据的装置,其特征在于,包括:
第一处理模块,用于获取待处理的交易,根据所述交易调用第一交易系统,将所述第一交易系统的交易码压入到交易调用栈中;
第二处理模块,用于接收所述第一交易系统的调用结果,并根据所述第一交易系统的调用结果确定是否将所述第一交易系统的交易码从所述交易调用栈中出栈以及是否继续调用第二交易系统;
冲正模块,用于根据所述交易调用栈中的交易码确定是否发起冲正。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN202010646501.2A 2020-07-07 2020-07-07 一种处理交易数据的方法和装置 Pending CN111861746A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010646501.2A CN111861746A (zh) 2020-07-07 2020-07-07 一种处理交易数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010646501.2A CN111861746A (zh) 2020-07-07 2020-07-07 一种处理交易数据的方法和装置

Publications (1)

Publication Number Publication Date
CN111861746A true CN111861746A (zh) 2020-10-30

Family

ID=73152371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010646501.2A Pending CN111861746A (zh) 2020-07-07 2020-07-07 一种处理交易数据的方法和装置

Country Status (1)

Country Link
CN (1) CN111861746A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112734584A (zh) * 2021-01-21 2021-04-30 建信金融科技有限责任公司 一种基于财险业务流程对保单进行锁定的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243586A (zh) * 2015-11-11 2016-01-13 中国建设银行股份有限公司 一种银行代理保险系统及其防错账处理方法
CN105447757A (zh) * 2015-11-20 2016-03-30 中国建设银行股份有限公司 一种保持交易信息一致性的方法及系统
CN110599341A (zh) * 2019-09-20 2019-12-20 中国银行股份有限公司 交易调用方法及系统
CN111277639A (zh) * 2020-01-16 2020-06-12 中国建设银行股份有限公司 一种保持数据一致性的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243586A (zh) * 2015-11-11 2016-01-13 中国建设银行股份有限公司 一种银行代理保险系统及其防错账处理方法
CN105447757A (zh) * 2015-11-20 2016-03-30 中国建设银行股份有限公司 一种保持交易信息一致性的方法及系统
CN110599341A (zh) * 2019-09-20 2019-12-20 中国银行股份有限公司 交易调用方法及系统
CN111277639A (zh) * 2020-01-16 2020-06-12 中国建设银行股份有限公司 一种保持数据一致性的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112734584A (zh) * 2021-01-21 2021-04-30 建信金融科技有限责任公司 一种基于财险业务流程对保单进行锁定的方法及系统

Similar Documents

Publication Publication Date Title
CN111277639B (zh) 一种保持数据一致性的方法和装置
CN110888893A (zh) 一种基于微服务电商系统的订单处理方法
CN110889751B (zh) 企业资金池管理方法、装置、系统、电子设备及可读介质
CN111125106B (zh) 一种跑批任务执行方法、装置、服务器和存储介质
CN112163946A (zh) 基于分布式交易系统的账务处理方法及装置
CN112288577B (zh) 分布式服务的交易处理方法、装置、电子设备和介质
CN111127181A (zh) 一种凭证记账方法和装置
CN114253673A (zh) 一种分布式系统的事务处理方法和事务处理装置
CN111857888A (zh) 一种交易处理方法及装置
CN111861745B (zh) 一种业务风控方法和装置
CN115544044A (zh) 一种数据一致性保持方法、装置、设备和存储介质
CN111415146A (zh) 资源数据的处理方法、装置及设备
CN110705981B (zh) 一种实时结算的方法和装置
US8478838B2 (en) System and method for using a same program on a local system and a remote system
CN111861746A (zh) 一种处理交易数据的方法和装置
CN113760924B (zh) 一种分布式事务的处理方法和装置
CN106034148B (zh) 一种快速信息交互方法、本地服务器、异地服务器及系统
CN111259032A (zh) 一种业务处理方法和装置
US20130304715A1 (en) Systems and methods for providing an automated validity check of transactional data postings
CN113486032A (zh) 日期切换方法、装置、电子设备以及计算机可读介质
CN113111077A (zh) 一致性的控制方法、装置、电子设备、介质和程序产品
CN112950380B (zh) 一种基于区块链的交易一致性的处理方法和装置
CN117437076B (zh) 一种基于对账码的对账方法、装置、设备及介质
CN113656415B (zh) 支付方法、支付装置、支付设备及存储介质
CN115239494A (zh) 支付交易处理方法及装置

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220919

Address after: 25 Financial Street, Xicheng District, Beijing 100033

Applicant after: CHINA CONSTRUCTION BANK Corp.

Address before: 25 Financial Street, Xicheng District, Beijing 100033

Applicant before: CHINA CONSTRUCTION BANK Corp.

Applicant before: Jianxin Financial Science and Technology Co.,Ltd.