路由系统,即智能选择最优‘‘线路’’,对于支付结算系统而言,就是要智能选择入款、出款渠道,那如何体现其智能呢?我们先看几个例子:

例子1: 现有2个渠道,渠道A的收费规则是1‰,渠道B的收费规则是2元1笔。毫无疑问,在其他条件相同的情况下,我们更愿意使用更便宜的渠道,而手续费到底哪家便宜,会根据交易金额有所不同。

路由,就是要实现节约成本!

例子2: 现有2个出款渠道,收费都是2元1笔,渠道A的到账时效一般在30分钟内,渠道B的到账时效一般在2小时内。显然,通常我们会选择到账时效快的。

路由, 就是要提高用户体验!

例子3:现有2个渠道,不管从成本上来说还是从用户体验来说渠道A都占尽优势,可是有个硬伤,此笔交易渠道A走不通, 虽然渠道B成本高点速度慢点,但是毕竟能走通且满足用户的需求,也只好使用渠道B了。

路由,就是要确保渠道可用!

还有还有,如果某个渠道突然瘫痪怎么办,傻傻的等到对方恢复吗?

以上,我们对几个最基本的点进行了考虑,总结下来就是:

我们看下入款(支付) 、出款(提现)渠道常见的几个限制维度:

  • 入款:单笔限额、卡种、银行、当日限额、 当月限额等;
  • 出款:到账时效、金额、发卡行、发起时间、账户类型(对公、对私)等,出款这块的知识可以参考之前的一篇文章《提现业务流程》;

路由系统逻辑图可以参考下图:

相关说明:

  • 按照手续费从低到高对渠道进行排序,对于手续费相同的,则再依据渠道权重进行排序;
  • 按照渠道排序依次对渠道条件进行检查,如果当前渠道有任一条件不满足,则该渠道不满足条件,进行下一渠道条件检查
  • 直到找出满足的渠道,如果所有渠道皆不满足,则不支持本次交易。

以上路由系统逻辑模式比较适合渠道较多,判断规则较复杂的场景,如果是出款路由,且规则相对简单,也可以使用如下模型:

大致逻辑为:

  • 配置N条规则及1条默认渠道
  • 每条规则包含‘‘条件’’和‘‘渠道’’2个组成部分,条件由若干个条件维度组成条件集合
  • 当满足此条件时使用该渠道,如此规则不满足则进入下一规则判断直到找到符合的规则
  • 如果所有规则都不满足,则使用默认渠道

为了便于理解,给大家举个例子

银行A:所有出款都免费,但是到账周期偏长;

银行B:行内转账免费,实时到账,跨行转账收费;

银行C:所有业务均收费,但是5万以下实时到账,5万以上到账周期也较长

根据以上条件我们设计方案为,如收款银行为B时,则使用银行B进行出款;如收款银行不为B&金额为5万内&到账时效要求高时使用银行C出款;除以上规则外,其他所有情况使用银行A出款。

其他说明:

以上讨论的仅是简单路由系统模式,仍有许多细节没有说明,挑几个需要注意的点介绍给大家

  • 每个渠道能配置是否可用,当第三方渠道出现异常时可以进行切换
  • 每条规则支持配置生效时间、失效时间,不需要进行蹲守进行变更操作
  • 规则调整支持热插拨,而不是写死在代码里面,不需要重启应用

路由系统,对于出款来说有路由系统就够了,一般不涉及产品层面的改动;但是对于入款而言,则最好有产品层面的相应调整。

入款产品层面的设计将在后期给出,本篇先做铺垫,大家也可以先行思考下。

