Skip to content

免费开源的支付网关,支持支付宝、微信、云闪付等通道,提供收单、退款、对账、分账等功能,通过HTTP方式进行调用,不与其他系统产生耦合关联,可以快速集成到各种系统中,提供可视化界面进行管理,便于实现统一的支付信息管理。

License

Notifications You must be signed in to change notification settings

dromara/dax-pay

Repository files navigation

star Build Status Build Status Downloads

Dromara Dax-Pay(单商户多应用版)

❗使用须知

DaxPay是一款基于Apache License 2.0协议分发的开源软件,受中华人民共和国相关法律法规的保护和限制,可以在符合《用户授权使用协议》《Apache License 2.0》开源协议情况下进行免费使用、学习和交流。在使用前请阅读上述协议,如果不同意请勿进行使用。

🍈项目介绍

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

🧭 特色功能

  • 封装各类支付通道的接口为统一的接口,方便业务系统进行调用,简化对接多种支付方式的复杂度
  • 已对接微信支付支付宝云闪付相关的接口,并以扩展包的方式支持更多类型的通道
  • 支持多应用配置,可以同时对接多个支付通道账号,方便多个业务系统对接
  • 支持支付、退款、对账、分账等支付相关的能力
  • 提供HTTP方式接口调用能力,和Java版本的SDK,方便业务系统进行对接
  • 接口请求和响应数据支持启用签名机制,保证交易安全可靠
  • 提供管理端,方便运营人员进行管理和操作

📃 文档和源码地址

文档地址

DaxPay文档站 下的支付网关(DaxPay)模块下可以进行查阅相关文档,具体链接地址如下: 快速指南支付对接操作手册

项目地址

项目 GITEE GITHUB GITCODE
后端地址 GITEE GITHUB GITCODE
Web前端地址 GITEE GITHUB
H5前端地址 GITEE GITHUB

🏬 系统演示

管理平台:

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

地址:https://single.web.daxpay.cn

账号:daxpay

密码:daxpay123

🥞 核心技术栈

名称 描述 版本要求
Jdk Java环境 21+
Spring Boot 开发框架 3.3.x
Redis 分布式缓存 5.x版本及以上
MySQL/Postgresql 数据 MySQL8.x及以上/Postgresql 10及以上
Vue 前端框架 3.x

🛠️ 业务系统接入

业务系统想接入支付网关的话,不需要集成到业务系统里,只需要单独部署一份支付系统,然后业务系统通过接口调用即可拥有对应的支付能力, 不会对原业务系统的架构产生影响。如果是Java项目,可以使用SDK简化接入流程, 其他语言可以参照中的说明使用HTTP接口方式接入。

Java客户端SDK

SDK版本号与支付网关的版本保持一致,如果需要使用,请在pom.xml中添加如下依赖。SDK使用方式参考SDK使用说明

 <!-- 支付SDK -->
<dependency>
    <groupId>cn.daxpay.single</groupId>
    <artifactId>daxpay-single-sdk</artifactId>
    <version>${latest.version}</version>
</dependency>

SDK调用示例

package org.dromara.daxpay.test;

import cn.daxpay.single.sdk.code.SignTypeEnum;
import cn.daxpay.single.sdk.model.trade.pay.PayOrderModel;
import cn.daxpay.single.sdk.net.DaxPayConfig;
import cn.daxpay.single.sdk.net.DaxPayKit;
import cn.daxpay.single.sdk.param.trade.pay.PayQueryParam;
import cn.daxpay.single.sdk.response.DaxPayResult;
import cn.daxpay.single.sdk.util.JsonUtil;
import org.junit.Before;
import org.junit.Test;

/**
 * 统一支付接口
 * @author xxm
 * @since 2024/2/5
 */
public class PayOrderTest {

    @Before
    public void init() {
        // 初始化支付配置
        DaxPayConfig config = DaxPayConfig.builder()
                .serviceUrl("http://127.0.0.1:9999")
                .signSecret("123456")
                .appId("M7934041241299655")
                .signType(SignTypeEnum.HMAC_SHA256)
                .build();
        DaxPayKit.initConfig(config);
    }

     /**
     * 支付宝支付(二维码扫码)
     */
    @Test
    public void aliPayQrPay() {
        PayParam param = new PayParam();
        param.setClientIp("127.0.0.1");
        param.setBizOrderNo("SDK_"+ System.currentTimeMillis());
        param.setTitle("测试支付宝扫码支付");
        param.setDescription("这是支付宝扫码支付");
        param.setAmount(BigDecimal.valueOf(10));
        param.setChannel(ChannelEnum.ALI.getCode());
        param.setMethod(PayMethodEnum.QRCODE.getCode());
        param.setAttach("{回调参数}");
        param.setAllocation(false);
        param.setReturnUrl("https://abc.com/returnurl");
        param.setNotifyUrl("http://127.0.0.1:10880/test/callback/notify");

        DaxPayResult<PayResultModel> execute = DaxPayKit.execute(param);
        System.out.println(JsonUtil.toJsonStr(execute));
    }
}

🍎 系统截图

PC收银台演示(旧版)

移动端收银演示

支付通道配置

开发联调功能

对账单文件

🛣️ 路线图

当前开发进度和任务池

历史更新记录

🥪 关于我们

扫码加入QQ交流群

交流二群: 598644350

扫码加入钉钉交流群: 加群连接

微信扫码加小助手拉群: sdcit2020

微信图片_20240226144703

Star History

Stargazers over time

🍻 鸣谢

感谢 JetBrains 提供的免费开源 License:

JetBrains

感谢其他提供灵感和思路的开源项目

部分参考的开源项目和开源许可列表

🍷License

Apache License Version 2.0

About

免费开源的支付网关,支持支付宝、微信、云闪付等通道,提供收单、退款、对账、分账等功能,通过HTTP方式进行调用,不与其他系统产生耦合关联,可以快速集成到各种系统中,提供可视化界面进行管理,便于实现统一的支付信息管理。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages