當前位置: 妍妍網 > 碼農

地表最強免費開源的支付閘道器

2024-03-17碼農

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,檢視相關原始碼