支付系统路由系统设计相关推荐

  1. 支付设计白皮书:支付系统的路由系统设计

    路由从作用上来说,即是根据一系列规则获取目标结果的过程.直白点,就是根据一个一个条件去做匹配,最终匹配到目标结果,这与我们通常做判断,做选择的过程完全一致. 路由器是史上最强"通道挑选官&q ...

  2. 【支付系统学习笔记】-二支付系统设计(支付路由设计)

    前言:   本文属于学习笔记,首先感谢原作者:凤凰牌老熊,博客链接:http://blog.lixf.cn/ 作者上来回顾了支付流程, 一 设计目标 支付路由在支付系统中的核心作用,除了本职工作路由外 ...

  3. 支付系统设计一:支付系统产品化

    系列文章目录 支付系统设计一:支付系统产品化 --------------------系统框架设计--------------------------- 支付系统设计二:统一开发框架 -------- ...

  4. 支付渠道路由系统进化史

    支付系统一般需要对接多个支付渠道,一是为了保证系统的可靠性,不能因为单一渠道的问题影响整个支付系统.二是为了提高支付能力,不同渠道提供支付能力不同.三是为了降低支付成本. 对接多个支付渠道以后,为了可 ...

  5. 支付系统 — 支付路由

    本文主要介绍下支付中路由系统的主要流程. 支付路由的作用 降低成本:越便宜越好: 提高用户体验:用户支付的越爽越好:越快越好:成功率越高越好. 确保有可用通道:多个选择,确保能完成支付. 初期 在自由 ...

  6. 支付设计白皮书:支付系统的对账系统设计

    对账介绍 看这篇文章的相信大家对支付都有了解,对于对账来说应该不陌生,肯定也明白对账的目的.简单例子,就是你和另外一个人做生意,约定的结款是月结,他每天都从你这里进货,你会记账说我应该收多少钱,他也会 ...

  7. 支付路由系统设计二:核心流程

    技术栈:Java+Groovy+Lua+Springboot+Mysql+Redis+Drools+Velocity+RabbitMQ+Spring Data Jpa 目录 一.背景 二.分析 1.命 ...

  8. 【支付系统学习笔记】-二支付系统设计(支付产品设计)

    本文属于学习笔记,首先感谢原作者:凤凰牌老熊,博客链接:http://blog.lixf.cn/ 支付产品模块是按照支付场景来为业务方提供支付服务.这个模块一般位于支付网关之后,支付渠道之前. 它根据 ...

  9. 支付系统设计白皮书:支付系统的概念与架构

    一.什么是支付系统 自古以来,所有的商业活动都会产生货币的收款与付款行为.在人类漫长的历史长河中,记录收付款行为的方式不断迭代:古代的账房先生通过手工记账,工业社会通过收银机机械记账-- 今天,进入了 ...

最新文章

  1. 使用复合数据类型——PL/SQL表
  2. Mass对象类型介绍
  3. 好用的 Markdown 编辑器 Typora【Window 、Linux 下的安装教程】
  4. javascript动态创建表格:新增、删除行和列
  5. 本地构建和自动化构建_构建自动化面板
  6. JAVA UDP网络编程学习笔记
  7. linux下mono的安装与卸载
  8. 部署gogs_可以更快地查阅 Gogs 文档了!
  9. latex插入图片之后出现大段空白,并且紧随其后的文字如同被覆盖一般不见了
  10. 双系统 android 华硕,华硕发布Duet TD300,首款真正Windows+安卓双系统笔记本
  11. python写入文件不覆盖_Python第7课:不一样的新建文件
  12. 细说JavaScript对象(2):原型对象
  13. java.lang.InternalError: internal error: SHA-1 not available.
  14. 黑马程序员,黑马论坛---云2期,已就业45人,平均薪水6806【8月23日更新】
  15. mysql多表操作常用语法命令
  16. python正则判断邮箱_Python实现正则表达式匹配任意的邮箱方法
  17. 数据库系统---数据挖掘
  18. 跌宕起伏的区块链行业2022年如何发展?10大行业趋势
  19. [MongoDB] 运维相关操作记录
  20. 【java】企业微信机器人消息推送

热门文章

  1. 设置超链接的HTML标签是______,如何对a超链接标签中包含的HTML标签进行样式设置...
  2. 设备租赁系统源码_滑雪场一卡通管理系统,设备租赁更简便
  3. 如何查看oracle版本信息,如何查看oracle版本信息
  4. 使用ado直接连接mysql_使用ADO直接连Mysql ,不经过ODBC
  5. 利用python进行统计及分析第7章,构建电影分类的dummies
  6. priority_queue
  7. python 时间序列分解 stl_jupyter notebook运行时间序列分解STL趋势和季节
  8. 平流式隔油池计算_玻璃钢隔油池
  9. Ubuntu16.04 安装chromedriver
  10. python 正则学习笔记