支付系统的渠道路由架构设计

8ff408bdc476dd0db27f283a45c41e68.jpeg 

图解支付系统的渠道路由设计

  

渠道路由是引导流量路径的关键,其设计至关重要。本文详解渠道路由概念、必要性及形态,并分享一个高效实用的基于规则的渠道路由设计方案。

注:有些公司称渠道为通道,都是一个意思,为方便起见,本文统称为渠道。

1. 一些背景知识

支付公司常将支付方式、渠道咨询及路由混同处理,虽简便但扩展受限。为提高扩展性,我们将以最佳拆分方式深入解析,助力支付体系高效运作。

下面是三者之间的简单关系图:

bfd63bfe8ee9470253a9beff7c6b2409.jpeg

说明:

  1. 支付方式咨询:根据用户的请求,组装可用支付方式列表返回给用户。由收银域提供服务。
  2. 渠道咨询服务,快速响应用户需求,智能组装渠道列表及属性,收银域高效转换支付方式,为用户提供便捷支付选择。全程由渠道网关精准服务,确保流程顺畅无阻。
  3. 渠道路由:当有多个渠道可用时,选择出最优的一个渠道。由渠道网关提供服务。

03a9d4b2fe4e2419397cee7ac1329e18.jpeg

再详细一点,如下:

支付方式咨询,专业服务,为您解答支付难题。无论余额、招行借记卡,还是招行信用卡,我们都提供详尽指导。注意,虚拟商品不支持信用卡哦。选择适合的支付方式,轻松购物,无忧支付。

渠道咨询优化:当招行借记卡因维护无法使用,系统智能识别并设为不可用状态,收银界面的相关支付方式将自动置灰,确保支付流程顺畅无阻。

渠道路由,智能筛选最优支付路径。综合考量支付成功率、成本、用户体验及渠道状态,确保每笔交易都通过最佳渠道完成。

2. 渠道路由核心作用

6bfc5dee22372e582da3d62c8474d57a.jpeg

渠道路由核心在于优选渠道,当多渠道满足业务需求时,综合考虑支付成功率、成本、用户体验及渠道状态,确保选择最优解。

  1. 优化支付成功率至关重要:精准选择支付渠道,显著提升交易成功率,减少用户流失。不同渠道风险偏好各异,同一请求可能在A渠道失败,却在B渠道畅通无阻。
  2. 精算成本,智选渠道!合理规划支付路由,有效降低费用。利用阶梯收费政策,巧妙分流,确保整体成本最优化,为您的支付流程带来更大经济效益。
  3. 优化支付体验,确保快速稳定,能显著提升用户满意度与忠诚度。用户在A渠道支付习惯后,新请求继续选择A渠道,支付成功率显著增高。

举几个渠道路由应用的小场景:

  1. 招行信用卡支付时,平台对接网联与银联,均支持招行卡。为确保支付顺畅,系统将智能选择最优渠道进行交易处理。
  2. 做实名认证,平台对接了多个实名认证通道,通过渠道路由挑选一个认证渠道。

由上面可以看到,除了支付路由外,还可能有信息类渠道路由,比如实名认证类。

退款路径是否存在?当前显示无。银联支付需通过银联退款,特殊渠道如支付宝,因其闭环支付特性,无需额外路由,退款亦在支付宝内进行。

3. 渠道路由的设计原则

渠道路由作为支付系统的核心模块,需要满足以下几个设计原则:

  • 灵活性高:路由规则支持动态调整,既可满足成本优化的业务需求,又能轻松应对成功率优先的场景,全面适应多变的业务需求。
  • 扩展性强是系统设计的关键,需预留空间以应对未来新增支付渠道和决策因子,保持代码的灵活性,确保系统能轻松适应未来发展需求。
  • 高可用性路由系统,即便在高并发或故障情境下,也能稳定运行,即使内部发生错误,亦可迅速提供一条有效通道,确保服务不中断。
  • 性能:在保证准确性的前提下,路由决策需要快速,不能成为支付流程的瓶颈。

