DaxPay v2.0.6发布: 重构简化,轻装再出发
项目介绍
DaxPay
是Dromara开源社区
旗下一套开源支付网关系统,已经对接支付宝、微信支付、云闪付相关的接口。独立部署,提供接口供业务系统进行调用,不对原有系统产生影响。
源码地址
项目 | GITEE | GITHUB |
---|---|---|
后端地址 | https://gitee.com/dromara/dax-pay | https://github.com/dromara/dax-pay |
Web前端地址 | https://gitee.com/bootx/dax-pay-ui | https://github.com/xxm1995/dax-pay-ui |
H5前端地址 | https://gitee.com/bootx/dax-pay-h5 | https://github.com/xxm1995/dax-pay-h5 |
系统亮点
- 封装各类支付通道的接口为统一的接口,方便业务系统进行调用,简化对接多种支付方式的复杂度
- 已对接
微信支付
、支付宝
和云闪付
相关的接口 - 支持支付、退款、对账、分账等支付相关的能力
- 提供
HTTP
方式接口调用能力,和Java
版本的SDK
,方便业务系统进行对接 - 接口请求和响应数据支持启用签名机制,保证交易安全可靠
- 提供管理平台,方便运营人员进行管理和操作
- 提供
聚合支付
、电脑收银台
和手机收银台
的演示模块,供开发者参考其实现支付功能的逻辑 - 系统源码为商业友好的
Apache-2.0
协议,文档为更加宽松的MIT
协议,不需要担心后续代码和文档会突然进行收费
重构和更新说明
本次重构前的
DaxPay
存在一些设计思路上的问题,如为了与其他支付系统做出不一样的东西,引入了组合支付的概念,导致为了解决极少数的场景而付出增加了翻倍的复杂度。以及前后开发考虑的不同,系统中各类概念、过度设计、命名不统一随处可见,对阅读源码和二次开发产生了极大的障碍。经过和社区交流群讨论,以及对多商户版设计中确定的思路,决定对单商户版进行瘦身,专注小微商户和开发者需求,以及作为多商户版的验证前哨,进行一次大的系统重构,来更好应对后续的演进。
订单概念简化
- 去除通道支付订单概念,不再存在多级订单,从一对多简化为一对一
- 去除通道退款概念,只与支付订单产生关联,不再与通道支付订单有任何联系,退款单也回归一对一关系
- 支付和退款相关的回调记录、关闭记录、同步记录等,关联关系都简化为一对多,不再存在多对多的关系
- 对各类交易号生成规则进行优化,由原有的雪花ID更改为有具体业务含义的编号
支付流程简化
- 去除组合支付概念,牺牲5%的适用场景换取了业务复杂度下降50%,代码量下降30%
- 简化支付链路长度和分支数,去除部分过度使用的设计模式,使代码更容易入手
- 支付同步、回调和退款同步、回调去除组合支付导致的特殊处理逻辑
- 消息通知发送流程改造,不在使用复杂继承组合关系,只保留一级类继承关系
- 回调通知处理不再使用继承模式,修改为组合模式,提高阅读和debug的便利性
对账流程优化
- 将原有晦涩的流程进行简化抽象位对账单和对账差异两块
- 保存从三方支付机构下载下来的原始对账文件,并提供下载功能
- 支持下载系统交易账单、对账差异明细单来就进行线下对账
分账自动化
- 支持自动根据默认分账组队支付完成的订单进行分账
- 支持自动同步对账结果,并自动对分账单进行完结
统一API接口风格
-
统一参数命名规则,包括支付、退款、对账、分账等相关参数的属性,实现风格的统一
-
统一公共请求参数和响应参数,同时响应参数格式,便于进行统一处理
-
对响应参数默认进行签名,避免被中间人篡改导致资金损失
-
初步统一异常返回格式,后续将各类异常码和异常信息进行统一
前端交互优化
- 对85%支付相关的页面进行优化,统一页面交互逻辑
- 适配各种查询条件和显示,初步完成管理端的功能完备性
- 对金额进行统一,统一使用元作为显示单位,目前已完成完成80%
脚手架简化
- 从jar集成修改为源码集成
- 对无用模块进行剔除简化
系统前瞻
多商户版启动开发
针对于中大型项目,各类复杂的支付业务,能够实现多商户、多应用自主进件、收单;以及根据规则、自动选择最优的直连或间连通道进行收单;预计多商户版本将于第四季度发布,尽请期待!
- 基于Spring Boot3.X + JDK 21 + Postgresql搭建,拥抱新技术,适应后续Java新版本变化
- 引入商户、应用等概念,系统将会分为支付网关端、运营管理端、商户端,适应更复杂的业务场景
- 支付相关代码直接使用官方SDK,增加系统自主可控性
- 各类加密方式切换为国密算法,更方便适应国产化、安全可控的要求
- 底层脚手架重构,去除无关业务模块,重新设计系统模块,提高系统性能和操作便利性
- 更多特性在设计规划中
单商户后续演进
单商户版本定位于小微商户,中小企业开发者,可用于简单的收单、小型项目支付的组成、以及学习参考使用。同时也会对一些多商户版本的设计和功能进行先期验证。
-
支持支付宝和微信V3版本接口
-
支持撤销、转账等更多支付接口
-
增加微信通知、钉钉通知、飞书通知能力
-
支持服务商模式,以及一些间连通道,如通联支付、易宝支付等,更好适应小微收单场景
演示地址
管理平台:
注:演示账号部分功能修改删除权限未开放。
地址:https://daxpay.demo.bootx.cn 账号:daxpay 密码:123456
网关接口
注:接口平台只开放支付网关相关的接口,不开放系统其他接口。
地址: https://daxpay.server.bootx.cn/doc.html 账号: daxpay 密码: 123456
收银台
请勿大额支付,可以通过后台管理平台进行退款
电脑收银台地址: https://daxpay.demo.bootx.cn/#/cashier
手机收银台地址: https://daxpay.demo.bootx.cn/h5/#/cashier/uniCashier
系统展示
PC收银台
驾驶舱
支付订单
订单详情
分账组
沟通交流
一个人的能力总是有限的,非常欢迎大家能够一起来交流,一起成长!!!