随着公司业务的爆发式增长,原有的电商系统架构暴露出严重的局限性。初期为了快速上线,我们采用了“硬编码”方式在业务代码中直接调用支付宝、微信等第三方支付接口。
这种“烟囱式”的集成模式,在业务单一时尚可维持,但当我们需要接入更多的支付渠道(如宝付、连连支付等用于分账或跨境业务)、支持更复杂的支付场景时,原有的系统变得难以维护,甚至成为了业务发展的瓶颈。
点击空白处退出提示
随着公司业务的爆发式增长,原有的电商系统架构暴露出严重的局限性。初期为了快速上线,我们采用了“硬编码”方式在业务代码中直接调用支付宝、微信等第三方支付接口。
这种“烟囱式”的集成模式,在业务单一时尚可维持,但当我们需要接入更多的支付渠道(如宝付、连连支付等用于分账或跨境业务)、支持更复杂的支付场景时,原有的系统变得难以维护,甚至成为了业务发展的瓶颈。
“资金中心” —— 业务的支付中台
目标是将所有的支付能力进行抽象和下沉,构建一个稳定、可靠、可扩展的支付中台,对接10+个主流支付渠道。
系统设计亮点:
1,统一接入网关:
对外(业务方)提供一套标准的、无状态的RESTful API。业务系统只需告诉资金中心“我要付多少钱、用什么方式付”,无需关心背后调用的是微信还是支付宝。
2,路由引擎:
这是核心。系统会根据业务规则(如:消费金额、用户地域、是否为跨境交易)动态选择最合适的支付渠道。例如,大额走网联,跨境走连连,需要分账走宝付。
3,渠道适配器模式:
针对每个第三方支付(支付宝、微信、宝付等)编写独立的适配器。将第三方差异化的协议、加密方式、回调机制进行封装,对上游屏蔽复杂性。新增一个渠道只需新增一个适配器,实现“热插拔”。
4,完整的资金闭环:
从“下单预支付” -> “渠道受理” -> “异步通知” -> “明确结果的记账”,实现了全流程的监控。引入最终一致性的分布式事务方案,确保本地业务流水与第三方支付流水最终一致。
5,统一对账中心:
每天定时拉取各个渠道的账单,与系统内的交易流水进行自动勾兑。对于差异项(如单边账)自动触发补发或告警,极大减轻了财务和运营的压力。
“在资金中心项目中,我主要负责核心支付链路的编码与设计。在技术架构上,我有几个比较自豪的亮点:
第一,为了解决10+渠道的异构性,我设计了基于适配器模式的插件化架构。新增一个渠道就像插U盘一样,定义好实现类即可,极大地提升了扩展性。
第二,为了解决资金一致性这个老大难问题,我没有采用复杂的分布式事务,而是设计了本地消息表+定时补偿的方案。通过轮询扫描未决订单并调用渠道查单接口,实现了系统与第三方账单的最终一致,上线后单边账率几乎降为零。
第三,为了提升支付成功率,我负责开发了动态路由引擎。它会实时收集各个渠道的响应时间和成功率,结合业务规则(比如大额走网联)进行动态调度。在大促期间,这个机制帮助我们成功扛住了流量峰值,支付成功率保持在99%以上。
技术栈方面,我们采用了Spring Boot作为基础框架,Redis做分布式锁和热点数据缓存,RocketMQ处理异步通知和最终一致性,数据库用了MySQL并做了分库分表(根据商户ID或日期)来应对未来的数据量增长。”




评论