文章目录

  • 一、支付路由的架构设计
    • 1-1、设计目的
    • 1-2、系统架构
  • 二、支付路由的计算因子
  • 三、支付路由的限制规则
    • 3-1、银行与渠道黑暗期
    • 3-2、余额不足次数阈值
    • 3-3、单笔鉴权验证
    • 3-4、通道启停控制
    • 3-5、交易量分流
  • 四、支付路由的软件架构
  • 五、支付路由的理想与现实
    • 5-1、手工路由
    • 5-2、基于规则的路由
    • 5-3、基于权重的路由
  • 六、在实际支付中遇到的典型问题
    • 6-1、充值掉单
    • 6-2、提现最终一致
    • 6-3、提现操作防止重复提交
    • 6-4、同人同出保证
    • 6-5、QoS保证
  • 七、简易支付路由设计
    • 【需求背景】
    • 【规则条件说明】
    • 【路由规则】

一、支付路由的架构设计

1-1、设计目的

  1. 省钱。哪个支付通道更省钱选择哪一个通道
  2. 提升支付产品的QoS。这体现在系统的可靠性、稳定性、性能和可用性上。通过屏蔽掉无法连接、不稳定、性能低的通道来提升这些指标。
  3. 支持营销。通过优先选择有优惠活动的通道,可以帮助业务提升付费客户量。
  4. 降低运营成本。

1-2、系统架构

二、支付路由的计算因子

三、支付路由的限制规则

3-1、银行与渠道黑暗期

  1. 支付渠道或者开户银行会不定期发布某个银行或者整个支付渠道维护的公告,例如中国银行将于X月X日凌晨00:30至03:30进行系统维护,届时代收业务将受影响。
  2. 作为支付路由的重要因素,为了进一步保障交易成功率,支付路由方案需要考虑银行与支付渠道维护信息(即黑暗期)。在黑暗期内的支付渠道要避免将交易路由过去,以免由于通道不稳定而导致交易失败。

3-2、余额不足次数阈值

为了降低客户投诉量以及进一步满足开户银行风控要求,支付渠道一般都会对商户的代扣交易中“余额不足”的报错次数进行限制。(这个可以坑到被银行停掉代扣通道)

3-3、单笔鉴权验证

  1. 使用不同的渠道需要不同的授权。
  2. 授权无法静默(需要有短信验证码)

3-4、通道启停控制

因商务或者其他原因临时停止某通道时,应能做到一键迅速关停。

3-5、交易量分流

  1. 商务层面:由于BD一般要跟支付渠道打好关系,因此当支付渠道要求增加交易量时,可以通过每个支付渠道的交易量分流来实现。
  2. 支付渠道维系:虽然某个支付渠道可能由于价格较高或者稳定性较差等原因,导致路由选择不到该支付渠道,但作为后续支付渠道的备份,系统仍需要少量的走一些交易到这些支付渠道。
  3. 技术层面:当某个支付渠道出现不稳定表现(比如单位时间内异常数量增加)时,需要临时降低该支付渠道的权重,增加系统的整体稳定性

四、支付路由的软件架构

  1. 业务系统和支付路由系统分离
  2. 服务发现能力
  3. 本地缓存+同步

五、支付路由的理想与现实

5-1、手工路由

  1. 大部分支付系统在接入渠道不多时,人工路由也是一个不错的选择。运营人员指定支付渠道和产品之间的映射关系。出问题时人工切换即可。
  2. 这种路由的优势是性能高,路由结果可控,出问题时易于排查问题。当接入通道数量增加,营销活动频繁时,人工路由会是一个巨大的投入。

5-2、基于规则的路由

这种相对比较简单的自动路由设计。按照业务要求设置各种路由规则,比如:

if (支付方式 == 招商借记卡 && 额度<100) then 目标通道 = 招商快捷支付

技术上,规则可以使用规则引擎drools来描述。

5-3、基于权重的路由

规则路由的难点在于各种规则的制定。

在路由因子增多的情况下,规则的维护会是一个噩梦。基于权重的路由则可以缓解这个问题。这种计算方式,简单说,就是对各个通道打分,分数最高的就命中。难点在于制定打分的标准以及计算公式。

比如可以从费率、优惠额度、QoS和使用率角度来评分,给优惠额度高一点的比重,这会导致高优惠额度的通道被优先命中。

注意每个维度上的计算公式也不是一成不变的,比如使用率和QoS都是动态打分计算。

权重的调整是一个挑战,需要在运行过程中不断的调试。必要时,可以使用旁路测试来比较两种算法的优劣。

路由是支付的核心模块,稳定性是第一要素,其次是性能,

最后才是怎么省钱。路由系统的设计,需要和公司业务发展保持一致,并适度超前。

简单的if-else实现可以满足大多数场景下的需求。避免在系统建设初期引入过于复杂的路由。

六、在实际支付中遇到的典型问题

