详解:支付路由设计
编辑导语:路由器我们一定都不陌生,那么你了解什么是路由器吗?本篇文章中,作者从路由器的上下游关系、核心系统架构、分组规则、筛选规则、算法模型、管理后台等方面为我们做了详细地分析。
路由器,一个神秘的系统,一套伟大的算法;太神秘,以至于这个世界只剩他的传说,太伟大,因为我们知道他总能为你挑选出最好的;他就是史上最强“通道挑选官”—— 路由器 !
可大可小,可弱可强;可有可无,对他就是这么随性潇洒;今天我们就聊聊路由算法模型,以及与他关系最亲密的2个小伙伴!
一、什么是路由器?
1. 路由是什么
基于支付通道的属性特点和业务系统的要求,为支付交易筛选出符合业务要求的最优的通道;简单的说就是业务系统要收款,你路由器帮我选一条最好的通道吧!这就是路由的职能,为通道选择做决策。
例如:我们去大兴机场,怎么去呢?问问同事吧;同事告诉你,如果省钱就做地铁转公交,但是比较耗时,而且折腾;如果图省事和快就打车,直接就到,就是贵一点;选哪条呢?这个过程中你的同事就是个路由器,给你多个选择。
如果你增加条件,比如“选择一个既便宜又不折腾的”,那你的同事可能告诉你“哪就用花小猪,优惠大,打车一样的体验,却是做公交的价格”;那么既便宜又不折腾就是你对交通方式的要求;你的同事就会基于这些要求为你综合反馈一条道路。
2. 路由作用
刚才说了,为了选择一条最优的通道,那么作用其实就是:
- 降低成本:越便宜越好;
- 提高用户体验:用户支付的越爽越好;
- 确保有可用通道:这个不行换那个,确保能完成支付。
3. 路由按服务特点分类
- 咨询型路由:你问他,他告诉你一条通道;
- 服务型路由:你问他,他为你选择一条通道,并调用通道完成支付,告诉你支付结果。
4. 路由按业务类型分
- 鉴权路由:为绑卡鉴权选择鉴权通道;
- 支付路由:为支付交易选择一条支付通道;
- 聚合路由:为聚合支付业务选择一条支付通道。
5. 路由核心竞争力
路由的评价指标有以下几个方面:
二、路由器的上下游关系
路由作为最强通道挑选官,那么他与上下游什么关系呢,我们分三层来看:
1. 业务架构简图
业务系统请求路由进行支付或者鉴权,路由选择出了最优的通道;封装好支付请求参数请求订单系统初始化支付订单,订单系统请求通道完成支付,并返回支付结果(具体的位置和流程我觉得每家公司不一样,因公司而异,因人而异,你让路由直接调通道也可以,核心目的就是确保支付能够成功,至于系统职能划分,这个不做过多探讨)。
2. 核心系统介绍
- 业务系统:路由的上游系统,向路由发起支付请求,比如收银台等;
- 订单系统:路由下游系统,为路由提供支付类接口,并向下请求通道完成支付或者鉴权;
- 通道:银行通道管理,管理各条通道以及通道属性等,为上游包装支付或者鉴权类接口,最后请求通道提供方完成支付或者鉴权;
- 其他系统:路由在筛选通道时有些参数上游系统并不会传,需要路由自己去查,比如通道属性,商户白名单等。
三、路由器核心系统架构
从系统功能层面我们来看一个常见的路由系统架构图以及在支付架构中的上下游位置:
四、通道属性介绍
1. 什么是通道属性
在介绍路由器规则设计之前,我们先了解下通道属性;如果把通道类比成一个人,那么通道的属性就像人的属性一样,有基本信息、学历信息、婚姻信息、工作信息等。
那么对于通道来说,他的属性更多是哪个银行的,支付通道还是打款通道,可不可用,需不需要商家报备等等。
2. 通道属性的作用
通道属性的一个关键用途就是路由选择的依据,路由的规则配置其实就是根据通道属性去配置的,什么属性的通道能用,什么类型的通道属性不能用。
3. 通道属性举例
- 通道编码:gh-kj-001
- 通道名称:工行快捷支付
- 通道类型:快捷,网银,打款
- 通道状态:开启,关闭
- 所属银行:工商银行
- 卡种:借记卡
- 其他
- ……
五、路由器规则介绍
路由器最核心的是规则以及筛选模型;什么是路由器规则;路由规则就是支付请求来了筛选通道的条件;比如那个银行的,什么卡等,路由器规则主要分两类:
1. 分组规则
为了提升筛选效率,我们先对通道按照组合规则进行分组,分组规则需要的参数是上游请求方必填的、离散的,比如按照以下属性进行分组:
- 交易类型:支付、鉴权、打款
- 账户类型:个人、对公
- 卡种:借记卡、贷记卡
- 银行:工商银行、招商银行、北京银行等
2. 筛选规则
经过通道的分组筛选,最后确定了一个通道列表,然后再通过筛选规则筛选出需要的通道,比如以下筛选规则:
- 状态:开启
- 成本最低优先:选择成本最低的
- 商家通道方报备:商家需要在银行进行报备
六、路由器分组规则
通过组合规则和筛选规则的配置,我们就会得到一个通道筛选的规则树:
列如上游系统请求系统时传了:支付-个人-借记卡-招行,那么就可以快速定位到一个通道组了:通道A、通道B、通道C。
七、路由器筛选规则
通过分组规则我们得到了一个通道组,如上面我们选出3条通道“通道A,通道B,通道C”,最终我们要选择一条通道,所以还需要进一步做筛选,这时候我们就用到了筛选规则;假如我们设定了3个属性做筛选“状态,商家报备,成本优先”,这3条通道属性如下:
- 假设商家已经在A通道做了报备,所以整个筛选流程模型如下:
我们知道案例中入参应该是3条通道:通道A、通道B、通道C。
- 通过筛选后,因为C关闭了被过滤掉,我们得到了2条通道:通道A、通道B,因为有下一条规则,所以我们继续往下走,报备规则的筛选,这时候流程图如下:
因为商家已经报备了A通道,B通道不需要报备,所以,经过这个筛选,我们依然得到两条通道通道A,通道B,因为有下一条规则,所以我们继续往下走。
- 成本最低优先规则的筛选,这时候流程图如下:
经过这个筛选,在A和B通道对比中,B的成本最低,所以最终我们得到了一条最优的通道:通道B。
八、路由器算法模型
通过上面的说明,我们可以得到一个路由器的算法流程和模型可以抽象成4字模型:流·树·筛·查。
1. 主流程
2. 规则树
3. 通道筛选
4. 参数查询
当上游系统没有传参,但是在通道筛选时需要的参数,路由需要去相关系统进行查询,比如商家白名单要到白名单系统查询等。
九、路由器管理后台
知道了路由的原理,上下游关系,以及算法模型,我们还需要一个配置化后台对规则等进行管理,这里不具体介绍;按照业务需要设计即可。另外,通道管理系统,订单系统后续会有单独的文章介绍,这里不再赘述了。
十、最后
我们知道系统设计和建设要因公司而已,因业务发展而已,上面介绍的是一个完整的成型的路由系统。
但是路由系统是否需要建设也是非必须的,比如普通的商户就接了一个微信和支付宝,开了2个商户号,这个其实就不需要路由系统,业务系统写死要调用哪个通道即可。
对于哪些接了几十条通道,每一类通道又开设了多条时,比如微信开了10个商户号,分别为各业务线收款,那么就需要按照业务类型进行路由选择微信通道了。
作者:陈晓光,一个会弹吉他会算命的产品经理老司机,微信公众号:陈天宇宙
本文由 @陈天宇宙 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
那里有通道管理系统
醍醐灌顶!
人人都是产品经理这个app(网站)交互做的好差。我想点赞、收藏,需要下滑到最底下才行= =
小主这里提到的支付和打款的概念和区别能解释一下么
支付就是个人买东西付款,个对公。打款是企业打款给商户,公对公,公对个
楼主确实很厉害,在你这学习不到知识,谢谢
学习到很多知识,打错字了 :)
hhhhh
大佬,微信公众号怎么搜不到?
可否给大概说明一下路由的监控跟状态的自动化管理,应该如何设计?或者有没有文章可参考
请问老哥找到相关文档了吗?后人来了 遇到同样的困境
满满干货