做线上生意,收款通道一挂,生意就停摆。怎么实现运行稳线上收款?今天聊聊高可用支付架构怎么搭,让你的收款永不掉线。
为什么收款会掉线?
先搞清楚,支付通道为什么会出问题:
1. 平台通道维护,临时不可用
2. 上游风控调整,通道被限制
3. 平台服务器故障,服务宕机
4. 你的账号被风控,功能受限
5. DDoS攻击、网络故障等意外情况
单平台单通道的话,任何一个环节出问题,你就收不了款了。所以高可用的核心就是:冗余备份。
高可用架构的核心原则
原则一:多平台冗余
不要只用一个支付平台,至少两个,最好三个。一个平台挂了,马上切到另一个。
原则二:多通道冗余
每个平台里,微信、支付宝、QQ钱包都开通。一个通道挂了,还有其他通道。
原则三:自动切换
有条件的做自动切换,检测到通道不可用自动切到备用。没条件的手动切,也要能快速切换。
原则四:降级方案
所有在线支付都挂了的时候,要有降级方案,比如人工收款码,保证至少能收钱。
基础版:一主一备
最简单的高可用配置,适合中小站点。
主力平台:选一个最稳的Pay易支付免签约收老平台,日常80%流量走这里。主力平台一定要稳,费率其次。
备用平台:选另一个不同的平台,通道资源跟主力不重叠的。主力出问题了,手动切到备用。
通道配置:两个平台都开通微信支付宝双支付。
切换方式:后台改一下配置,或者前端加个切换开关。几分钟就能切过去。
这个配置,基本上能应对90%的故障情况。两个平台同时挂的概率很低。
进阶版:多平台负载
适合订单量比较大的站点。
把流量分散到2-3个平台,每个平台承担一部分流量。
好处:
1. 每个平台量都不大,不容易触发风控
2. 一个平台挂了,其他平台还能正常收款,只是压力大一点
3. 不用紧急切换,影响小
可以按比例分流,比如5:3:2;也可以按地区、按产品类型分。
低费率免签约收的平台可以多分配一点流量,贵的少分配,控制成本。
高级版:自动故障转移
适合对稳定性要求极高的站点。
做一个支付聚合层,统一管理所有支付通道。
功能:
1. 心跳检测,实时监控每个通道的可用性
2. 自动负载均衡,把请求分到可用的通道
3. 故障自动转移,通道挂了自动摘掉,恢复了自动加回来
4. 统一对账,所有平台的订单统一管理
这个架构最稳,基本上不会出现支付不可用的情况。但开发成本高,需要技术实力。
一般小站点没必要搞这么复杂,基础版就够用了。
通道降级顺序
出问题的时候,按什么顺序降级?建议这样:
第一级:主力平台的微信+支付宝(正常情况)
第二级:备用平台的微信+支付宝(主力平台挂了)
第三级:QQ钱包通道(微信支付宝都挂了)
第四级:人工收款码(所有在线通道都挂了)
一级一级降,保证用户永远有支付方式可选。
全场景收款易付
真正的全场景收款易付,要覆盖这些场景:
PC端:扫码支付,微信、支付宝、QQ钱包都要有
手机端:唤起支付,微信内唤起微信支付,支付宝APP唤起支付宝
H5页面:H5支付,手机浏览器里也能付
异常情况:主通道挂了自动切备用,都挂了有人工兜底
每个场景都照顾到,用户不管用什么设备、什么环境,都能顺利付款。
日常运维建议
1. 定期检查每个平台的状态,登录后台看看公告
2. 每个平台都留一点余额,保证切换过去就能用
3. 保存好每个平台的客服联系方式,出问题能快速找到人
4. 做好订单记录,方便对账和排查问题
5. 定期测试备用通道,别等要用的时候才发现用不了
成本和稳定性的平衡
高可用是有成本的。平台越多,管理越麻烦,费率可能也越高。
不用盲目追求99.999%可用,根据自己的业务情况来。
小站点、一天几十单的,一主一备足够了。损失几单也没多少钱。
大站点、一天几百上千单的,就值得投入做高可用。停一小时损失几百上千块,架构投入很快就回本了。
适合自己的才是最好的。
总结
运行稳线上收款,核心就是多备份、多通道、有预案。
不要把鸡蛋放一个篮子里,多平台多通道分散风险。出问题了有备用方案,能快速切换。
Pay易支付对接快,搭起来也简单。花半天时间配置个备用平台,换一年的安心,很划算。
支付是线上生意的生命线,稳一点总没错。
发表回复