System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及互联网支付,更具体地说,它涉及一种易于扩展的多渠道支付方法、系统、设备及存储介质。
技术介绍
1、随着产业互联网的发展,各行各业相互交融,各产业公司相互协同,不同公司的系统建设各有差异。在此之中,支付能力在各种场景中扮演着越来越重要的角色。
2、不同的产业平台,交易模式不同,政策优惠不同,金融优惠也不相同,无法使用一套统一的支付模式来匹配和满足所有的产业平台支付需求。并且支付场景随着需求的增加,支付的设计和开发没有考虑业务的扩展和多支付渠道的场景,现有的支付系统在需求增加或变更时会遇到很大困难,因为代码的耦合严重,导致支撑这些需求,开发周期将大幅拉长,研发成本将大幅增多,同时也会大幅增加qa回归测试的时间。
3、现有的支付系统代码没有遵循任何特定的结构或模式,每新增一种支付方式都需要完全重新编写代码,这不仅会增加开发工作量,还将导致代码变得冗余、难以理解和维护。
4、企业需要投入大量的资源用于维护现有系统,而非专注于主要业务拓展和创新。这不仅增加运营成本,降低研发效率,还严重制约了业务的发展,同时不支持多渠道支付,将限产业生态的发展和繁荣。
5、综上所述,现有的支付方式实现方法已经无法满足产业平台多渠道支付的需求,成为限制业务发展的瓶颈。为了支持产业互联网的产业多样性、金融与政策的多样性,助力产业平台发展,需要开发易于扩展的多渠道支付方式的支付系统。
技术实现思路
1、本专利技术要解决的技术问题是针对现有技术的上述不足,
2、本专利技术的目的二是提供一种易于扩展的多渠道支付系统。
3、本专利技术的目的三是提供一种计算机设备。
4、本专利技术的目的四是提供一种计算机存储介质。
5、为了实现上述目的一,本专利技术提供一种易于扩展的多渠道支付方法,包括以下步骤:
6、步骤1.设计统一支付接口,用于提供统一的接口规范、sdk;
7、步骤2.统一支付接口,字段包括支付方名称、支付方入驻商户号、支付金额、支付方信息对象、支付方向、支付方对象数组、备注、客户支付订单号、所属行业、支付方式、支付附言、支付定制参数;
8、接入方需要将随机数、时间戳、请求字段值拼凑后,使用国密sm3算法进行一轮hash运算,使用base64编码对hash串格式化,使用接入私钥对base64编码串做国密sm2加密得到最后的签名串,放入http请求头的open-authorizatio字段,将使用的随机数放入http请求头的sign字段,时间戳放入http请求头的timestamp字段;
9、步骤3.支付接口服务取出http请求头里的时间戳,与当前时间对比,判断时间戳是否到期或未生效的非法情况;使用接入方商户公钥对签名串进行sm2解密,然后取出请求头里的随机数、时间戳、请求字段值并拼凑起来得到签名源串;然后将http请求头的open-authorizatio字段使用接入方商户公钥进行sm2解密后再经过base64解码得到签名hash串,然后将计算的签名源串和签名hash做国密sm3验证,验证通过则表示验签通过;
10、步骤4.支付接口服务对参数进行校验;
11、步骤5.支付接口服务完成校验没有问题后,将明文支付参数传递到支付管理服务,支付管理服务做校验通过后,生产该笔支付单号返回;
12、步骤6.支付接口服务将支付单号封装后返回给调用方;
13、步骤7.支付管理服务将参数入库后,根据支付方式及所属行业进行匹配,选择符合的支付策略,调用注册好的支付策略的接口方法;
14、步骤8.支付策略服务中每个支付策略的实现都是独立的,互不影响,支付策略服务统一实现支付发送接口和支付结果回调接口,支付发送根据支付渠道的要求,组装支付报文并提交至支付渠道;
15、步骤9.支付渠道报文发送后,根据渠道返回,异步通知回支付管理服务,支付管理服务再回调调用方支付结果。
16、作为进一步地改进,在步骤1中包括:
17、创建抽象支付环境类,用于定义抽象的支付执行方法,为应对复杂多变的产业支付扩展;
18、创建支付环境类,支付环境类主要通过继承抽象支付环境类实现支付具体方法;
19、创建策略枚举类,策略枚举类用于封装具体的支付策略类,避免具体支付工厂类直接调用具体支付类,具体支付工厂类无需要知道具体的策略类是什么,只要知道通过策略枚举类可以根据反射定位具体策略类即可;
20、创建抽象支付策略类,由于每个具体支付策略类都要实现具体的支付方法,所以通过接口类型形式构建抽象支付策略类,同时由于各支付平台给各产业平台范围的是支付url,所以定义支付接口返回类型为string;
21、创建具体支付策略类,用于为每个不同支付渠道创建一个支付策略类,并实现具体支付方法;
22、创建抽象支付工厂类,用于系统扩展性而设置,抽象方法范围值设置成泛型t,使得创建的抽象角色能够达到最大的扩展性;
23、创建具体支付工厂类,具体支付工厂类继承抽象支付工厂类,并将泛型t设置为paycontext,同时具体支付工厂要根据具体支付类型,借助策略枚举类反射定位具体策略类;
24、创建支付系统门面类,用于创建支付统一门面,提供支付方法,根据产业平台传入的支付类型动态获取支付策略环境,在具体支付策略环境中,根据支付策略可以动态实现了具体支付方法的调用;
25、当需要接入新的支付渠道时,只需要修改策略枚举类和新增具体支付策略类即可实现新的支付渠道接入,可以大幅减少支付渠道接入难度、接入时间成本、测试成本,以及减少了新渠道接入可能对旧支付渠道的业务的影响。
26、进一步地,支付方信息对象的字段包括支付账号、支付账号名称、支付账号编码。
27、进一步地,支付方对象数组的字段包括编号、对象类型、入驻商户号、金额、名称、账号、账号名称、账号编码、统一id、支付附言、备注。
28、进一步地,请求报文体里的关键字段的加密方式为:使用产业平台颁发的公钥进行国密sm2加密,支付接口服务使用产业平台颁发对应的私钥进行国密sm2解密。
29、为了实现上述目的二,本专利技术提供一种易于扩展的多渠道支付系统,包括:
30、支付接口模块,用于计统一支付接口,用于提供统一的接口规范、sdk;
31、统一支付接口,字段包括支付方名称、支付方入驻商户号、支付金额、支付方信息对象、支付方向、支付方对象数组、备注、客户支付订单号、所属行业、支付方式、支付附言、支付定制参数;
32、接入方需要将随机数、时间戳、请求字段值拼凑后,使用国密sm3算法进行一轮hash运算,使用base64编码对hash串格式化,使用接入私钥对base64编码串做国密sm2加密得到最后的签名串,放入http请求头的open-aut本文档来自技高网...
【技术保护点】
1.一种易于扩展的多渠道支付方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种易于扩展的多渠道支付方法,其特征在于,在步骤1中包括:
3.根据权利要求1所述的一种易于扩展的多渠道支付方法,其特征在于,支付方信息对象的字段包括支付账号、支付账号名称、支付账号编码。
4.根据权利要求1所述的一种易于扩展的多渠道支付方法,其特征在于,支付方对象数组的字段包括编号、对象类型、入驻商户号、金额、名称、账号、账号名称、账号编码、统一id、支付附言、备注。
5.根据权利要求1所述的一种易于扩展的多渠道支付方法,其特征在于,请求报文体里的关键字段的加密方式为:使用产业平台颁发的公钥进行国密SM2加密,支付接口服务使用产业平台颁发对应的私钥进行国密SM2解密。
6.一种易于扩展的多渠道支付系统,其特征在于,包括:
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5任意一项所述的一种易于扩展的多渠道支付方法。
8.一种计算机可读
...【技术特征摘要】
1.一种易于扩展的多渠道支付方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种易于扩展的多渠道支付方法,其特征在于,在步骤1中包括:
3.根据权利要求1所述的一种易于扩展的多渠道支付方法,其特征在于,支付方信息对象的字段包括支付账号、支付账号名称、支付账号编码。
4.根据权利要求1所述的一种易于扩展的多渠道支付方法,其特征在于,支付方对象数组的字段包括编号、对象类型、入驻商户号、金额、名称、账号、账号名称、账号编码、统一id、支付附言、备注。
5.根据权利要求1所述的一种易于扩展的多渠道支付方法,其...
【专利技术属性】
技术研发人员:梁丁,周东,顾祖毅,许智城,杨明,罗兰娇,吴小明,吴康杰,韦桃贤,滕涛,蓝予,莫明慧,
申请(专利权)人:中国—东盟信息港股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。