4. 业界常见的几种路由形态

根据业务的需要,通常有以下几种路由形态:

  1. 项目初期,为迅速推进并确保支付流程顺畅,我们采用硬编码方式,直接在代码中设定选取首个选项,以适应初期渠道有限的情况。
  2. 基于规则的路由。通过预定义的规则提高灵活性和可扩展性。
  3. 智能路由。利用机器学习和大数据分析,根据历史数据和实时状态,智能地选择最佳渠道。

5. 一种典型的基于规则的渠道路由设计

渠道路由设计常基于规则,即条件匹配则执行相应分流逻辑。例如,支付平台对接网联与银联,招行信用卡全走网联,工行信用卡小额走网联,大额则转至银联,实现精准路由。

5.1. 核心流程设计

a45cd2af07f58cfa8def2fe51307424b.jpeg

说明:

  1. 先进行唯一渠道判断,如果只有一条渠道,直接返回。
  2. 判断规则,如果规则没有命中,那就从可用渠道中随机挑选一条。
  3. 如果命中规则,再根据规则中的分流逻辑进行分流。
  4. 最后返回唯一的一条渠道。

5.2. 分流算法设计

如果一个请求既可以走银联,也可以走网联,还可以走直连,有以下几种情况:

  1. 没有命中任何一条规则,随机选择一条渠道。
  2. 有多条规则可以命中,选择优先级最高的。
  3. 路由规则中,银联、网联各占40%,直连占20%,实现智能分流。若银联服务中断,其流量将按比例自动分配至网联与直连,确保系统稳定。

分流算法通常将各渠道比例转换为0-100的数值并排序,然后根据用户ID、请求单号取模或生成的随机数,确定数值所属区间,从而选定相应的渠道。这种方法能精准匹配渠道,提升营销效率。

8a0fb6d0446e90b18c805d39e6de239f.jpeg

伪代码如下:

根据您的需求,优化后的文案如下:
通过对用户ID、请求单号进行取模运算,或者直接生成一个随机数,我们可以得到一个初始值random。随后,我们遍历分流集合,通过递减random并与集合中每个元素的值进行比较。一旦random减至小于或等于零,即确定命中的分流渠道。这一算法确保了流量分配的公正性和效率。

5.3. 路由规则配置模型

fdb4e75135ab3967122c5c173f25decd.jpeg

说明:

  1. 路由规则决定规则引擎运算是否匹配,核心要素为:ID、类型、表达式、优先级。公司可根据内部需求灵活添加字段。
    1. 规则ID:用于分流配置做关联;
    2. 规则类型:用于区分支付、实名认证等。
    3. 规则表达式:用于规则引擎运算;
    4. 优先级:用于排序,如果有多个规则都符合,以优先级最高的为准;
  2. 分流配置用于规则命中后,如何进行分流。核心字段包括:规则ID、渠道名、分流比例。
    1. 规则ID:用于与路由规则进行关联。
    2. 渠道名:表示要分流去的渠道。
    3. 分流比例:说明有多少流量要分过去。
  3. 决策因子定义用于决策的条件。比如卡BIN,卡品牌,金额等。

5.4. 规则引擎选择

业务规则引擎多样,如Drools等知名工具,亦支持自研。企业可根据技术生态灵活选择,实现高效业务管理。

强烈推荐QlExpress,其路由规则简洁实用,无需复杂运算和繁重规则引擎,轻松应对各类需求,高效又便捷。

关于QlExpress的资料,可参考官网介绍。

后面会有QlExpress的规则示例。

5.5. 决策子选择

决策因子就是路由规则匹配的条件,一般有以下几种:

  1. 金额:比如小于某个金额,或大于某个金额。
  2. 卡品牌:VISA、MASTER、UPAY等。
  3. 发卡行:CMB、ICBC等。
  4. 卡类型:借记卡、信用卡等。
  5. 卡BIN:某个号段的卡。
  6. 业务场景字段:各公司自定,比如线下场景,线上场景等。

5.6. 路由规则示例

假设:支付平台对接了网联和银联,要求:

