关于支付路由机制,看这篇就够了!

背景

近期在回顾以前工作项目历程的时候,我突然有感于初次做支付路由系统,对于支付路由毫无概念,同时网上资料十分匮乏,也遇到过一系列的坑,甚是十分苦恼。因此我决定将所积累的经验知识分享出来,希望可以帮助新人快速理解。

一、支付路由是什么?

基础概念:

在支付系统中,支付公司通常会给商户提供多种支付方式,而每一种支付方式,对于支付公司而言,都会接入对应的支付渠道;

支付方式

即我们常用的个人网银支付、企业网银支付、微信支付、支付宝支付、快捷支付、无卡支付等。

支付渠道

即支付机构背后会接入多种上游银行渠道,如各地区银联、网联等,在断直连之前还会接入建设银行、农业银行等。也就是说支持一种支付方式,背后有很多的支付渠道

而支付路由,就是根据用户所选择的支付方式(如个人网银支付)之后,支付机构通过提前配置好一系列的“规则引擎”,最后在众多支持的支付渠道后面,万里挑一选出当前最优的一条支付渠道。而这种规则引擎就是一种路由机制。

二、支付路由的价值

作为一家支付机构,其主要是给商户提供稳定、便捷的支付通道服务。因此每一家支付机构往往会接入多家支付渠道,从而避免某个支付渠道出现故障,降低用户支付体验。

那么尤其是“断直连”之前,支付公司背后的支付渠道能力参差不齐,每一家支付渠道支持的服务能力、支持的支付方式,稳定性以及价格成本均会不一样,具体表现如下:

  • 稳定高的支付渠道,渠道价格会很高,同时支持的支付方式也不一定全
  • 价格便宜的支付渠道,要么系统稳定性不足;
  • 价格适中的支付渠道,有些支持的银行少,甚至支持的各个银行互不相同;
  • 稳定性适中,服务态度较好的支付渠道,也有很多支付方式不支持;

基于以上,支付机构就需要全面考虑好去设计一套支付路由系统了,而支付路由的价值也将体现在以下几点:

  1. 保证渠道多样性;提高综合服务能力;提供多银行渠道;
  2. 保证用户体验,在支付渠道出问题时,将用户损伤降低最小,保证对外的用户体验一致性;
  3. 降低渠道成本,间接提高收入;
  4. 方便运营操作,降低人工操作成本,提供运营工作效率

三、支付路由怎么设计的?

那么要解决以上问题,就需要考虑支付路由应该怎么设计了,其实主要分为两个大的层面:① 通用路由层面。即绝大部分路由的规则是怎样的;② 单独模板路由;个别特殊的路由规则。

  • 通用路由层面:即这种路由规则是属于通用的,对所有商家都生效。举例:默认交易金额为1000元以内,则优先选择支付渠道A;
  • 单独模板路由:即某一些商户背后的支付路由与通用的不一样;比如通用的订单交易金额1000元以内,选择支付渠道A,但是对于商户b而言,其优先选择支付渠道为B;

接下来分别解析 通用路由设计 和 单独模板路由 的设计思路

1. 通用路由设计

要做好支付路由的设计,我们需要特别关注路由的两端:商户侧、渠道侧。其中商户侧属于路由的输入端,主要判断能传来哪些有效信息;而渠道侧则是输出端,只要判断最终可筛选的支付渠道有哪些;

那么以亲身打造的网银支付路由为例:

商户侧

支付时间、商户编号、支付金额、支付银行(建设银行、农业银行这种);

卡类型(借记卡、信用卡),支付方式(个人网银/企业网银)

渠道侧

支持银行;支持银行卡类型(只支持纯借记卡、借贷混合都支持);

稳定性(没法在系统配置);渠道成本(单笔、阶梯价)

(1)1. 初步满足符合当前条件的支付渠道:

  • 支持当前支付银行的渠道;
  • 支持当前卡类型的渠道;
  • 订单金额在限额范围以内的渠道;

(2)再根据优先级判断。由于通过以上条件过滤之后,那么所选出的支付渠道均符合要求,那么就需要在已有的数据中进行设定优先级权重:

  • 优先级数字越大,表示权重越大,即 最先判断;
  • 优先级数字一样大,表示权重相同,则 随机选择支付渠道;

通过以上两个条件将筛选出只有一条支付渠道,而这条即为最优支付渠道;

如下示例所示:符合支付请求参数条件的渠道,只有A、C、D,但是最终将选择最优的支付渠道为A,因为通过优先级的判断条件支付渠道A最优;

2. 单独模板路由设计

当然凡是都有意外情况,并不是所有商户都适用于通用路由规则。在实际的运营过程中,我们对某一些商户单独配置特殊的路由规则,因此单独模板的路由规则应运而生。适用的场景:如果符合条件的支付渠道有A,C,D,正常情况下运营会希望优先选择渠道A ,因为该渠道比较便宜;但是针对于商户c,我们希望是以用户体验为主,所以尽管支付渠道C更贵,但还是希望优先选择渠道C而不是A;

对于这种情况,我们可以通过给商户c配置单独模板,模板里面的支付渠道是C即可,这样在整体的判断逻辑将所有调整:

  • 优先判断是否有单独模板路由;
  • 有单独模板则先判断模板里面是否符合条件的渠道,有的话则取优先级最高的一条支付渠道;
  • 单独模板无可用渠道,则判断是否需要进行通用路由;需要的话则走通用路由选择渠道,否则的话提示“无可用的渠道”。

四、延伸思考

1. 产品方案思考

当初做支付路由的时候,缺乏参考性,导致我对最初路由思考的非常复杂,甚至把自动化切换机制考虑进去了;例如当用户请求失败超过X次的时候,则自动关闭该渠道,同时切换其他支付渠道;

从现在来看,不能说以前的想法完全错,但至少没考虑实现成本,至少是不符合ROI的。因此顺便延伸出我对产品方案的思考:一个好的产品方案首先必须是能解决当前问的是,也必须是简单的,最重要的是要符合投入产出比的。

2. 排序功能

近期我梳理电商平台人工置顶商品排序的问题,由于需要支持一次性置顶多个商品以及可调整排序的需求,我一时间竟没有想到好的方案比较苦恼;而通过回顾以前的产品设计,温故而知新,突然发现只需将“优先级”概念运用到置顶排序就可以解决排序冲突的问题。

结语

俗话说,万事开头难,无论我们是新进职场,还是切入新领域,在我们打造第一个项目或者产品的时候都会比较煎熬,总有点不知所措。但只要我们在这个过程中多思考一点、多忍受煎熬一点,同时也要敢于请教,不怕批评,最终“拨开云雾见天日,守得云开见月明”,我们所获得的成长也会是巨大的。

 

作者:JANMING;公众号:产品思考随笔

本文作者 @JANMING 。

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部