一款免費(fèi)開源的支付系統(tǒng)
項(xiàng)目介紹
DaxPay是一套開源支付網(wǎng)關(guān)系統(tǒng),已經(jīng)對(duì)接支付寶、微信支付、云閃付相關(guān)的接口??梢元?dú)立部署,提供接口供業(yè)務(wù)系統(tǒng)進(jìn)行調(diào)用,不對(duì)原有系統(tǒng)產(chǎn)生影響。
特色功能
- 封裝各類支付通道的接口為統(tǒng)一的接口,方便業(yè)務(wù)系統(tǒng)進(jìn)行調(diào)用,簡(jiǎn)化對(duì)接多種支付方式的復(fù)雜度
- 已對(duì)接微信支付、支付寶和云閃付相關(guān)的接口,后續(xù)版本將支持V3版本的接口
- 支持支付、退款、對(duì)賬、分賬等支付相關(guān)的能力
- 提供HTTP方式接口調(diào)用能力,和Java版本的SDK,方便業(yè)務(wù)系統(tǒng)進(jìn)行對(duì)接
- 接口請(qǐng)求和響應(yīng)數(shù)據(jù)支持啟用簽名機(jī)制,保證交易安全可靠
- 提供管理平臺(tái),方便運(yùn)營(yíng)人員進(jìn)行管理和操作,不需要懂IT技術(shù)也可以輕松使用
- 提供聚合支付、電腦收銀臺(tái)和手機(jī)收銀臺(tái)的演示模塊,供開發(fā)者參考其實(shí)現(xiàn)支付功能的邏輯
核心技術(shù)棧
業(yè)務(wù)系統(tǒng)接入
業(yè)務(wù)系統(tǒng)想接入支付網(wǎng)關(guān)的話,不需要集成到業(yè)務(wù)系統(tǒng)里,只需要單獨(dú)部署一份支付系統(tǒng),然后業(yè)務(wù)系統(tǒng)通過接口調(diào)用即可擁有對(duì)應(yīng)的支付能力, 不會(huì)對(duì)原業(yè)務(wù)系統(tǒng)的架構(gòu)產(chǎn)生影響。如果是Java項(xiàng)目,可以使用SDK簡(jiǎn)化接入流程, 其他語言可以參照中的說明使用HTTP接口方式接入。
1.Java客戶端SDK
SDK版本號(hào)與支付網(wǎng)關(guān)的版本保持一致,如果需要使用,請(qǐng)?jiān)趐om.xml中添加如下依賴。
<!-- 支付SDK -->
<dependency>
<groupId>cn.daxpay.single</groupId>
<artifactId>daxpay-single-sdk</artifactId>
<version>${latest.version}</version>
</dependency>
此處以支付接口為例,演示業(yè)務(wù)系統(tǒng)如何調(diào)用支付網(wǎng)關(guān)進(jìn)行支付,其他接口的調(diào)用方式類似,具體請(qǐng)參考支付對(duì)接。
/**
* 統(tǒng)一支付接口
* @author xxm
* @since 2024/2/5
*/
public class PayOrderTest {
@Before
public void init() {
// 初始化支付配置
DaxPayConfig config = DaxPayConfig.builder()
.serviceUrl("http://127.0.0.1:9000")
.signSecret("123456")
.signType(SignTypeEnum.HMAC_SHA256)
.build();
DaxPayKit.initConfig(config);
}
/**
* 支付
*/
@Test
public void pay() {
PayParam param = new PayParam();
param.setClientIp("127.0.0.1");
param.setBizOrderNo("P0004");
param.setTitle("測(cè)試接口支付");
param.setChannel(PayChannelEnum.ALI.getCode());
DaxPayResult<PayModel> execute = DaxPayKit.execute(param);
System.out.println(JSONUtil.toJsonStr(execute));
}
}
系統(tǒng)截圖
收銀臺(tái)演示:
駕駛艙:
H5收銀臺(tái)演示:
支付通道配置:
開源地址:https://gitee.com/dromara/dax-pay