1)招行信用卡全部走网联。

2)工行信用卡500块以内(不包含)的40%走网联,60%走银联。

3)工行信用卡500块以上的走银联。

一些基本的变量定义

银行名称:bankName

支付方式:paymentMethod

卡类型:cardType

金额变量:amount

网联:NUCC

银联:UPAY

招行:CMB

工行:ICBC

定义规则

  1. 使用信用卡支付时,若指定支付方式为“card”,信用卡类型为“credit”,且银行名称为“CMB”,则满足支付规则。

分流:NUCC:100

  1. 规则优化:当支付方式选择信用卡(paymentMethod='card'),且卡类型为信用卡(cardType='credit'),银行名为工商银行(bankName='ICBC')时,交易金额需小于500元。

分流:NUCC:40,UPAY:60

  1. 优化后文案:支付规则简化版:当选择信用卡作为支付方式,且信用卡类型为贷记卡、所属银行为工商银行,并且支付金额达到或超过500元时,满足支付条件。

分流:UPAY:100

5.7. 界面配置示例

aec255ca507b35483b5b835b5972546b.jpeg

说明:

  1. 后台保存规则精简明确:当支付方式为信用卡(card)、卡类型为贷记卡(credit)、银行名为工商银行(ICBC),且金额小于500元时,自动分流处理。具体分流比例为NUCC占40%,UPAY占60%,确保交易高效安全。
  2. 决策所需的元数据需预先设定,明确各字段运算规则,如开户行字段不适用大于或等于等运算,以确保决策精准无误。

5.8. 一些调优思路

  1. 优先选用用户近期支付成功的渠道,如银联或网联,可提升支付成功率。若用户五天内通过银联成功支付,建议再次选择银联,因为根据渠道风控原则,先前成功的支付渠道更有可能再次成功,除非用户余额不足。这种策略有助于提升用户体验和交易效率。
  2. 采用用户ID进行伪随机分流,而非订单号或纯随机。此举确保同一用户更可能进入同一渠道,显著提升成功率和用户体验。
  3. 适当使用缓存,以提高运算速度。

6. 加入自动化开关的渠道路由

外部渠道服务常现不稳,我们采用自动化开关模块,实时监控支付结果,动态评估渠道状态。一旦渠道异常,系统将自动关闭问题渠道,并即时通知渠道路由,确保支付流程顺畅无阻。

f81abde2934a14af9226e42a7e230820.jpeg

说明:

  1. 自动化开关模块实时监控支付结果,每秒评估渠道状态,一旦异常则自动关闭,并即时通知渠道路由处理结果,确保支付流程顺畅无阻。
  2. 渠道关闭后,再发起探测服务,探测成功后,灰度打开渠道。

下图为渠道自动化开关示意图。其基于滑动时间窗口算法,利用多种技术手段实现。具体执行可采用时序数据库,或通过redis自主实现。简洁高效,轻松掌控渠道自动化。

3fc3084543cc0880dff71abb399e4d16.jpeg

说明:

  1. 初始是完成打开。
  2. 指定时间内全部失败或指定时间内成功率低于阀值,关闭渠道。
  3. 指定时间后,发起查询,如果查询渠道失败,持续关闭。
  4. 如果查询成功,就灰度打开,如果灰度打开后的成功率不满足要求,就继续关闭。
  5. 如果灰度打开后的成功率满足要求,就持续加大灰度,直到完成打开。

后面会单独起一篇文章来讲自动化渠道开关的设计与实现。

7. 高阶的智能路由

顶尖企业运用先进算法和机器学习技术,实现智能路由优化。这种智能路由不仅基于传统路由规则,更融入实时请求参数、渠道数据,综合考虑成功率、成本、用户习惯及地域等多维度,精准计算出最优渠道,确保高效传输。

这个方案有几个难题不好解决。

首先是公司实力足够强。有人才来做算法,且这些算法同学需要懂一点业务;

智能路由调参难题待解:业务场景多变,或追求成功率,或侧重成本控制。如何实现智能路由参数调整,以满足不同业务需求?

