一款免费的支付系统,支持支付宝、微信、云闪付等通道,为企业和个人提供便捷支付服务(带私活源码)

 前言

在当今数字化经济快速发展的时代,支付系统的稳定性和易用性成为各行业业务发展的重要支撑。然而,传统支付系统的复杂度高、对接成-本大,以及维护难度高等问题,使得许多开发者和企业望而却步。

为了应对这些挑战,DaxPay应运而生——一款旨在简化支付集成过程、降低开发成-本的开源支付系统。

图片

介绍

DaxPay是一款专注于为企业和个人提供便捷支付服务的免费开源平台。它支持多种主流支付渠道,如支付宝、微-信支付、云闪付等,并提供了收单、退款、聚合支付、对账、分账等一系列完整的支付功能。

通过HTTP接口调用的方式,DaxPay确保了与现有系统的低耦合度,便于快速集成和部署。同时,它还配备了一个直观的管理界面,方便运营人员进行日常管理和操作。

特点

  • 统一接口:将不同支付通道的API封装为一个标准化接口,极大地方便了业务系统的调用,减少了对接多个支付方式带来的复杂性。

  • 多通道支持:不仅预集成了常见的支付方式,还允许以扩展包的形式轻松添加新的支付通道。

  • 多应用配置:能够同时处理来自多个支付通道账户的请求,满足大型企业或集团内多个子系统的需求。

  • 丰富的功能覆盖:涵盖支付、退款、对账、分账等所有必要的支付相关能力。

  • 安-全可靠:接口请求和响应数据均支持签名机制,保障交易的安-全性。

  • 易于集成:除了HTTP接口外,还提供了Java SDK,进一步简化了接入流程。

图片

技术架构

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

部署方式

DaxPay的设计理念是尽量减少对原有业务系统的干扰。因此,用户只需单独部署DaxPay服务端,然后通过HTTP接口或Java SDK将其集成到自己的业务逻辑中即可。对于非Java项目,也可以直接使用HTTP API完成对接。

Java客户端SDK

为了方便Java项目的集成,DaxPay提供了专门的SDK。只需在pom.xml中添加以下依赖项:

<dependency>
    <groupId>org.dromara.daxpay</groupId>
    <artifactId>daxpay-single-sdk</artifactId>
    <version>${latest.version}</version>
</dependency>
SDK调用示例

下面是一个简单的支付订单创建示例:

package org.dromara.daxpay.single.sdk.test.trade;

import org.dromara.daxpay.single.sdk.code.ChannelEnum;
import org.dromara.daxpay.single.sdk.code.PayMethodEnum;
import org.dromara.daxpay.single.sdk.code.SignTypeEnum;
import org.dromara.daxpay.single.sdk.model.trade.pay.PayResultModel;
import org.dromara.daxpay.single.sdk.net.DaxPayConfig;
import org.dromara.daxpay.single.sdk.net.DaxPayKit;
import org.dromara.daxpay.single.sdk.param.channel.AlipayParam;
import org.dromara.daxpay.single.sdk.param.channel.WechatPayParam;
import org.dromara.daxpay.single.sdk.param.trade.pay.PayParam;
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
import org.dromara.daxpay.single.sdk.util.JsonUtil;
import org.dromara.daxpay.single.sdk.util.PaySignUtil;
import org.junit.Before;
import org.junit.Test;

import java.math.BigDecimal;

public class PayOrderTest {

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

    @Test
    public void wxQrPay() {
        PayParam param = new PayParam();
        param.setClientIp("127.0.0.1");
        param.setBizOrderNo("SDK_" + System.currentTimeMillis());
        param.setTitle("测试微-信扫码支付");
        param.setDescription("这是支付备注");
        param.setAmount(BigDecimal.valueOf(1.00));
        param.setChannel(ChannelEnum.WECHAT.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));
        System.out.println(PaySignUtil.hmacSha256Sign(execute, "123456"));
    }
}

基础环境搭建

数据库
  1. 启动MySQL或Postgresql实例。

  2. 在数据库中创建名为dax-pay的新库,确保字符集为utf8mb4(MySQL)或UTF8(Postgresql)。

  3. _config/sql/dax-pay.sql脚本导入新创建的数据库中。

Redis

启动Redis服务,并记录下连接信息以便后续配置。

项目下载
后端

仓库: git clone https://gitee.com/dromara/dax-pay

PC前端

