在支付系统中,支付路由是重要的组成部分,管理页面和设计方面都应该考虑简单化,只需要满足正常的业务发展即可,避免产生资金损失的可能。
路由从作用上来说,即是根据一系列规则获取目标结果的过程。直白点,就是根据一个一个条件去做匹配,最终匹配到目标结果,这与我们通常做判断,做选择的过程完全一致。
那么我们或者系统为什么要做判断,做选择?
显而易见,是因为可选项多,而且往往不止一个。而对于支付机构,出于以下原因,必定会对接多个网银、快捷、代扣、代付、实名认证渠道:
服务能力方面,保证渠道的多样性,提高交易成功率,增强服务能力,比如,支持更多银行的银行卡,毕竟单个渠道支持的银行是有限的;
风险控制方面,预防渠道方做升级或者其他原因,被停交易,没有渠道可用;
运营方面,差异化渠道配置,增加支付机构自身的收入;
其他……
对接了那么多渠道,路由就有了存在的意义,它的作用有两个:一个是渠道筛选;一个是帮公司省钱(至于路由的稳定性、扩展性、性能等,是路由自身的问题,与产品设计有关,也与应用架构有关,并不是路由存在的价值,这里暂不讨论)。
渠道筛选,是对路由最基本的要求,即筛选出所有符合当前交易要求的渠道,由于存在多个渠道,也就是存在备用渠道,所以可以提高交易成功率;
帮公司省钱,这是在基本要求的基础上,路由存在的最重要的意义,为了达到这个目的,路由模块中需要增加一个计算模块,计算出所有筛选出的符合当前交易要求的渠道的渠道成本,并按照渠道成本从小到大的顺序排列,交易自然就可以先发往渠道成本最低的渠道,降低公司的成本,增加公司的收入。
一、路由的实现
1. 筛选渠道的方式
人工路由:这种方式适合渠道很少的情况,随着渠道增多,这种方式就不适合了;
规则路由:一般可以通过收集到的条件,进行数据库查询的时候,自行匹配出合适的渠道,并完成优劣选择,这是最常用的方式;
基于权重的路由:这种方式比较复杂,且权重的设置需要不断的尝试,也可能针对不同的场景还要有多套权重设置方案,实操起来并不简单。
由于基于权重的路由实操起来很难,所以路由设计一般会将人工路由和规则路由一起使用,规则路由为主,人工路由为辅,进行人工干预,打破规则路由的规则。
2. 筛选渠道的要素
商户侧:商户ID(根据商户的等级、商户行业、商户地域等信息为商户配置渠道之后,在调用路由模块时,只需要上传商户ID即可,如果有共用的渠道可以使用的话,则可能需要上传商户的更多信息);
业务侧:交易时间、交易金额(单笔、汇总、阶梯)、渠道类型、卡类型、交易银行;
渠道侧:费率(单笔、汇总、阶梯)、营销(优惠、折扣、补贴总金额、活动时间)、渠道等级(稳定性、TPS、掉单率、到账时效)、资金头寸(只在付款的交易中需要考虑)。
3. 路由设计
后台服务型系统的设计一般都逃不过三个范围:业务流程、管理页面、接口。
业务流程是后台服务型系统模块的核心,它规定了该系统模块的业务处理逻辑;
管理页面是操作员进行系统模块的管理入口,通常用来进行必要的信息设置,以及查看该模块产生的日志信息;
接口是供其他系统模块请求本系统模块的入口,接收到请求之后,本系统模块即会按照既定的业务流程,进行业务处理,并返回处理结果。
支付路由也属于后台服务型的系统模块,它的业务流程一般分布在来自管理页面的配置和接口的调用当中,不存在自动化的业务处理。
其中,管理页面的功能范围,要有对应上述业务侧和渠道侧信息的渠道入驻管理(包括关停、启用)、以及商户和渠道之间建立关联关系的管理功能;
接口则是在被调用的时候,根据请求参数和筛选出的各渠道的成本排序,完成成本最低的最优渠道选择,并在接口被同一笔订单多次调用的时候,依次返回最优、次优渠道,直到可选渠道全部尝试完毕(如果系统本身进行了尝试渠道次数的限制;比如限制3次,则另当别论;另外对于付款交易,为了防止资金损失,一般不建议在调用一个渠道失败之后,调用另一个渠道)。
个人所见,以上就是路由模块的共性部分,具体到每个公司的方案实施,可能会有按照渠道成功率等信息进行渠道优劣分级的功能,可能会要求有阶梯费率的情况,可能会要求先调用指定渠道再调用渠道成本最低的渠道。
二、路由的使用
我们正常生活中会收款、也会付款,对应在支付系统中,则存在收款和付款的正向和反向交易,那么在这两种情景下,路由在交易的过程中所处的位置相同吗?
如下图,从正反向交易信息流来看,路由在交易过程中所处的位置显然是不同的,唯一的相同点是路由总是在收付款渠道之前且中间没有其他系统模块。
忽略收付款渠道和清结算,可以看到正向交易信息流是:订单系统→风控→支付路由→记账;反向交易信息流是:订单系统→风控→记账→支付路由。
明显的差别就是支付路由和记账的位置发生了变化。
正向交易信息流中,支付路由之所以在记账之前,是因为我们(支付公司)不可能还没有收到钱,就先记下收了钱,要是突然被找了个借口,又被拖着;
收不到钱呢?白白记了账,记得划掉还是好的,要是忘了划掉,可能就真以为已经收了钱。
这就是为什么正向交易中,支付路由要在记账之前的原因。
反向交易信息流中,记账在支付路由之前,这就相当于角色互换,我们先记下还了钱,下一步还钱成功,皆大欢喜,没还成功,我们也不亏,大不了再还一次。
假如和正向交易一样,支付路由在记账之前,可能的结果会是我们还了钱,但是没有记账,下次还要再还一次,这就造成了亏损,不论对个人,还是对公司来说,亏损都是很难接受的。
三、总结
支付路由作为支付系统的重要模块,对配置人员的要求会稍高一些,管理页面的设计应该尽可能的考虑使操作简单化;路由的设计也没有必要追求复杂,满足公司的业务发展即可,应着重关注路由的稳定性和性能;路由的设计和使用一定要避免产生资金损失的可能。