6-1、充值掉单

  • 问题描述:客户在账户中心显示的状态为充值中,余额未反应本次充值,但银行账户中的钱已经被划扣成功。
  • 问题原因:三方支付公司同银行间的接口出现异常或者超时,未向我方系统反馈充值结果。
  • 最初解决方案:客服接到客户反馈后,通知运营人员由运营人员通过交易流水号核实该笔充值在三方支付公司正常完成后,手动将交易金额充值入客户账户。
  • 优化后的解决方案:系统通过定时任务每5分钟对充值中订单自动进行最终状态确认,如果是交易成功就自动将余额充入客户余额(补偿)

6-2、提现最终一致

  • 问题描述:客户提现,账户中心显示提现成功,提现记录也显示提现成功,查询第三方的交易明细也显示交易成功,但是钱就是未到客户银行卡
  • 问题原因:该种交易都未走央行的超级网银系统(金额超过5万也是事实),而使用银行间结算系统,在进行结算时出现故障导致款项未到客户账户中,提现金额会在7个工作日后自动退回支付公司,但是支付公司不再通知我们。
    (已知的一个清算错误的原因如下:公司的全称中包含了一个全角的括号,但是银行间结算系统部分情况不识别全角括号,导致一部分付款处理失败,需要人工核对后人工处理。)
  • 解决方案:无有效解决方案,需运营人工处理。因为提现成功的状态已经不再是最终状态,存在先交易成功然后7天后该笔交易又变成交易失败,需要退回金额的情况。系统自动工作存在安全风险,需要人工审批后,系统自动核实交易流水后自动对该笔提现进行退回。

6-3、提现操作防止重复提交

  • 问题描述:客户申请提现27万,实际到账了54万。
  • 问题原因:银行的最终支付接口防止重复提交出现bug,导致同一笔交易被执行两次。
  • 解决方案:无有效解决方案,客户不反馈我们都不会发现。理论上我们应该每日和三方支付公司或者银行对备付金账户的实际金额和指令金额是否一致的,但是由于备付金账户的钱实时都在发生变化,而且变化时间点不受我们控制,且支付公司和银行也说不清楚。导致无法完成虚账和实账的对账工作。

6-4、同人同出保证

  • 问题描述:客户投诉账户金额被非法分子盗刷。
  • 问题原因:用户密码被不法分子盗取。早期为了更简便的实现客户入金,在入金前未要求实名验证,只有在提现时才进行4要素验证。并且不投资的钱也可以直接提现。导致不法分子将客户的钱提现到了第三人的银行卡中。
  • 解决方案:初次入金前要求必须完成实名验证和银行卡4要素验证,银行卡的换卡环节加入人脸识别确认是本人意图操作。

6-5、QoS保证

  • 问题描述:现在的支付系统基本都是采用https协议,IPsec,公共互联网环境,掉单率,网络延时,TPS均无法达到要求。
  • 掉单率:反应各三方支付公司实力的指标,在使用过的三方支付中,京东的掉单率为0(使用期限较短),其他的通道均在万分之2左右。(15年~16年支持pos机充值的时候,掉单率比这个数值要高很多)
  • 网络延时:公司的支付通道在从A系统切换成B系统后,支付系统的延时从20ms级别上升到了200ms级别。且高峰时超时现象从万分之5左右,上升到了万分之65左右。导致了系统在切换后出现了大量的客户投诉。引入了实时补偿功能后系统才恢复正常。
  • TPS:这个非常可害怕,根据我们的经验发现三方支付的系统是多商户公用的,一个商户的瞬时峰值会对其他商户的支付TPS造成影响。严重时甚至会由于其他商户的影响造成自身的瘫痪。需要支付路由动态切换。

七、简易支付路由设计

由于生产环境的B支付通道出现突发情况,直接单方面通知我们即将停用,造成了非常被动的局面,在短期内紧急商谈了C通道(付出了费率等方面较大的代价)。

为了将来的系统稳定性考虑,后期会接入多家支付,因此进行了一个简单的支付路由建设。

以下为根据公司实际情况做的设计概要,供参考。


【需求背景】

为了支付通道的稳定性,公司将陆续接入不同的支付通道。

在通道出问题时,能快速的切换到其他支付通道。不同的支付通道的成本、稳定性、可靠性各不相同。

我们一期支付路由规则比较简单,只考虑静态路由。

【规则条件说明】

规则的条件主要有银行单笔/单日限额、支付通道是否可用、支付通道对应银行是否可用、支付手续费、通道流量占比。

  1. 支付通道不可用,有些突发情况,支付公司系统突然无法访问或者支付通道的短信渠道出问题或者其他问题,此时需要禁用支付通道下所有的银行

  2. 单笔限额保证用户支付时提供满足单笔限额的支付通道

  3. 支付公司对应银行不可用,支付通道的运营流程中,如果银行临时维护,支付通道会通知商户银行的维护时间,此时需要在维护时间内支付通道对应的银行不可使用

  4. 支付费用,考虑成本原因,会优先使用费用低的支付通道

  5. 流量占比,考虑满足单笔、费用又相同有可能有多个支付可以,此时用户会使用流量占比高的支付通道。

