当前位置: 首页 > 科技观察

支付路由设计

时间:2023-03-20 13:38:53 科技观察

本文首先介绍支付核心模块的支付路由设计。一、支付流程下面我们以收银机为例,详细说明一下支付的正确打开方式。当用户提交订单时,他们将被引导至收银台。以某东为例,手机端是这样的:PC端是这样的:从这里可以看出,用户进入收银台后,首先需要选择默认支付方式。支付方式是指消费时的支付方式,如现金支付、货到付款、信用卡支付、借记卡支付、扫码支付等。那么哪些支付方式适合在收银机上展示呢?即支付应用与支付方式的关系。在这里,Cashier是一种支付应用程序。支付类应用是指在特定场景下提供给终端用户的产品,如收银扫码、二维码支付、打赏、众筹、POS支付、生活支付、信用卡返利、手机充值等。这些应用是构建以支付产品为基础,直接向终端用户提供服务。每个支付应用程序可以使用的支付方式不同。比如扫码收现金,可能只支持微信和支付宝。POS支付只支持银行卡。信用卡回扣只能从其他借记卡中扣除。支付应用的设计与公司业务相关,需要考虑公司业务场景下的用户支付体验。目前,支付宝是最全面的应用。可以访问支付宝应用(截至2017年2月15日):在收银应用中,在呈现支付方式时,当前场景下可以向用户提供哪些支付方式?应该首先使用哪种方法,这是通过支付系统中的引导路由来实现的。引导路由是根据支付应用、收款商户、订单金额等信息,确定提供给用户的支付方式列表。用户选择支付方式并提交支付后,支付系统开始扣款。比如用户选择通过招商银行支付,系统会要求招商银行扣款吗?这不一定,因为系统可能没有连接到招商银行界面。除了招行自己的接口外,第三方支付公司、银联等也可以在招行卡上扣款。那么应该使用哪个渠道呢?这是由支付路由决定的。支付路由是指根据用户选择的支付方式,结合费率、QOS等因素,选择银行或其他公司提供的合适的支付接口,完成资金划转操作。通过支付路由,我们可以定位到一个在地面上执行的支付接口。支付接口是指银行提供的用于支付的接口。这里需要注意的是,对于同一家银行,除了总行可以提供接口外,各地分行也可以提供该接口。但一般来说,同一家银行的接口规范是一样的,区别在于提供接口的服务器、速率、性能等。比如支付公司可以访问工行总行、工行上海分行、工行的接口北京分公司。为什么要访问分支机构?一般来说,很多分行都会提供比较优惠的接入费率,并且经常会举办一些活动来吸引用户接入。支付通道,是对支付接口的封装,包括合作银行及通道费用、商户费率、QOS等信息;银行和第三方支付渠道为电商企业提供的接口,往往被打包成支付产品。支付产品是指将支付渠道进行封装以满足特定支付场景需求的产品,如信用卡运通、信用卡摩托等,这里定义涉及的几个概念。当然,这些定义只是从约定俗成的角度描述的,没有学术意义。不同的公司还没有完全同意这些名称。比如支付通道,有的叫通道,有的公司叫网关。这里统一命名,避免混淆。一般情况下,支付系统通过支付路由将支付渠道提供的“支付产品”打包成业务所需的“支付产品”。这是支付的核心流程。支付路由在其中起着关键作用。2.设计目标支付路由在支付系统中的核心作用。除了工作路由,它还承担以下职责:省钱,省钱,省钱。这是支付路由选择支付渠道最重要的规则。哪个渠道省钱,基本上这个渠道会优先考虑。提高支付产品的QOS。这体现在系统的可靠性、稳定性、性能和可用性上。通过阻止无法连接、不稳定和低性能的通道来改进这些指标。支持营销。通过优先安排有促销活动的渠道,可以帮助商家增加付费客户的数量。降低运营成本。设计良好的支付路由可以大大减少运营投资。3.软件架构上述过程在实现上是指架构设计如下:支付路由不直接连接前端支付产品或后端支付通道,它是支付网关的一部分。如果是基于微服务的架构,支付路由作为一个独立的服务被支付网关调用。4.计算因素路由规则是支付路由的核心。在规则制定上,需要结合公司业务和支付服务范围综合考虑。这里描述的是总体规则设计,供具体实现时参考。产品类型当然,路由时最需要考虑的是渠道能够支持的支付产品。1.资费资费是路由最重要的指标。银行一般按额度收费,有的按交易笔数收费,比较复杂的是分级收费,比如10万一个费率,100万一个费率。2.促销活动银行和第三方支付为了吸引客户,往往会对接入的商户提供一定的补贴,补贴通过该渠道进行的交易。还有各种优惠策略。3.交易限额不同渠道会限制每笔交易的金额上限,以及每个账户的每日限额。如果超过此限制,则需要更改频道。4.卡类型渠道支持的信用卡或借记卡。5、通道的QOS丢单率、网络时延、接口支持的TPS是路由的重要因素。6.资金状况电子商务公司在银行或第三方平台的资金状况。如果资金头寸不足,则无法使用该通道执行。7、到账时效对于转账,资金何时到达目标账户也是影响路由选择的一个因素。8、商户类型不同类型的商户可以选择不同的渠道。例如,为高端商户预留高性能、高费率的渠道。五、模块设计支付路由在架构上一般作为支付网关的一部分。采用微服务架构时,路由模块作为一个独立的服务部署,由支付网关调用。涉及的模块如上图所示:1.支付渠道管理,提供渠道支持的产品类型、费率等信息。2、支付通道QOS监控收集通道使用过程中的错误信息、接口延迟、超时等信息,进行QOS统计。3、资金头寸管理用于监控公司在各个支付渠道的头寸,提供头寸信息。4、促销活动银行和第三方支付为了吸引客户,往往会向关联商户提供一定的补贴,以补贴使用该渠道进行的交易。而且优惠策略也多种多样:支付策略;补贴使用此渠道的所有付款;只补贴最开始使用该频道的用户;只补贴绑定卡的用户。补贴时,按缴费金额设置优惠金额,或按比例贴息。补贴总额将针对一般活动设定。配额用完即停止补贴。当然,活动也会有开始和结束时间。六、路由计算1、人工路由当大部分支付系统接入通道较少时,人工路由也是一个不错的选择。运营商指定支付渠道与产品的映射关系。出现问题时可以手动切换。这种路由的优点是性能高,路由结果可控,出现问题容易排查。当接入渠道增多,营销活动频繁时,人工路由将是一项巨大的投资。2.基于规则的路由这是一种比较简单的自动路由设计。根据业务需求设置各种路由规则,如:if(paymentmethod==招商借记卡&"a<100)thentargetchannel==UnionPaytokenpaymentif(paymentmethod==招商借记卡&"a>100)然后Targetchannel==招商快捷支付从技术上讲,规则可以用drools来描述。3.基于权重的路由规则路由难点在于制定各种规则。在路由因素增加的情况下,规则维护可能是一场噩梦。基于权重的路由可以缓解这个问题。这种计算方式,简单来说就是对每个通道进行打分,得分最高的为最佳。难点在于制定评分标准和计算公式。比如可以从费率、优惠额度、QOS、使用率等角度进行打分,可以给予更高比例的优惠额度,从而导致优惠额度高的通道被优先黑掉。请注意,每个维度上的计算公式都不是静态的。例如,使用率和QOS是动态计算的。调整权重是一项挑战,需要在运行过程中不断调试。必要时可以通过旁路测试来比较两种算法的优劣。路由是支付的核心模块,稳定性是第一要素,其次是性能,最后才是如何省钱。路由系统的设计需要与公司业务发展相一致,适度超前。一个简单的if-else实现就可以满足大部分场景的需求。避免在系统建设初期引入过于复杂的路由。【本文为专栏作者《凤凰牌老熊》原创稿件,转载请微信联系作者公众号《凤凰牌老熊》转载】点此阅读作者更多好文