DaxPay 支付网关 V2.0.6: 重构简化,轻装再出发

来源: 投稿
作者: Bootx
2024-05-17 08:28:00

DaxPay v2.0.6发布: 重构简化,轻装再出发

项目介绍

DaxPayDromara开源社区旗下一套开源支付网关系统,已经对接支付宝、微信支付、云闪付相关的接口。独立部署,提供接口供业务系统进行调用,不对原有系统产生影响。

源码地址

项目 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收银台

微信截图_20240513192801

驾驶舱

微信截图_20240514205633

支付订单

微信截图_20240514202014

订单详情

微信截图_20240514202144

分账组

微信截图_20240514205302

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
6 收藏
分享
返回顶部
顶部