背景
由于各收单通道存在系统波动或者升级操作等情况,可能会导致商户无法正常收单,进而导致用户端在一定时间段内的支付行为失败。一旦出现此类问题,会直接影响商户的正常经营行为,带来无法收款、客户投诉等严重后果。
目标
在合作的收单通道出现上述异常时,商户能够自动切换到另外一个正常服务的收单通道,大量减少由于下游支付通道异常导致的支付失败,提高商户支付系统的稳定性和可用性,同时提升用户的支付体验。
方案概述
- 商户APP或者前端页面发起下单操作,腾讯微卡收付通系统按照策略选择一个收单渠道进行下单。
- 当选择的收单渠道出现异常时,返回收付通系统下单失败,腾讯微卡收付通平台根据熔断策略判断是否需要对当前的异常渠道进行熔断。
- 商户APP再次下单后,腾讯微卡收付通系统排除熔断的收单渠道后,对剩余可用收单渠道按照路由策略进行选择。
- 返回商户APP下单结果,具体包括:收单渠道(payChannel)、支付类型(payInfoType)和支付要素(payInfo)。
熔断策略
当调用下游收单渠道失败时,腾讯微卡收付通平台会根据熔断策略进行判断,是否要对当前收单渠道进行熔断,具体来说包括如下条件:
- 当下单数量小于最少下单阈值时,不进行熔断。
- 当下单数量大于最少下单阈值后,计算统计时间窗口内的下单失败率,当失败率大于熔断阈值后,进行熔断操作。
- 当超过熔断时间后,被熔断的渠道自动进行恢复。
上述出现的的阈值都可以以主体为维度进行配置,具体包括:
- 最少下单阈值
- 统计时间窗口
- 熔断阈值
- 恢复阈值
路由策略
当商户同时接入多方收单渠道后,就拥有了渠道多活的能力,腾讯微卡收付通系统的支付路由可根据下游渠道的可用性进行自动的渠道切换,旨在不稳定的收单渠道上构建稳定的支付系统。具体路由策略如下:
- 查询符合商户下单的支付通道、支付场景、支付方式,若为空,则返回无可用渠道,若唯一,则直接返回该唯一可用渠道。
- 剔除熔断渠道后,对剩余渠道按照权重设置进行概率性选择, 权重设置见 管理后台 → 支付网关处理 → 通道管理 。
使用前提
客户端需要配对使用支付类型和支付要素
前端调起支付时,需要关注支付结果返回的 payInfoType 字段,并兼容对应的 payInfo 信息。具体的 payInfoType 枚举可参考支付面板拉起指引。
客户端需要接入支付方式列表接口
前端在下单之前需要调用平台提供的支付方式列表接口,实时获取当前腾讯微卡收付通平台支持的支付方式列表,并对不可用的支付方式进行禁用操作。
由于切换通道后,会发生当前使用渠道对某些支付方式的不支持,导致下单失败的情况。例如:商户APP同时支持支付宝支付和微信支付,当商户由于某些原因被支付宝支付封禁后,智能网关会自动切换到微信支付,这时如果商户APP没有对支付宝支付禁用,会导致用户在选择支付宝支付时下单失败,影响用户体验。