【路由规则】

  1. 正常处理逻辑
  • 优先查找是否有可用支付通道,如有可用支付通道,看单笔/单日限额是否满足;

  • 满足单笔、单日限额有多个支付通道,则按照支付金额,计算每家支付通道的费用,优先费用低的支付通道;

  • 费用低的有多个支付通道,则使用流量占比优先的支付通道。

  1. 异常情况:若是支付的金额 不满足 所有支付通道的银行限额,则默认选择此优先通道去进行支付。

  2. 优先通道也支付失败,则进行提示:本次支付失败,请联系客服。

支付路由技术概述以及简单的建设说明相关推荐

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

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

  2. CDN关键技术研究与应用—内容路由技术

    内容路由技术作为CDN中关键技术之一对业务的支撑效果起着举足轻重的作用.在LiveVideoStackCon2019上海 大会中,爱奇艺高级技术经理白帆从技术背景,架构优化,特殊场景应用等多方面详细介 ...

  3. 系统接口规范以及常见的接口技术概述和比较

    系统接口规范以及常见的接口技术概述和比较 一.基本要求: 为了保证系统的完整性和健壮性,系统接口应满足下列基本要求: 1.接口应实现对外部系统的接入提供企业级的支持,在系统的高并发和大容量的基础上提供 ...

  4. 路由技术(来自百度百科)

    有关路由技术主要是指路由选择算法.因特网的路由选择协议的特点及分类.其中,路由选择算法可以分为静态路由选择算法和动态路由选择算法.因特网的路由选择协议的特点是:属于自适应的选择协议(即动态的):是分布 ...

  5. 人脸识别技术在智慧城城市建设中的深度应用

    人脸识别技术在智慧城城市建设中的深度应用 本文由本人发表于<中国安防>第144期-2017年10月刊智慧城市栏目 佳都新太科技股份有限公司 徐建明 1.   人脸识别技术在智慧城市应用中的 ...

  6. 移动IP技术概述(转)

    移动IP技术概述(转) 林勇 福建省邮电规划设计院 摘要:本文主要介绍移动IPv4技术的基本工作原理及代理发现.注册.隧道技术和路由选择等,并简单介绍移动IPv6中出现的技术新特点,最后展望其美好前景 ...

  7. 计算机网络实训室建设设备,计算机网络技术综合实训室建设方案--200万.doc

    计算机网络技术综合实训室建设方案--200万.doc 计算机网络技术综合实训室建设方案一.计算机网络技术综合实训室涉及的专业及学生数计算机网络技术综合实训室主要用于电子信息系计算机网络技术及其他相关专 ...

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

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

  9. 从WAP到RFID 移动小额支付关键技术浅析

    1.小额支付关键技术优缺点 (1)IVR优点:稳定性较高,实时性较好,系统实现相对简单,对用户的移动终端无要求,用户操作简单,服务提供商可以很方便地对系统进行升级并不断提供新的服务.缺点:服务的操作复 ...

最新文章

  1. ES6 Generator 初体验
  2. 读取oracle注释
  3. 探索 Block 的本质
  4. 三十七、深入Vue.js组件Component(下篇)
  5. NGcodec谈FPGA编码与HEVC和AV1
  6. Android之华为meta10 pro安卓8.0绑定服务(bindService)失败解决办法
  7. 智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamFC(2016)
  8. 小程序入门学习04--数据绑定、条件渲染、列表渲染
  9. SolarWinds 攻击者开发的新后门 FoggyWeb
  10. LayaAir graphics 绘制文本
  11. 汇编编写正弦函数代码
  12. 批处理 %~dp0是什么意思
  13. QQ桌球瞄准器开发(1)桌球瞄准器介绍与使用方法
  14. 7月生日会|清凉的惊喜与祝福
  15. P3939 数颜色 (权值线段树)
  16. 深夜爬虫, 我很抱歉 , 附微信 “ 网抑云” 公众号爬虫教程!
  17. Ubuntu安装SqlServer
  18. onActivityResult被标注过时了,新API的写法
  19. “深圳首届十大金口碑人物”优必选科技创始人兼CEO周剑获此殊荣
  20. Yahoo,我去也!

热门文章

  1. 两种方式实现Kepware与PLC之间的心跳检测
  2. g6实现左右展开树图(思维导图)
  3. 插件合并css,介绍几个JS和CSS压缩合并插件—冠朔wordpress插件
  4. python安装镜像numpy_[Python]使用镜像网站自动、自动和手动安装numpy,Numpy
  5. 最新UI界面漫画小程序源码,带后台支持流量主,24小时全自动更新!
  6. IDEA+Java+JSP+Mysql+Tomcat实现Web商品信息管理系统
  7. 用接口实现计算每个立方体的体积并输出结果的程序(接口及多态性及匿名方法的结合使用)
  8. 大龄程序员 “敢问路在何方?”
  9. 字符串—StringBuilder
  10. hmcl_HMCL安装与使用