欢迎新晋开源支付网关,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

相关推荐
油泼辣子多加18 分钟前
2024年12月18日Github流行趋势
github
hunteritself24 分钟前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
超爱吃士力架41 分钟前
邀请逻辑
java·linux·后端
AskHarries3 小时前
Spring Cloud OpenFeign快速入门demo
spring boot·后端
pubuzhixing3 小时前
开源白板新方案:Plait 同时支持 Angular 和 React 啦!
前端·开源·github
isolusion4 小时前
Springboot的创建方式
java·spring boot·后端
zjw_rp4 小时前
Spring-AOP
java·后端·spring·spring-aop
TodoCoder4 小时前
【编程思想】CopyOnWrite是如何解决高并发场景中的读写瓶颈?
java·后端·面试
凌虚5 小时前
Kubernetes APF(API 优先级和公平调度)简介
后端·程序员·kubernetes
机器之心6 小时前
图学习新突破:一个统一框架连接空域和频域
人工智能·后端