欢迎新晋开源支付网关,Dromara DaxPay

作者介绍

  • 名称:喵呀
  • dromara 开源组织成员,dromara/dax-pay 作者
  • 支付行业新兵,Java高级开发工程师,开发、设计、运维多面手
  • 一枚新济南人,热爱逛各地的博物馆,热爱追寻各种历史古迹
  • 个人空间:gitee.com/GIotEE

背景

在平时对接三方支付时,尤其需要对接多家支付的时候,是不是有以下痛点:

  1. 各家支付系统的调用方式、返回参数、数据签名、回调格式等都不尽相同,对接时互相之间无法复用
  2. 各家支付系统提供的支付能力不尽相同,有时候业务系统为了对客户展现的功能一致,需要写大量的适配代码才能实现
  3. 支付订单、退款订单、回调记录、订单关闭、对账分账等必要功能都需要进行实现,需要考虑各种场景才能保证不出问题
  4. 有时候业务上需要支持一些扩展的支付类型,如要支持钱包支付、支持多种支付方式进行组合支付、支持聚合支付实现一码通扫等

如果你遇到这些问题,Dromara DaxPay(开源支付网关)或许能帮助到你:

​ 它是Dromara开源社区旗下新晋的一款开源支付网关系统,将各种支付通道(如支付宝、微信、云闪付等)的调用方式进行抽象统一,隐藏开发者不需要关注的细节,只需要一份代码就可以与多家支付通道对接。DaxPay独立部署,提供独立的管理界面,不侵入业务系统也不需要业务系统进行改造,只需要通过http进行调用就拥有相应的支付能力。除了对各类三方支付系统进行了对接,还对常用的支付方式进行了扩展,支持聚合支付、组合支付、钱包支付等功能。

系统亮点

  • 基于Spring BootVue3主流技术栈,方便对系统进行扩展和改造
  • 已对接微信支付支付宝支付的接口,后续版本将支持V3版本支付接口,以及云闪付PayPal等更多类型的支付通道
  • 对接各类支付通道对外提供统一的接口,简化支付对接的复杂度,也方便后期快速替换或增加新的支付通道
  • 提供钱包支付现金支付储值卡支付等扩展支付方式,同时支持组合支付,满足业务系统多样的支付场景
  • 提供Java版本的SDK工具包,简化业务系统对接流程,同时也可以使用HTTP方式进行接口调用,保证了更低的耦合性和通用性
  • 请求、响应、回调数据都支持启用签名机制,可根据实际需要进行开关,保证交易的安全可靠
  • 提供管理平台,可以对各类订单、记录、配置进行便捷的操作,方便运营人员进行支付业务的管理
  • 提供聚合支付电脑收银台手机收银台的演示模块,供开发者参考其实现支付功能的逻辑
  • 系统源码为商业友好的Apache-2.0协议,文档为更加宽松的MIT协议,不需要担心后续代码和文档会突然进行收费

使用说明

此处以使用SKD对接简单支付接口为例,演示业务系统如何通过SDK快速接入到支付网关中

引入SDK

xml 复制代码
<!-- 支付SDK路径 -->
<dependency>
    <groupId>cn.bootx.platform</groupId>
    <artifactId>daxpay-single-sdk</artifactId>
    <version>${latest.version}</version>
</dependency>

调用代码

java 复制代码
package cn.bootx.platform.daxpay.sdk;

import cn.bootx.platform.daxpay.sdk.code.PayChannelEnum;
import cn.bootx.platform.daxpay.sdk.code.PayWayEnum;
import cn.bootx.platform.daxpay.sdk.model.PayOrderModel;
import cn.bootx.platform.daxpay.sdk.net.DaxPayConfig;
import cn.bootx.platform.daxpay.sdk.net.DaxPayKit;
import cn.bootx.platform.daxpay.sdk.param.pay.SimplePayParam;
import cn.bootx.platform.daxpay.sdk.response.DaxPayResult;
import org.junit.Before;
import org.junit.Test;

/**
 * 简单支付
 * @author xxm
 * @since 2024/2/2
 */
public class SimplePayOrderTest {

    @Before
    public void init() {
        // 初始化支付配置
        DaxPayConfig config = DaxPayConfig.builder()
                .serviceUrl("http://127.0.0.1:9000")
                // 需要跟网关中配置一致
                .signSecret("123456")
                .build();
        DaxPayKit.initConfig(config);
    }

    @Test
    public void simplePay() {
        // 简单支付参数
        SimplePayParam param = new SimplePayParam();
        param.setBusinessNo("P0001");
        param.setAmount(1);
        param.setTitle("测试支付宝支付");
        // 支付宝扫码支付
        param.setChannel(PayChannelEnum.ALI.getCode());
        param.setPayWay(PayWayEnum.QRCODE.getCode());

        // 如果切换为微信扫码支付, 只需要更改一下通道编码参数即可,
        // param.setChannel(PayChannelEnum.ALI.getCode());

        DaxPayResult<PayOrderModel> execute = DaxPayKit.execute(param, true);
        PayOrderModel data = execute.getData();
        // 打印用于扫码使用的
        System.out.println(data.getPayBody());
    }
}

项目和演示地址

源码地址

项目 GITEE GITHUB
后端地址 gitee.com/dromara/dax... github.com/dromara/dax...
Web前端地址 gitee.com/bootx/dax-p... github.com/xxm1995/dax...
H5前端地址 gitee.com/bootx/dax-p... github.com/xxm1995/dax...

管理平台:

注:演示账号部分功能修改删除权限未开放。

地址:daxpay.demo.bootx.cn 账号:daxpay 密码:123456

网关接口

注:接口平台只开放支付网关相关的接口,不开放系统其他接口。

地址: daxpay.server.bootx.cn/doc.html 账号: daxpay 密码: 123456

收银台

请勿大额支付,可以通过后台管理平台进行退款

电脑收银台地址: daxpay.demo.bootx.cn/#/cashier

手机收银台地址: daxpay.demo.bootx.cn/h5/#/cashie...

沟通交流

一个人的能力总是有限的,非常欢迎大家能够一起来交流,一起成长!!!

QQ群号: 939414255

相关推荐
程序员爱钓鱼2 小时前
Go语言实战案例-创建模型并自动迁移
后端·google·go
javachen__2 小时前
SpringBoot整合P6Spy实现全链路SQL监控
spring boot·后端·sql
uzong7 小时前
技术故障复盘模版
后端
GetcharZp8 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
桦说编程8 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研8 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi8 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
阿华的代码王国10 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Jimmy10 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
草梅友仁10 小时前
草梅 Auth 1.4.0 发布与 ESLint v9 更新 | 2025 年第 33 周草梅周报
vue.js·github·nuxt.js