适合自建聚合支付平台、SaaS 支付中台、多商户支付系统以及电商 / 零售 / 本地生活 / 数字内容等业务的支付接入与二次开发
点击空白处退出提示
适合自建聚合支付平台、SaaS 支付中台、多商户支付系统以及电商 / 零售 / 本地生活 / 数字内容等业务的支付接入与二次开发
1、支付网关
统一下单 API:基于 HTTP 的标准接口,业务系统传入应用 ID、支付方式、金额、订单号即可发起支付,无需关心背后是哪个渠道
查询 / 关单 / 退款 / 转账 / 分账:配套接口齐全,支持部分退款与原路退回
异步回调通知:支付结果通过 MQ 驱动,异步通知业务系统与商户,带重发机制
签名验签:接口请求与响应均采用签名机制,保障交易防篡改
聚合收银台:统一扫码页,根据用户端 UA 自动判断微信 / 支付宝 / 云闪付并路由到对应渠道下单
2、运营平台
商户与服务商管理:商户入驻、审核启停、服务商列表与配置
支付配置:支付接口(通道)配置、支付方式管理、通道参数配置——渠道接口参数由系统自动化生成配置界面,降低接通道的人工成本
订单管理:支付订单、退款订单、转账订单的查询与核对;商户通知记录可查重发
系统管理:操作员与角色权限(基于 Spring Security)、系统配置、操作日志
数据统计:今日 / 昨日 / 近七日交易金额与笔数
支付测试:内置各渠道各支付方式的联调测试入口
3、商户系统
多应用管理:一个商户可建多个应用,每个应用独立的应用密钥与支付参数
支付参数配置:自助配置各通道支付参数
订单与交易统计:本商户的支付 / 退款 / 转账订单,交易金额与笔数图表
分账管理:分账接收方账号组管理、分账记录查询
子账号体系:操作员管理、角色管理,商户内部权限隔离
项目主要使用Spring Boot、Spring Security(认证与权限)、MyBatis-Plus以及分布式缓存,消息队列主要采用RocketMQ / ActiveMQ / RabbitMQ 三选一可切换,经自研 MQ 组件层抽象。前端主要使用Vue 3 + Ant Design Vue实现前后端分离场景。
实现亮点
渠道适配可插拔:所有渠道实现统一支付接口规范,新增一个通道 = 新增一个适配器实现 + 后台配置,核心流程零改动
双协议兼容:微信同时兼容 V2(XML)与 V3(JSON + 证书/平台证书验签),支付宝同时兼容 RSA / RSA2——同一套上层代码消化底层协议差异
可靠通知:商户通知走 MQ 异步 + 状态机 + 重发,避免同步回调阻塞支付主流程,通知记录可查可补
安全设计:接口全链路签名验签、商户密钥独立、Spring Security 细粒度权限(操作员 / 角色两级)
工程化:前后端分离、Docker Compose 一键起完整集群、多 MQ 多部署形态,模块边界清晰适合团队分工二开
实现难点
渠道差异的抽象成本:每家渠道的下单参数、签名方式、回调格式、错误码体系都不同,难点不在"接上",而在提炼出一层稳定的统一领域模型(订单 / 渠道 / 支付方式)让上层完全不感知差异
资金安全与状态一致性:支付订单是典型的状态机场景——重复回调、渠道与本地状态不一致、掉单补偿,都要求幂等设计与状态流转的严谨性;这也是对账模块存在的原因
回调可靠性:通知丢了业务方就以为没支付,MQ 重发 + 通知记录 + 手动补发是必须的兜底
分账与转账的资金链路:接收方账号校验、比例合法性、分账时机(需等订单结算)都比普通支付多一层约束



评论