我强烈推荐【规则路由+离线数据分析】方案。离线数据分析平台通过算法精准分析影响因子,辅助决策,优化路由规则,助力业务成功。

1b8ff684bada6f326253d12ff3f6b733.jpeg

说明:

  1. 通过分析数据,找到影响成功率成本的因子。
  2. 更新路由规则。
  3. 重复第1步。

8. 结束语

渠道路由是现代支付系统的核心,高效灵活的设计能显著提升支付成功率,降低成本,并优化用户体验。本文旨在为实际项目中的渠道路由设计与实现提供宝贵参考,助力支付系统性能飞跃。


-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/736364.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Monica

在 《long long ago》中,我论述了on是一个刚出生的孩子的脐带连接在其肚子g上的形象,脐带就是long的字母l和字母n,l表脐带很长,n表脐带曲转冗余和连接之性,on表一,是孩子刚诞生的意思,o是身体&a…

代码-功能-python-爬取博客网标题作者发布时间

环境: python 3.8 代码: # 爬取博客园内容 # https://www.cnblogs.com/import re from lxml import etree import requests import json import threading from queue import Queue import pymysql import timeclass HeiMa:def __init__(self):# 请…

36.远程注入到入口点注入

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 上一…

压力测试Monkey命令参数和报告分析

目录 常用参数 -p <测试的包名列表> -v 显示日志详细程度 -s 伪随机数生成器的种子值 --throttle < 毫秒> --ignore-crashes 忽略崩溃 --ignore-timeouts 忽略超时 --monitor-native-crashes 监视本地崩溃代码 --ignore-security-exceptions 忽略安全异常 …

Git 中 pull 操作和 rebase 操作的不同

由于在开发过程中&#xff0c;pull 操作和 rebase 操作都是用来合并分支的&#xff0c;所以我就常常分不清这两个操作具体有什么区别&#xff0c;所以才有了这篇博客来做个简单区分&#xff0c;具体细致差别还请移步到官方文档&#xff1a;Git - Reference (git-scm.com) 1&am…

【Python机器学习】k均值聚类——k均值的失败案例

k均值可能不总能找到“正确”的簇个数&#xff0c;每个簇仅由其中心定义&#xff0c;这意味着每个簇都是凸形。因此&#xff0c;k均值只能找到相对简单的形状。k均值还假设所有簇在某种程度上具有相同的“直径”&#xff0c;它总是将簇之间的边界刚好画在簇中心的之间位置。有时…

神经网络与深度学习 - 神经网络基础

1.2 神经网络基础 学习目标 知道逻辑回归的算法计算输出、损失函数知道导数的计算图知道逻辑回归的梯度下降算法知道多样本的向量计算 应用 应用完成向量化运算应用完成一个单神经元神经网络的结构 1.2.1 Logistic回归 逻辑回归是一个主要用于二分分类的算法。给定一个特…

帝国cms批量取消文章审核-把已审核的文章改成未审核的方法

帝国cms很多人采集的时候&#xff0c;把文章弄成了审核过的文章&#xff0c;或者因为其他的原因&#xff0c;文章都是审核通过&#xff0c;为了seo又不能把全部文章放出来&#xff0c;所以需要把文章弄成未审核以下就是解决本问题的办法 首先来修改后台列表文件&#xff0c;自…

DVWA-XSS(Stored)-httponly分析

拿DVWA的XSS为例子 httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。 接DVWA的分析&#xff0c;发现其实Impossible的cookie都是设置的httponly1&#xff0c;samesite1. 这两个参数的意思参考Set-Cookie HttpOnly:阻止 JavaScript 通过 Documen…

32.768k晶振FC-135R在智能手表手环中的作用

随着智能设备的普及&#xff0c;智能手表和手环已经成为人们日常生活中不可或缺的科技产品。晶振在智能手表手环中的作用是通过传感器给智能手环连接提供信号频率&#xff0c;是很重要的核心部位&#xff0c;这些设备的核心在于其精准的时钟管理和低功耗特性&#xff0c;32.768…