仓库: git clone https://gitee.com/bootx/dax-pay-ui.git

H5前端

仓库: git clone https://gitee.com/bootx/dax-pay-h5.git

项目启动

后端
  1. 导入项目至IDEA,等待Maven自动下载依赖。

  2. 修改daxpay-single-server模块下的配置文件,更新数据库和Redis的连接信息。

  3. 运行DaxpayServer类中的main方法启动应用。

PC前端
  1. 确认Node.js (v18.12.0+) 和 pnpm (v9.0.2+) 已正确安装。

  2. 使用Vs Code或WebStorm打开项目,依次执行以下命令:

    • 安装依赖: pnpm install

    • 启动开发服务器: pnpm run dev

H5前端

  1. 确保Node.js (v18+) 和 pnpm (v8.6.10+) 已正确安装。

  2. 使用Vs Code或WebStorm打开项目,依次执行以下命令:

    • 安装依赖: pnpm install

    • 启动开发服务器: pnpm run dev

本地调试

由于支付涉及到第三方网关交互及域名限制,建议采用如下方式进行本地调试:

  1. 准备内网穿透:使用工具如ngrok或frp实现本地服务对外网的访问。

  2. Nginx配置:设置反向代理规则,将外部请求转-发给本地的服务端和H5前端。

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8888;
        server_name  www.daxpay.cn;
        
        location ^~/h5 {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_buffering on;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass  http://localhost:9100/h5;
        }
        
        location /server/ {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_buffering on;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass  http://localhost:9999/;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html { 
            root   html;
        }
    }
}
  1. H5前端配置:调整.env.development文件中的变量,指-定正确的根路径和服务端API前缀。

VITE_PORT=9100
VITE_PUBLIC_PATH=/h5
VITE_GLOB_API_URL=
VITE_GLOB_API_URL_PREFIX=/server
VITE_V_CONSOLE=true

开源协议

DaxPay遵循Apache License 2.0协议发布。

即刻体验

DaxPay不仅提供了一套完整的支付处理方案,还特别注重用户体验和操作便捷性。下面我们将详细介绍一些核心功能,并通过图文结合的方式,帮助您快速上手并充分利用DaxPay的强大特性。

支持支付配置

支付通道:轻松添加和管理支付宝、微-信支付、云闪付等主流支付渠道,确保您的业务能够覆盖更广泛的用户群体。

支付方式:根据不同场景选择合适的支付方式,如二维码支付、H5支付、APP支付等,满足多样化的需求。

接口信息:为每个支付通道配置相应的API密钥和其他必要参数,保障交易的安-全性和稳定性。

订阅通知:设置回调URL以接收支付结果的通知,及时更新订单状态,提高客户满意度。

图片

图片

商户管理

应用信息:创建和管理多个应用账户,为不同的业务系统分配独立的支付权限,便于集中管理和统计分析。

图片

订单管理

支付订单:实时查看和管理所有支付订单的状态,包括待支付、已支付、支付失败等,确保每一笔交易都得到妥善处理。

退款订单:当需要时,可以发起退款请求,支持部分或全额退款,简化售后服务流程。

转账订单:对于涉及资金转移的业务,DaxPay同样提供了便捷的转账功能。

图片

图片

图片

交易记录

回调记录:记录每次支付回调的结果,方便排查问题和进行数据分析。

交易流水:详细展示每笔交易的具体信息,包括时间、金额、支付方式等,帮助您掌握资金流动情况。

关闭记录:对于未完成的交易,可以选择手动关闭,避免不必要的资源占用。

同步记录:保持与第三方支付平台的数据同步,确保本地记录与实际交易一致。

图片

图片

图片

商户通知

订阅消息:根据需求订阅特定类型的支付事件通知,如支付成功、退款完成等,获取重要信息。

回调消息:自定义回调逻辑,将支付结果及时反馈给业务系统,实现自动化处理。

图片

图片

对账管理

对账文件下载:定期生成对账文件,包含详细的交易信息,方便与银-行或支付机构进行核对。

自动对账:集成智-能对账功能,自动比对交易记录,快速发现差异并标记异常,降低人工成-本。

图片

图片

结语

DaxPay凭借其简洁的设计、丰富的特性和强大的性能,已经成为众多企业和开发者的考虑的支付系统。

如果您正在寻找一种高-效且可靠的支付集成方案,不妨试试DaxPay,相信它会给您的项目带来意想不到的便利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值