您现在的位置是:首页 > 文章详情

欢迎新晋开源支付网关,Dromara DaxPay

日期:2024-02-26点击:248

​ 作者介绍

  • 名称:喵呀
  • dromara 开源组织成员,dromara/dax-pay 作者
  • 支付行业新兵,Java高级开发工程师,开发、设计、运维多面手
  • 一枚新济南人,热爱逛各地的博物馆,热爱追寻各种历史古迹
  • 个人空间:https://gitee.com/GIotEE

背景

在平时对接三方支付时,尤其需要对接多家支付的时候,是不是有以下痛点:

  1. 各家支付系统的调用方式、返回参数、数据签名、回调格式等都不尽相同,对接时互相之间无法复用
  2. 各家支付系统提供的支付能力不尽相同,有时候业务系统为了对客户展现的功能一致,需要写大量的适配代码才能实现
  3. 支付订单、退款订单、回调记录、订单关闭、对账分账等必要功能都需要进行实现,需要考虑各种场景才能保证不出问题
  4. 有时候业务上需要支持一些扩展的支付类型,如要支持钱包支付、支持多种支付方式进行组合支付、支持聚合支付实现一码通扫等

如果你遇到这些问题,Dromara DaxPay(开源支付网关)或许能帮助到你:

​ 它是Dromara开源社区旗下新晋的一款开源支付网关系统,将各种支付通道(如支付宝、微信、云闪付等)的调用方式进行抽象统一,隐藏开发者不需要关注的细节,只需要一份代码就可以与多家支付通道对接。DaxPay独立部署,提供独立的管理界面,不侵入业务系统也不需要业务系统进行改造,只需要通过http进行调用就拥有相应的支付能力。除了对各类三方支付系统进行了对接,还对常用的支付方式进行了扩展,支持聚合支付、组合支付、钱包支付等功能。

系统亮点

  • 基于Spring BootVue3主流技术栈,方便对系统进行扩展和改造
  • 已对接微信支付支付宝支付的接口,后续版本将支持V3版本支付接口,以及云闪付PayPal等更多类型的支付通道
  • 对接各类支付通道对外提供统一的接口,简化支付对接的复杂度,也方便后期快速替换或增加新的支付通道
  • 提供钱包支付现金支付储值卡支付等扩展支付方式,同时支持组合支付,满足业务系统多样的支付场景
  • 提供Java版本的SDK工具包,简化业务系统对接流程,同时也可以使用HTTP方式进行接口调用,保证了更低的耦合性和通用性
  • 请求、响应、回调数据都支持启用签名机制,可根据实际需要进行开关,保证交易的安全可靠
  • 提供管理平台,可以对各类订单、记录、配置进行便捷的操作,方便运营人员进行支付业务的管理
  • 提供聚合支付电脑收银台手机收银台的演示模块,供开发者参考其实现支付功能的逻辑
  • 系统源码为商业友好的Apache-2.0协议,文档为更加宽松的MIT协议,不需要担心后续代码和文档会突然进行收费

使用说明

此处以使用SKD对接简单支付接口为例,演示业务系统如何通过SDK快速接入到支付网关中

引入SDK

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

调用代码

 package cn.bootx.platform.daxpay.sdk; import cn.bootx.platform.daxpay.sdk.code.PayChannelEnum; import cn.bootx.platform.daxpay.sdk.code.PayWayEnum; import cn.bootx.platform.daxpay.sdk.model.PayOrderModel; import cn.bootx.platform.daxpay.sdk.net.DaxPayConfig; import cn.bootx.platform.daxpay.sdk.net.DaxPayKit; import cn.bootx.platform.daxpay.sdk.param.pay.SimplePayParam; import cn.bootx.platform.daxpay.sdk.response.DaxPayResult; import org.junit.Before; import org.junit.Test; /** * 简单支付 * @author xxm * @since 2024/2/2 */ public class SimplePayOrderTest { @Before public void init() { // 初始化支付配置 DaxPayConfig config = DaxPayConfig.builder() .serviceUrl("http://127.0.0.1:9000") // 需要跟网关中配置一致 .signSecret("123456") .build(); DaxPayKit.initConfig(config); } @Test public void simplePay() { // 简单支付参数 SimplePayParam param = new SimplePayParam(); param.setBusinessNo("P0001"); param.setAmount(1); param.setTitle("测试支付宝支付"); // 支付宝扫码支付 param.setChannel(PayChannelEnum.ALI.getCode()); param.setPayWay(PayWayEnum.QRCODE.getCode()); // 如果切换为微信扫码支付, 只需要更改一下通道编码参数即可, // param.setChannel(PayChannelEnum.ALI.getCode()); DaxPayResult<PayOrderModel> execute = DaxPayKit.execute(param, true); PayOrderModel data = execute.getData(); // 打印用于扫码使用的 System.out.println(data.getPayBody()); } } 

项目和演示地址

源码地址

项目 GITEE GITHUB
后端地址 https://gitee.com/dromara/dax-pay https://github.com/dromara/dax-pay
Web前端地址 https://gitee.com/bootx/dax-pay-ui https://github.com/xxm1995/dax-pay-ui
H5前端地址 https://gitee.com/bootx/dax-pay-h5 https://github.com/xxm1995/dax-pay-h5

管理平台:

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

地址:https://daxpay.demo.bootx.cn 账号:daxpay 密码:123456

网关接口

注:接口平台只开放支付网关相关的接口,不开放系统其他接口。

地址: https://daxpay.server.bootx.cn/doc.html 账号: daxpay 密码: 123456

收银台

请勿大额支付,可以通过后台管理平台进行退款

电脑收银台地址: https://daxpay.demo.bootx.cn/#/cashier

手机收银台地址: https://daxpay.demo.bootx.cn/h5/#/cashier/uniCashier

沟通交流

一个人的能力总是有限的,非常欢迎大家能够一起来交流,一起成长!!!

原文链接:https://www.oschina.net/news/280274
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章