k8s部署grafana beyla实现app应用服务依赖图可观测

k8s部署grafana beyla OS: Static hostname: test Icon name: computer-vm Chassis: vm Machine ID: 22349ac6f9ba406293d0541bcba7c05d Boot ID: 83bb7e5dbf27453c94ff9f1fe88d5f02 Virtualization: vmware Operating System: Ubuntu 22.04.4 LTS Kernel: Linux 5.15.0-105-g…

多物理场仿真对新能源汽车用电机优化分析 衡祖仿真

1、问题所在 为了改善空气质量&#xff0c;减少环境污染&#xff0c;减少对石油的依赖&#xff0c;降低能源安全风险&#xff0c;国家大力倡导发展新能源汽车&#xff0c;大量新能源车企应运而生&#xff0c;竞争日趋激烈。使用经济效率较高的电机对于增强企业市场竞争力非常重…

【Python】已解决:pymssql引发的MSSQLDatabaseException错误

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;pymssql引发的MSSQLDatabaseException错误 一、分析问题背景 在Python中使用pymssql库与Microsoft SQL Server数据库交互时&#xff0c;有时会遇到pymssql._mss…

EndNote 21 for Mac v21.3 文献管理软件安装

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行安装EndNote212、升级 三、运行1、打开软件&#xff0c;测试 安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件 链接&#xff1a;http://www.macfxb.cn 二、开始安装 1、双击运行安装End…

【STM32c8t6】AHT20温湿度采集

【STM32c8t6】AHT20温湿度采集 一、探究目的二、探究原理2.1 I2C2.1. 硬件I2C2.1. 软件I2C 2.2 AHT20数据手册 三、实验过程3.1 CubeMX配置3.2 实物接线图3.3 完整代码3.4 效果展示 四、探究总结 一、探究目的 学习I2C总线通信协议&#xff0c;使用STM32F103完成基于I2C协议的A…

1.1 从图灵机到GPT,人工智能经历了什么?——《带你自学大语言模型》系列

《带你自学大语言模型》系列部分目录及计划&#xff0c;完整版目录见&#xff1a; 带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型&#xff08;科普向&#xff09; 第一章 走进大语言模型 1.1 从图灵机到GPT&#xff0c;人工智能经历了什么&#xff1f;1.2 如何让…

计算机网络知识点整理1

目录 激励的话 一、计算机发展的三个阶段 二、互联网标准化工作 三、互联网的组成 边缘部分 核心部分 电路交换的主要特点 分组交换的主要特点 四、三大交换方式的主要特点 总结 激励的话 没关系的&#xff0c;有三分钟热度&#xff0c;就有三分钟收获 一、计算机…

Day8 —— 大数据技术之HBase

HBase快速入门系列 HBase的概述什么是HBase&#xff1f;主要特点和功能包括使用场景 HBase的架构HBase部署与启动HBase基本操作前提条件数据库操作表操作数据的CRUD操作 HBase的不足 HBase的概述 什么是HBase&#xff1f; HBase 是一个开源的、分布式的、面向列的 NoSQL 数据…

项目-博客驿站测试报告

测试用例设计 功能测试 该部分主要围绕对于博客系统的增删改查, 文章通过性审核, 关注功能等进行测试, 还进行了其它一些探索性的测试. 以上是作者设计的全部用例. BUG发现: 问题1: 当多端同时操作同一篇文章BUG 环境: Windows11, Edge和Chrome浏览器 复现步骤: 1.先使用Edg…

6月21日(周五)AH股总结:沪指失守3000点,恒生科技指数跌近2%,多只沪深300ETF午后量能显著放大

内容提要 沪指全天围绕3000点关口来回拉锯&#xff0c;收盘跌破3000点。白酒及光刻机概念集体走低&#xff0c;中芯国际港股跌超2%。CRO医药概念及水利股逆势走强。 A股低开低走 沪指全天围绕3000点关口来回拉锯&#xff0c;收盘跌破3000点&#xff0c;跌0.24%。深成指跌0.04…