一种兼容数币支付的支付系统交易结算单生成方法及系统与流程

文档序号:33152740发布日期:2023-02-03 23:10阅读:58来源:国知局
一种兼容数币支付的支付系统交易结算单生成方法及系统与流程

1.本发明涉及支付系统优化技术领域,尤其涉及一种兼容数币支付的支付系统交易结算单生成方法及系统。


背景技术:

2.支付系统是为提供给方便商户收款方面考虑,为了商户对于提升自己客户的支付体验和方便性。商户需要对接各种支付渠道比如微信,支付宝,网银等电子支付方式。传统电子支付接入方式,是先支付到支付公司,然后支付公司通过支付系统给各合作商户生成结算账单。
3.随着数字人民币的发展,数字人民币支付也成为人们日常的支付方式,为了最大化利用资源,避免产生同类支付数据分离而造成人员需要通过多系统或多功能来统计数据的情况,最好的方法是使数字人民币支付、电子支付在同一个支付系统内并行。
4.由于数字人民币是直接点对点到支付公司合作商户账户中,对于数字人民币类支付,支付公司就无需给合作商户生成结算单,避免造成支付公司给合作商户二次结算的情况。因此,若数字人民币支付、电子支付在同一个支付系统内并行,支付公司对于电子支付的交易需要生成结算单以及手续费计算,对于数字人民币类支付无需进行商城结算单以及手续费计算。
5.目前,为解决以上问题,采用的方法包括:(1)将电子支付订单与数币支付订单交易数据分开储存,结算时只捞取电子支付订单交易数据。(2)将电子支付订单与数币支付订单交易数据存储在一起,结算时根据支付方式去筛选电子支付交易订单生成结算单。
6.现有的方法都需要在支付流程中写入大量的判断语句来处理支付流程中对于数字人民币的特殊处理,并且一旦数字人民币有新的支付方式接入,还需要写入新的大量的判断语句,从而造成代码冗余和程序性能上的衰减;同时,将电子支付订单与数币支付订单交易数据分开储存,在查询和统计时都会造成性能影响。


技术实现要素:

