春节回来后,工作重点转向现有系统中微服务的完善。 继续支付系统设计的话题。 也特别感谢大家对凤凰牌老熊公众号的关注和支持。 祝大家在新的一年里工作顺利、万事如意。
然后回到支付系统设计的话题。 在阅读本文之前,有必要回顾一下关于支付系统设计的文章。 后续我们会深入探讨支付系统各个模块的设计。 本文首先介绍支付核心模块的支付路由的设计。
从支付系统设计的文章中我们可以知道,用户在前端选择支付方式后,比如使用招商银行借记卡支付,系统并不一定会调用招商银行的接口来执行支付。 支付宝、百付宝等第三方支付平台以及银联均支持招商银行借记卡支付。 这个将支付方式实现到特定支付接口的模块就是支付路由。
设计目标
支付路由在支付系统中起着核心作用。 除了自己的路由工作外,它还承担以下职责:
省钱,省钱,省钱,这是选择支付路由支付渠道时最重要的规则。 哪个渠道省钱基本上都会优先考虑。 提升支付产品的服务质量。 这体现在系统的可靠性、稳定性、性能和可用性上。 通过阻止无法访问、不稳定、低性能的通道来改善这些指标。 支持营销。 通过优先考虑有促销活动的渠道,您可以帮助您的企业增加付费客户数量。 降低运营成本。 精心设计的支付路由可以大大减少运营投资。 软件架构
从上述流程的实现来看,参考架构设计如下:
支付路由不直接连接前端支付产品或后端支付渠道。 它是支付网关的一部分。 如果是基于微服务的架构,支付路由是一个独立的服务,由支付网关调用。
计算系数
路由规则是支付路由的核心。 制定规则时需要结合公司业务范围和支付服务范围综合考虑。 这里描述的是一般规则设计,供具体实施时参考。
产品类型 当然,路由时首先需要选择的是渠道能够支持的支付产品。
速度
速率是路由最重要的指标。 一般银行按额度收费,也有的按交易笔数收费。 比较复杂的是分级收费,比如10万一个费率等级,100万一个费率等级。
促销活动
为了吸引客户,银行和第三方支付公司往往会向其对接的商户提供一些补贴,以补贴使用该渠道的交易。 还有各种优惠策略。
交易限额:不同渠道会限制每笔交易的金额,以及每个账户的每日限额。 如果超过此数量,则需要更改频道。
卡类型通道支持的信用卡或借记卡。
通道的QOS掉单率、网络时延以及接口能够支持的TPS是路由的重要因素。
资金头寸:电商公司在银行或第三方平台的资金头寸。 如果资金头寸不足,则无法使用该通道执行。
到达的及时性 对于转账来说,资金到达目标账户的时间也是影响路径选择的一个因素。
商户类型 不同类型的商户可以选择不同的渠道。 例如,为高端商户预留高性能、高费率的渠道。
模块化设计
从架构上讲,支付路由通常是支付网关的一部分。 使用微服务架构时,路由模块作为独立服务部署,由支付网关调用。 涉及到的模块如上所示:
支付渠道管理
提供渠道支持的产品类型、费率等信息。
支付通道QOS监控
收集通道使用过程中的错误信息、接口时延、超时等信息,用于QOS统计。
资金头寸管理
用于监控公司在各种支付渠道的头寸并提供头寸信息。
促销活动
为了吸引客户,银行和第三方支付公司往往会向其对接的商户提供一些补贴,以补贴使用该渠道的交易。 还有各种折扣策略:
支付策略:补贴所有使用该渠道的支付; 仅对首次使用该渠道的用户进行补贴; 只补贴绑定卡的用户。 补贴时,根据支付金额设定折扣金额,或者按比例折扣。 一般活动都会设定补贴总额。 当这笔金额用完后,补贴将停止。
当然,活动也会设定开始和结束时间。路线计算
手动路由
当大多数支付系统的访问渠道有限时,手动路由也是一个不错的选择。 运营人员指定支付渠道与产品的映射关系。 出现问题时手动切换即可。 这种路由的优点是性能高、路由结果可控、出现问题时易于排除故障。 当接入渠道增多、营销活动更加频繁时,手动路由将是一笔巨大的投资。
基于规则的路由
这是一个比较简单的自动布线设计。 根据业务需求设置各种路由规则,例如:
if(支付方式==招商借记卡 && 额度<100) then 目标通道==银联token支付 if(支付方式==招商借记卡 && 额度>100) then 目标通道==招商快捷支付
从技术上讲,规则可以使用 来描述。
基于权重的路由
规则路由的难点在于各种规则的制定。 随着路由因素的增加,规则维护可能成为一场噩梦。 基于权重的路由可以缓解这个问题。 这种计算方式,简单来说,就是给每个通道打分,得分最高的就命中。 难点在于评分标准和计算公式的制定。 例如,您可以从费率、折扣金额、QOS、使用率等角度进行评分,并给予折扣金额较高的比例。 这将导致折扣金额高的渠道首先受到打击。 请注意,每个维度的计算公式都不是静态的。 例如,使用率和QOS都是动态评分计算。 权重的调整是一个挑战,需要在运行过程中不断调试。 如有必要,可以使用旁路测试来比较两种算法的优缺点。
路由是支付的核心模块。 稳定性是第一因素,其次是性能,最后是如何省钱。 路由系统的设计需要与公司业务发展相一致并适当超前。 简单的if-else实现就可以满足大部分场景的需求。 避免在系统建设初期引入过于复杂的路由。
感谢您对本文的关注。 如果您想及时收到凤牌老熊的最新作品,或者有相关问题需要讨论,请扫描二维码关注“凤牌老熊”微信公众号,并留言或在公众号回复。 您可以尽快处理,谢谢。
本文欢迎转载。 转载时请注明本文来自微信公众号“凤牌老熊”。