一、支付渠道需求
1.1、降低成本
1.2、灵活配置
1.3、快速发布
1.4、支付稳定
1)应急切换:当某支付渠道异常时,系统自动切换至备用通道。
二、支付渠道方案介绍
2.1、为什么要支付路由
2.2、支付渠道的核心流程
2.2.1、订单数据串联
从整个场景来看,从用户下单到最终完成支付的链路是比较长的,因此为了保障数据全流程的连接,将支付订单分为了“交易订单”和“渠道订单”两部分。
2.2.2、渠道服务调度
2.2.3、支付路由筛选
接收支付请求后首先就是要找条最优的通道来进行支付,这里就需要进行支付路由。路由一般分为自动路由和手工路由两种模式;
2.2.4、资金渠道管理
2.2.5、渠道接口适配
筛选到资金渠道后,需调用银行接口完成支付。此过程涉及“接口转换、文件处理、加解密和网络安全”等个性化处理。为实现标准化,需进行“标准接口定义”和“渠道个性适配”两项工作:
1)标准接口定义:
定义了不同支付产品的标准交互接口,消除渠道间的差异,使支付系统能按统一规范访问各渠道,减少因新增渠道而频繁修改重复开发。
需人工开发,针对各银行的接口和安全机制,转换为渠道可识别的标准接口和字段信息,以平衡个性化需求和人力投入的矛盾。
2.2.6、结果回调通知
回调和异步通讯: 回调是以一种异步通讯的实现手段,简单来说他就像微信聊天一样,你给对方发送消息,对方并不需要立刻回答你。等他忙完了之后再把处理结果告诉你。
2.3、支持的支付产品和特性
三、渠道路由方案
3.1、渠道特征拆解:
3.1.1、特性分析
从上图拆解出来的支付渠道特性种类非常多,这么多特性怎么去管理它并且做到自动路由是一个非常大的挑战。因此我们把它们拆分为了三级特性;
1)一级:基础特性
通用特性就是每条渠道必须要有的特性,并且特性也是直接可以通过标准化的路由计算方式筛选出来的。这部分稳定的特性我们可以用可视化的配置来把他们固定下来,做出基础功能。
2)二级:扩展特性
扩展特性并不是每条渠道都具备的,这是因为接入渠道、使用商户的场景差异造成的一些个性化特性。这类特性是随着业务增长而不断在增加的。这部分特性我们设计上就要保持其灵活的扩展(例如使用定制化程序,使用脚本语言来处理)。
3)三级:技术特性
3.1.2、渠道名词解释
渠道特性拆解有些名词,我这里做个介绍,避免出现理解不一致。
1)支付方式:
严格的说应该叫“渠道支付方式”,是渠道对接的支付产品。通过支付方式可以把快速同类型的渠道检索出来;
2)目标机构:
是一个渠道和支付产品支持的银行分组;可能会有点奇怪直接写银行不就行了吗?这主要是为了使用和检索的时候方便;如果两条渠道支持的银行一致,那就可以直接复用过来了。
3)银行:一家银行总行的中英文简称。
4)分支银行:主要用于付款产品在需要选择开户银行时提供给用户选择,以免填错信息。
5)支付模式:参数值是B2C、B2B、C2C、C2B等;因为个人和企业输入参数的差异很大,因此该参数是为了判断使用哪条渠道的支付产品。
6)服务质量(QoS):
3.2、路由筛选原理
3.2.1、路由因子分类
3.2.2、多级渠道路由
1)一级:筛选基础信息:
- 路由策略:对“支付方式、终端类型、卡类型、支持银行、是否可用、成本权重”等渠道固定值参数进行表层筛选。
- 路由控制:获得一级渠道信息,这些信息获得后会按照“成本优先级”做个排序。
- 实现方式:由于这部分比较基础的渠道信息筛选,实现上可以通过可视化的方式配置出来的;
2)二级:筛选扩展特性:
- 路由策略:有了一级渠道信息后,其实这时候渠道未必可以马上使用,例如渠道是否在维护期,渠道交易限额是否满足,渠道是否要商户进件才能使用,这些扩展特性还没有校验过,因此需要做进一步筛选还排序。
- 路由控制:筛选出来的结果,会重新按照“成本+特性”进行排序,到这一级筛选之后就是可以直接使用渠道了。当然如果有更加深层次的特性需要筛选还能继续扩展特性进行多次路由处理。
- 实现方式:由于这部分规则比较复杂,且数据量比较多。实现上一般通过定制开发或者编写路由脚本的方式进行处理。
- 路由策略:如果此时还有多条渠道可供选择,就需要对当前运行的渠道质量进行筛选,找一条最好快的通道完成支付。
- 路由控制:此时就会筛选这些渠道的“延迟率、链接数和异常率”等情况。最后找到一条最优的通道完成支付。
-
实现方式:这类路由因子一般也是通过网关策略或者定制开发的方式实现的。
3.2.3、选中渠道执行
3.3、路由因子参数说明
四、渠道设计方案
4.1、渠道业务架构
1)资金渠道管理:
这是渠道模块的核心系统,他放在了支付系统的内网,与外网隔离保证其可以安全的使用而不被攻击;其内部又分为了“渠道服务、路由管理、资金渠道、定时任务、基础服务”五个重要的渠道核心功能。
这部分是渠道外部的适配器,用来对接各家银行的支付渠道,他分为了“渠道接口、渠道适配”,新增一条支付渠道就要在这里进行配置和开发。
通过资金渠道网关,屏蔽不同渠道的差异,给上层渠道服务提供统一的访问处理。这类部分模块是安放在网络隔离区,通过防火墙完成内外部网络的访问。
4.1.1、资金渠道管理
这是渠道对外提供的标准服务,上层支付平台要按照标准接口来访问渠道,同时渠道服务也是下游流程的调度者。这里的渠道服务支持“鉴权、预路由、入款、收款”等支付核心功能。
渠道路由会接收支付服务的请求,将支付请求的“订单信息”解析成“路由因子”,按照对应的规则模版进行多级路由,最终选中一条资金渠道进行调用。
这里存放着接入的每条渠道的所有配置信息,渠道相关的重要信息都存放再此。路由结果也是通过调用这里的渠道接口完成最终的支付。
这是资金渠道的一个辅助功能,对于需要定时进行的支付结果查询,对账文件、批量任务等进行处理。
4.1.2、资金渠道网关
1)渠道接口:定义标准的渠道访问接口,他屏蔽了不同渠道差异性,让上层的渠道管理可以用统一的方式来管理渠道。
2)渠道适配:就是对不同银行的渠道进行接口转换、安全加密处理、网络处理等各种渠道差异性进行二次开发。因此新增一条通道,只要在这里做渠道的接入开发就可以了。
4.2、渠道用例模型
4.2.1、渠道服务:
4.2.2、渠道路由:
1)路由访问:
- 动态访问:一种是提供路由因子由路由系统动态路由一条支付渠道完成支付。
- 直接访问:对于像快捷支付需要访问签约通道的支付产品,可以直接传送签约的“资金渠道编号”访问对应的签约渠道。如果由多条签约渠道则按照“成本和Qos”找到一条最便宜、最快的通道完成支付。
4.2.3、渠道管理:
4.2.4、渠道网关:
4.3、渠道数据模型
4.3.1、渠道管理:
4.3.3.1、渠道配置:
1)创建资金渠道:
新接入的支付渠道需要配置相应的“资金渠道”,这包括渠道的基础特性信息,确保渠道能正确识别和处理支付请求。
资金渠道创建后,需要与目标机构进行关联。目标机构代表了一组特定的开户银行信息,与支付产品相对应,确保支付流程中的银行信息准确无误。
4.3.3.2、渠道接口配置:
4.3.3.3、渠道路由配置:
4.3.2、联机交易:
渠道配置发布后,联机交易就可以调用渠道了。
1)请求处理:首先上层支付系统会按照接口标准向渠道服务传送“渠道支付订单”信息。
4.3.3、运营管理:
五、资金渠道交互设计
5.1、整体交互流程
以资金渠道为核心页面,完成基础信息配置后,对扩展的关联信息进行配置,最后完成接口配置。
2)支付路由管理:
支付路由管理通过一套可视化的配置模版的界面,可以轻松的配置各类路由规则。这些路由配置界面可以按照业务类型的不同分为不同的模版,例如“快捷路由配置”、“扫码路由配置”、“付款路由配置”等。
5.2、渠道功能清单
1)基础参数:提前需要配置好存放在系统内的基础信息。
2)资金渠道:渠道管理和路由所需要的功能。
3)渠道运营:提供给商户侧运营使用与渠道相关的功能。
5.3、新增资金渠道
5.3.1、填写资金渠道信息
5.3.2、新建目标机构:
5.3.3、资金渠道接口
5.3.4、渠道限额
5.3.5、渠道维护期
5.3.6、商户黑白名单
1)白名单:
2)黑名单:
5.4、设置渠道路由
5.4.1、渠道路由管理
5.4.2、路由规则设置
需要说明的是并不是所有规则都能可视化配置的。路由规则配置主要处理的是一级路由中固定取值的“基础因子”的配置,动态计算的扩展因子和质量因子的处理需要定制化开发。
当然也可以提供脚本编写功能给配置人员使用,不过这需要有编程经验才行。
- 基础因子:这类规则都有固定的枚举值,因此基础规则可以用可视化的方式来设置对应的条件,多条规则通过后置逻辑关系来实现链接。
- 扩展因子:“维护期、渠道限额、渠道质量”等扩展特性并非固定取值,需根据实际订单与渠道配置信息动态计算。因此,需开发定制化程序以处理,无需在单条渠道上分别设定路由规则。
-
临时新增:如果有些临时新增的规则可以通过编写嵌入脚本来快速实现。
5.4.3、路由的多组规则
六、支付渠道总结
1)渠道的需求:降低成本、灵活配置、快速发布、支付稳定四方面。
2)支付渠道组成:
支付渠道是一个独立的模块,包含了渠道服务、渠道路由、渠道任务和渠道网关四部分。
3)支付路由原理
支付路由是将渠道特性拆分成路由因子,通过规则化的模版来实现动态路由。
4)渠道三级路由:
渠道路由最经典的模式就是三级路由,一级路由筛选渠道基础信息,二级路由筛选渠道扩展信息,三级路由筛选渠道质量因子。每一集路由按照成本、特性权重、质量权重进行排序,最终选中一条渠道。
5)资金渠道管理:
是一个星型结构,核心存放渠道基础信息的“资金渠道”,围绕资金渠道的是“目标机构、结算信息、维护期、渠道限额、商户名单”等扩展信息。这样的结构可以实现渠道特性的扩展。
6)支付路由管理:
是一个链式结构,每个阶段采用了“输入,计算,输出”的处理步骤,通过前提配置好的路由规则根据输入的数据计算一个结果。结果可以作为下一个接点的输入,循环多次,最终选中通道。
7)路由规则交互
路由规则的配置有可视化、脚本、内部程序三部分来实现。对于固定值信息可以采用可视化配置,如果需要动态计算或者临时新增的规则,可以用编辑脚本的方式实现路由。
本篇文章来源于微信公众号: 刚哥白话
关于下载
本站分享的产品前端、B端竞品和所有付费资源,均不是该资源的价格,本身资源是不用付费的,这是赞助知识库资源模板的收集整理、服务器维护的基础开销费用!免责声明
1、本站分享的产品前端、B端竞品和产品知识库主要来源于网络的公开信息,均为网络搜索,微信缓存,免费下载,互联网平台整理而来,产品知识库的资料文档仅限用于学习交流。如若有侵权你的知识版权的嫌疑,请及时告知我们,我们会在24小时内进行删除。联系管理员:2841552294@qq.com2、上述资源和模板的知识产权及相关权利归作者及制作公司所有。
3、上述资源和模板仅供学习参考及技术交流之用,未经源码的知识产权权利人同意,用户不得进行商业使用。
4、上述资源和模板如需商业使用,请自行联系源码知识产权权利人进行授权,否则,我们将积极配合作品知识产权权利人 一起维权。
5、上述资源和模板如有侵犯您的知识产权,请您立刻联系我们,我们会在24小时内做删除下架处理。