7.针对上述问题,本发明提供了一种兼容数币支付的支付系统交易结算单生成方法及系统,将生成结算流水业务前置,在交易完成后根据支付方式的配置来判断该交易订单是否需要结算,并将需要交易结算单的订单生成相应的结算流水;数币支付的订单无需结算,则不生成结算流水;灵活控制支付流程中节点关键代码是否执行,实现电子支付和数币支付在同一支付系统中并行。
8.为实现上述目的,本发明提供了一种兼容数币支付的支付系统交易结算单生成方法,包括:针对所有支付渠道配置执行结算操作枚举类,所述执行结算操作枚举类中信息包括:收单渠道编号、是否需要结算记账标志、不需要记账的支付方式列表;支付系统中任一支付订单完成后,根据该支付订单流水中的收单渠道编号、支付
方式编号到所述执行结算操作枚举类中获取对应的所述是否需要结算记账标志信息及不需要记账的支付方式列表;根据所述是否需要结算记账标志信息及该支付订单的支付方式编号是否包含在所述不需要记账的支付方式列表中,将支付订单流水分为需生成结算单和无需生成结算单;根据支付系统与商户约定的结算时间,捞取该商户名下需生成结算单的所述支付订单流水,生成结算单。
9.作为本发明的进一步改进,若所述是否需要结算记账标志为不需要记账,且所述不需要记账的支付方式列表中包含该支付订单流水的支付方式编号,则该支付订单流水无需生成结算单;否则,该支付订单流水需生成结算单。
10.作为本发明的进一步改进,所述支付订单流水中设有结算状态项;根据支付系统与商户约定的结算时间,捞取需生成结算单的所述支付订单流水时,仅获取所述结算状态项为未结算的所述支付订单流水,生成结算单。
11.作为本发明的进一步改进,所述支付订单流水生成结算单后,将所述结算状态项由未结算修改为已结算,并将对应结算单的编号更新到所述支付订单流水中。
12.作为本发明的进一步改进,将支付订单流水分为需生成结算单和无需生成结算单;包括:在生成结算单节点前插入结算记账标志判断代码,根据该支付订单流水中的收单渠道编号和支付方式编号到所述执行结算操作枚举类中获取所述是否需要结算记账标志信息和不需要记账的支付方式列表;若所述是否需要结算记账标志信息为无需生成结算单,且所述不需要记账的支付方式列表中包含该支付订单流水的支付方式编号,则不执行所述生成结算单节点的代码。
13.本发明还提供了一种兼容数币支付的支付系统交易结算单生成系统,包括:枚举类配置模块、订单结算记账标志获取模块、支付订单流水分类处理模块、结算单生成模块;所述枚举类配置模块,用于:针对所有支付渠道配置执行结算操作枚举类,所述执行结算操作枚举类中信息包括:收单渠道编号、是否需要结算记账标志、不需要记账的支付方式列表;所述订单结算记账标志获取模块,用于:支付系统中任一支付订单完成后,根据该支付订单流水中的收单渠道编号、支付方式编号到所述执行结算操作枚举类中获取对应的所述是否需要结算记账标志信息及不需要记账的支付方式列表;所述支付订单流水分类处理模块,用于:根据所述是否需要结算记账标志信息及该支付订单的支付方式编号是否包含在所述不需要记账的支付方式列表中,将支付订单流水分为需生成结算单和无需生成结算单;所述结算单生成模块,用于:根据支付系统与商户约定的结算时间,捞取该商户名下需生成结算单的所述支付订单流水,生成结算单。
14.作为本发明的进一步改进,若所述是否需要结算记账标志为不需要记账,且所述不需要记账的支付方式列表中包含该支付订单流水的支付方式编号,则该支付订单流水无需生成结算单;否则,该支付订单流水需生成结算单。
15.作为本发明的进一步改进,所述支付订单流水中设有结算状态项;根据支付系统与商户约定的结算时间,捞取需生成结算单的所述支付订单流水时,仅获取所述结算状态项为未结算的所述支付订单流水,生成结算单。
16.作为本发明的进一步改进,所述支付订单流水生成结算单后,将所述结算状态项由未结算修改为已结算,并将对应结算单的编号更新到所述支付订单流水中。
17.作为本发明的进一步改进,将支付订单流水分为需生成结算单和无需生成结算单;包括:在生成结算单节点前插入结算记账标志判断代码,根据该支付订单流水中的收单渠道编号和支付方式编号到所述执行结算操作枚举类中获取所述是否需要结算记账标志信息和不需要记账的支付方式列表;若所述是否需要结算记账标志信息为无需生成结算单,且所述不需要记账的支付方式列表中包含该支付订单流水的支付方式编号,则不执行所述生成结算单节点的代码。
18.与现有技术相比,本发明的有益效果为:本发明通过配置包含所有收单渠道的枚举类,同时将生成结算流水业务前置,在支付交易完成后就可根据收单渠道和支付方式通过枚举类来判断该交易订单是否需要结算,并将需要交易结算单的订单生成相应的结算流水;数币支付的订单无需结算,则不生成结算流水,实现电子支付和数币支付在同一支付系统中并行。
19.本发明通过在枚举类中设置不需要记账的支付方式列表,实现了各收单渠道不同支付方式的不同结算单生成需求,除配置各渠道数币支付不需要记账外,也可根据需要配置其他支付方式不需要记账。
20.本发明在数字人民币增加新的支付方式或者其他支付形式时,可通过修改枚举类中不需要记账的支付方式列表的方式定制化新的方案,便于后续的升级改进。
21.本发明通过在生成结算单节点前插入结算记账标志判断代码,实现了灵活控制支付流程中生成结算单节点代码是否执行,该方法同样可应用于支付流程中其他节点的控制。
附图说明
22.图1为本发明一种实施例公开的兼容数币支付的支付系统交易结算单生成方法流程图;图2为本发明一种实施例公开的兼容数币支付的支付系统交易结算单生成系统示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.下面结合附图对本发明做进一步的详细描述:如图1所示,本发明提供的一种兼容数币支付的支付系统交易结算单生成方法,将生成结算流水业务前置,在支付订单完成后根据结算流水中的支付渠道和支付方式判断是否需要生成结算单,包括:s1、针对所有支付渠道配置执行结算操作枚举类,执行结算操作枚举类中信息包括:收单渠道编号、是否需要结算记账标志、不需要记账的支付方式列表;其中,执行结算操作枚举类capitalchannelenum具体包括:(1)收单渠道编号(2)收单渠道名称(3)是否需要结算记账标志:true-需要记账、false-不需要记账(4)资金监管渠道编号(5)资金监管渠道名称(6)不需要记账的支付方式列表s2、支付系统中任一支付订单完成后,根据该支付订单流水中的收单渠道编号(如:101-银联商务渠道)、支付方式编号(如:b2c网关-02,数字人民币扫码付-5)到执行结算操作枚举类中获取对应的是否需要结算记账标志信息及不需要记账的支付方式列表;其中,在生成结算单节点前插入结算记账标志判断代码;根据该支付订单流水中的收单渠道编号和支付方式编号到执行结算操作枚举类中获取是否需要结算记账标志信息和不需要记账的支付方式列表;具体的,根据结算记账标志判断代码可获取到该收单渠道编号下的所有信息,包括:(1)收单渠道编号;(2)收单渠道名称;(3)是否需要结算记账标志;(4)资金监管渠道编号;(5)资金监管渠道名称;(6)不需要记账的支付方式列表;s3、根据是否需要结算记账标志信息及该支付订单的支付方式编号是否包含在不需要记账的支付方式列表中,将支付订单流水分为需生成结算单和无需生成结算单;其中,若是否需要结算记账标志为不需要记账,且不需要记账的支付方式列表中包含该支付订单流水的支付方式编号,则该支付订单流水无需生成结算单,不执行生成结算单节点的代码;否则,该支付订单流水需生成结算单。
25.s4、根据支付系统与商户约定的结算时间,捞取该商户名下需生成结算单的支付订单流水,生成结算单。
26.其中,支付订单流水中设有结算状态项;根据支付系统与商户约定的结算时间,捞取需生成结算单的支付订单流水时,仅
获取结算状态项为未结算的支付订单流水,生成结算单。
27.s5、支付订单流水生成结算单后,将支付订单流水中的结算状态项由未结算修改为已结算。
28.如图2所示,本发明还提供了一种兼容数币支付的支付系统交易结算单生成系统,包括:枚举类配置模块、订单结算记账标志获取模块、支付订单流水分类处理模块、结算单生成模块;枚举类配置模块,用于:针对所有支付渠道配置执行结算操作枚举类,执行结算操作枚举类中信息包括:收单渠道编号、是否需要结算记账标志、不需要记账的支付方式列表;其中,执行结算操作枚举类capitalchannelenum具体包括:(1)收单渠道编号;(2)收单渠道名称;(3)是否需要结算记账标志:true-需要记账、false-不需要记账;(4)资金监管渠道编号;(5)资金监管渠道名称;(6)不需要记账的支付方式列表。
29.订单结算记账标志获取模块,用于:支付系统中任一支付订单完成后,根据该支付订单流水中的收单渠道编号(如:101-银联商务渠道)、支付方式编号(如:b2c网关-02,数字人民币扫码付-5)到执行结算操作枚举类中获取对应的是否需要结算记账标志信息及不需要记账的支付方式列表;其中,在生成结算单节点前插入结算记账标志判断代码;根据该支付订单流水中的收单渠道编号和支付方式编号到执行结算操作枚举类中获取是否需要结算记账标志信息和不需要记账的支付方式列表;具体的,根据结算记账标志判断代码可获取到该收单渠道编号下的所有信息,包括:(1)收单渠道编号;(2)收单渠道名称;(3)是否需要结算记账标志;(4)资金监管渠道编号;(5)资金监管渠道名称;(6)不需要记账的支付方式列表。
30.支付订单流水分类处理模块,用于:根据是否需要结算记账标志信息及该支付订单的支付方式编号是否包含在不需要记账的支付方式列表中,将支付订单流水分为需生成结算单和无需生成结算单;其中,若是否需要结算记账标志为不需要记账,且不需要记账的支付方式列表中包含该支付订单流水的支付方式编号,则该支付订单流水无需生成结算单,不执行生成结算单节点的代码;否则,该支付订单流水需生成结算单。
31.结算单生成模块,用于:根据支付系统与商户约定的结算时间,捞取该商户名下需生成结算单的支付订单流水,生成结算单。
32.其中,支付订单流水中设有结算状态项;根据支付系统与商户约定的结算时间,捞取需生成结算单的支付订单流水时,仅获取结算状态项为未结算的支付订单流水,生成结算单。
33.进一步的,支付订单流水生成结算单后,将结算状态项由未结算修改为已结算,并将对应结算单的编号更新到支付订单流水中。
34.实施例:如商户a签约时约定资金结算规则为t+1,当天电子支付交易成功1000万共计1000笔和数字人民币交易成600万共计600笔,t+1需结算至商户1000万。此时支付平台根据本发明的方法,将每笔成功的交易数据(支付订单流水)区分为需生成结算单和不需要生成结算单,包括:支付系统在生成结算单节点前插入结算记账标志判断代码,代码如下:@transactional(rollbackfor =exception.class)public void cleardeal(cleardealbo cleardealbo){if(strutil.isnotblank(cleardealbo.getchannelno())) {/*
‑‑‑
start:根据渠道编号和支付方式获取映射的资金监管渠道信息及是否记账标志
‑‑‑
*/1og.info("根据渠道编号:{}支付方式,{}",cleardealbo.getchannelno(),cleardealbo.getpaytype());capitalchanneinfo capitachlinfo = capitalchannelenum.getbychannelno(cleardealbo.getchannelno(),cleardealbo.getpaytype());log.info"获取是否记账标志:{},资金渠道编号:{}" capitalechlinfo.isaccoontflag(),capitalchlinfo.getcapitalchnnelno()),if (!capitalchlinfo.isaccountflag()){log.warn("获取是否记账标志为:不记账,不往下执行清分记账,直接返回");return;得到需生成结算单的支付订单流水,执行生成结算单节点的代码,先得到结算流水表,如表1所示:表1
然后,在t+1天为此商户a进行资金结算时,支付系统根据前一天商户a的结算流水表生成结算单。
35.生成结算单及生成结算单后将订单流水表中所述结算状态项由未结算修改为已结算,并将对应结算单的编号更新到所述支付订单流水中,生成结算单的代码如下:public void settleordercreateremark(settleordercreatebo createbo,string settorderno, settlebankaccdto settlebankaccdto ){settlemerinfodto merinfodto= createbo.getsettlemerinfodto();/*
‑‑‑
start:生成结算单
‑‑‑
*/settleorderinf settorder = settleorderinf.builder().settleordno
settflowlambdaquerywrapper);/*
‑‑‑
end:更新结算流水列表的结算单号,更新结算流水状态:结算中
‑‑‑
*/。
37.本发明的优点:本发明通过配置包含所有收单渠道的枚举类,同时将生成结算流水业务前置,在支付交易完成后就可根据收单渠道和支付方式通过枚举类来判断该交易订单是否需要结算,并将需要交易结算单的订单生成相应的结算流水;数币支付的订单无需结算,则不生成结算流水,实现电子支付和数币支付在同一支付系统中并行。
38.本发明通过在枚举类中设置不需要记账的支付方式列表,实现了各收单渠道不同支付方式的不同结算单生成需求,除配置各渠道数币支付不需要记账外,也可根据需要配置其他支付方式不需要记账。
39.本发明在数字人民币增加新的支付方式或者其他支付形式时,可通过修改枚举类中不需要记账的支付方式列表的方式定制化新的方案,便于后续的升级改进。
40.本发明通过在生成结算单节点前插入结算记账标志判断代码,实现了灵活控制支付流程中生成结算单节点代码是否执行,该方法同样可应用于支付流程中其他节点的控制。
41.本发明与现有技术相比,根据支付订单流水将订单分为需生成结算单和不需要生成结算单两类,在统计结算支付订单流水并生成结算单时不需要再遍历交易订单数据。
42.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1