Dromara Dax-Pay(開源支付系統)
❗使用須知
DaxPay
是一款基於
Apache License 2.0
協定分發的開源軟體,受中華人民共和國相關法律法規的保護和限制,可以在符合【使用者授權使用協定】和 【Apache License 2.0】開源協定情況下進行免費使用、學習和交流。
在使用前請閱讀上述協定,如果不同意請勿進行使用。
🍈計畫介紹
DaxPay是一套基於Bootx-Platform腳手架構建的開源支付閘道器系統,已經對接支付寶、微信支付相關的介面,以及擴充套件了錢包支付、儲值卡支付、現金支付等新的支付方式。可以獨立部署,提供介面供業務系統進行呼叫,不對原有系統產生影響
🧭 特色功能
封裝各類支付通道的介面為統一的介面,方便業務系統進行呼叫,簡化對接多種支付方式的復雜度
已對接
微信支付
和
支付寶
相關的介面,目前已經支持
V2
版本的介面,後續版本將支持
V3
版本的介面
支持組合支付,滿足使用者系統需要多種方式同時進行支付的場景。
提供
HTTP
方式介面呼叫能力,和
Java
版本的
SDK
,方便業務系統進行對接
介面請求和響應數據支持啟用簽名機制,可根據實際需要進行開關,保證交易安全可靠
提供管理平台,方便營運人員進行管理和操作,不需要懂IT技術也可以輕松使用
提供
聚合支付
、
電腦收銀台
和
手機收銀台
的演示模組,供開發者參考其實作支付功能的邏輯
🥞 核心技術棧
名稱 | 描述 | 版本要求 |
---|---|---|
Jdk | Java環境 | 1.8+,11版本可以正常使用,但17+版本暫不支持 |
Spring Boot | 開發框架 | 2.7.x |
Redis | 分布式緩存 | 5.x版本及以上 |
MySQL | 資料庫 | 基於5.7.X版本開發,基本支持8.x版本 |
Vue | 前端框架 | 3.x |
IJpay | 支付SDK開發包 | 計畫自動管理,不需要額外處理 |
🛠️ 業務系統接入
業務系統想接入支付閘道器的話,不需要整合到業務系統裏,只需要單獨部署一份支付系統,然後業務系統透過介面呼叫即可擁有對應的支付能力, 不會對原業務系統的架構產生影響。如果是Java計畫,可以使用SDK簡化接入流程, 其他語言可以參照中的說明使用HTTP介面方式接入。
Java客戶端SDK
SDK版本號與支付閘道器的版本保持一致,如果需要使用,請在pom.xml中添加如下依賴。SDK使用方式參考SDK使用說明。
<!-- 支付SDK -->
<dependency>
<groupId>cn.bootx.platform</groupId>
<artifactId>daxpay-single-sdk</artifactId>
<version>${latest.version}</version>
</dependency>
SDK呼叫範例
此處以簡單支付介面為例,演示業務系統如何呼叫支付閘道器進行支付,其他介面的呼叫方式類似,具體請參考支付對接。
packagecn.bootx.platform.daxpay.sdk;
importcn.bootx.platform.daxpay.sdk.code.PayChannelEnum;
importcn.bootx.platform.daxpay.sdk.code.PayWayEnum;
importcn.bootx.platform.daxpay.sdk.model.PayOrderModel;
importcn.bootx.platform.daxpay.sdk.net.DaxPayConfig;
importcn.bootx.platform.daxpay.sdk.net.DaxPayKit;
importcn.bootx.platform.daxpay.sdk.param.pay.SimplePayParam;
importcn.bootx.platform.daxpay.sdk.response.DaxPayResult;
importorg.junit.Before;
importorg.junit.Test;
/**
* 簡單支付
* @author xxm
* @since 2024/2/2
*/
public classSimplePayOrderTest{
@Before
publicvoidinit(){
// 初始化支付配置
DaxPayConfigconfig=DaxPayConfig.builder()
.serviceUrl("http://127.0.0.1:9000")
// 需要跟閘道器中配置一致
.signSecret("123456")
.signType(SignTypeEnum.HMAC_SHA256)
.build();
DaxPayKit.initConfig(config);
}
@Test
publicvoidsimplePay(){
// 簡單支付參數
SimplePayParamparam=newSimplePayParam();
param.setBusinessNo("P0001");
param.setAmount(1);
param.setTitle("測試支付寶支付");
param.setChannel(PayChannelEnum.ALI.getCode());
param.setPayWay(PayWayEnum.QRCODE.getCode());
DaxPayResult<PayOrderModel>execute=DaxPayKit.execute(param,true);
System.out.println(execute);
PayOrderModeldata=execute.getData();
System.out.println(data);
}
}
🍎 系統截圖
H5收銀台演示
支付演示
收銀台演示
支付通道配置
🛣️ 路線圖
當前處於功能開發階段,部份功能可能會有調整,
V2.1.0
時將作為正式生產可用版本進行釋出,之後會保證系統版本非大版本升級時,API介面和數據介面向前相容
開發進度和任務池
更新記錄
2.0.X版本:
對賬比對功能實作
支持轉賬、分賬操作
雲閃付支付支持
支付寶和微信增加V3版本介面支持
訊息通知支持訊息中介軟體模式
2.1.X版本:
增加帳戶金額表
增加統計管理
支持微信訊息通知
支持釘釘訊息通知
新增支付單預警功能, 處理支付單與閘道器狀態不一致且無法自動修復的情況
歡迎關註本公眾帳號,回復數位3,檢視相關原始碼