牛逼!SpringBoot+Vue企业级开源聚合支付系统!支持全部支付平台!

最近在查看我的AI工具(https://ai.quanyouhulian.com/)时,发现充值功能做的有点low,需要手工去拷贝订单号再验证,本次决定对此界面做下功能改造!
image.png
对于任何一个独立开发站而言,支付功能是必有的一个功能,像国内一般对接的比较多的是:微信支付、支付宝支付、云闪付、京东支付等、国外一般用的多的是:谷歌支付、Cybersource支付、苹果支付、paypal支付等,如果一家家去逐个对接,字段加调试没有几个月是搞不定的!

而以上这些,已经有前人做过整合了!经过在github上的选型和对比,最终决定选用Jeepay这款开源聚合支付系统(项目地址放在文章末尾)

Jeepay聚合开源支付系统对接详细步骤

一、系统介绍

1、系统简介

Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付支付宝云闪付官方接口,支持聚合码支付。
Jeepay使用Spring BootAnt Design Vue开发,集成Spring Security实现权限管理功能,是一套非常实用的web开发框架。

2、名称由来

Jeepay = Jee + pay,是由原XxPay支付系统作者带领团队开发,“Jee”是公司计全科技名称的表示,pay表示支付。中文名称为计全支付,释为:计出万全、支付安全,让支付更加方便安全。

3、功能特点

  • 支持多渠道对接,支付网关自动路由
  • 已对接微信服务商和普通商户接口,支持V2V3接口
  • 已对接支付宝服务商和普通商户接口,支持RSA和RSA2签名
  • 已对接云闪付服务商接口,可选择多家支付机构
  • 提供http形式接口,提供各语言的sdk实现,方便对接
  • 接口请求和响应数据采用签名机制,保证交易安全可靠
  • 系统安全,支持分布式部署,高并发
  • 管理端包括运营平台商户系统
  • 管理平台操作界面简洁、易用
  • 支付平台到商户系统的订单通知使用MQ实现,保证了高可用,消息可达
  • 支付渠道的接口参数配置界面自动化生成
  • 使用spring security实现权限管理
  • 前后端分离架构,方便二次开发

4、系统架构

5、核心技术栈

软件名称 描述 版本
Jdk Java环境 1.8
Spring Boot 开发框架 2.4.5
Redis 分布式缓存 3.2.8 或 高版本
MySQL 数据库 5.7.X 或 8.0 高版本
MQ 消息中间件 ActiveMQ 或 RabbitMQ 或 RocketMQ
Ant Design Vue Ant Design的Vue实现,前端开发使用 2.1.2
MyBatis-Plus MyBatis增强工具 3.4.2
WxJava 微信开发Java SDK 4.1.0
Hutool Java工具类库 5.6.6

二、功能演示

做过支付系统的兄弟们应该都知道(不知道的看完我接下来的解释应该也能清楚了^ ^),一套支付中台由三个模块组成:代理商系统、商户系统、运营后台!
代理商系统:该系统是给代理商使用的,对于只使用支付功能用户来讲可以忽略该系统,主要用来给商户进件,配置商户费率,管理下级代理商,配置下级代理商成本,分润管理等
商户系统:该系统是给商户使用的,主要有设备管理、码牌管理、员工管理、订单管理、数据报表、门店管理、分账管理、个人中心等
运营后台:该系统是给运营人员使用的,主要功能一般有:数据统计、代理商管理、商户管理、订单管理、团队管理等。该系统权限比较多,一般是商户遇到问题由运营人员协助排查问题使用

好了,功能介绍完了,接下来看下该套开源系统的相关界面吧

1、代理商系统

代理商平台一般都是直接登录对应的支付平台的代理商系统后台,所以没有聚合页面,一般想要注册成为代理商需要满足以下条件!对于只使用支付功能商户来说,可以不用考虑!如果你也想成为代理商,可以按对应的支付平台流程完成入驻,后续你名下进件的商户每笔交易都可以拿到分润

代理商入驻可以参考文档:https://docs.jeequan.com/docs/new/new-1dbpqktia32r9
微信服务商平台:https://pay.weixin.qq.com/index.php/partner/public/home
支付宝服务商平台:https://p.alipay.com/page/settleapp/isv-guide
乐刷支付服务商平台:https://jh.leshuazf.com/#/login

2、商户系统

体验地址:http://mch.d.jeepay.vip
账号:huoguoji
密码:jeepay666
输入账号密码登录后界面如下
image.png
应用管理主要配置你的appId,这个appId是jeePay自动生成的,后面调用支付时需要传该参数!
image.png
支付配置可以配置你的支付通道列表,支付时候可以根据选择的通道拉起对应的支付
image.png
每个支付通道都需要配置相关参数,这些参数在进件完成后登录到对应的平台商户后台可以获取到
image.png
订单管理每笔订单都由一笔商户订单加一笔支付订单组成!
image.png
退款记录内退款订单也和支付订单做了关联
image.png
分账记录:一般这种美食城摊位用的比较多,比如美食城A商户配置了分账给总店B,则A的每笔交易在结算时会按配置比例分给B费用
image.png

3、运营后台

体验地址:http://mgr.d.jeepay.vip
账号:tiyan007
密码:jeepay666
登录后界面如下,可以查看到每日交易数据报表
image.png
应用列表可以查看到全部appid的支付配置,这里可以协助商户完成支付相关配置参数
image.png
支付接口可以配置模板列表,这里配置完成后商户在支付配置页就可以看到对应的支付平台
image.png
订单管理和商户后台的基本一致,不过运营后台权限要比商户后台的大。商户后台只能查看自己的,运营后台可以查看所有商户的订单信息
image.png

三、开发部署步骤

1、项目源码地址

后端工程https://gitee.com/jeequan/jeepay
前端工程https://gitee.com/jeequan/jeepay-ui
后端工程下载下来后结构如下
image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
jeepay-ui  -- https://gitee.com/jeequan/jeepay-ui

jeepay
├── conf -- 存放系统部署使用的.yml文件
├── docker -- 存放docker相关文件
└── docs -- 存放项目相关文档说明
├── intsll -- 项目部署shell脚本
├── script -- 项目启动shell脚本
└── sql -- 初始化sql文件
└── jeepay-components -- 公共组件目录
├── jeepay-components-mq -- mq组件
└── jeepay-components-oss -- oss组件
├── jeepay-core -- 核心依赖包
├── jeepay-manager -- 运营平台服务端[9217]
├── jeepay-merchant -- 商户系统服务端[9218]
├── jeepay-payment -- 支付网关[9216]
├── jeepay-service -- 业务层代码
└── jeepay-z-codegen -- mybatis代码生成

前端工程下载下来后代码结构如下
image.png

1
2
3
4
jeepay-ui
├── jeepay-ui-cashier -- 聚合收银台项目
├── jeepay-ui-manager -- 运营平台web管理端
└── jeepay-ui-merchant -- 商户系统web管理端

2、前端工程启动

node版本要求:<= 16
参考命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 拉取源码完毕后请先安装依赖, 进入项目根目录命令行执行:

> npm install

# 本地启动项目(开发环境):

1. 打开根目录下文件".env.development", 修改请求服务器地址"VUE_APP_API_BASE_URL";

2. 在项目根目录命令行执行:

> npm run serve

# 打包(生产环境):

1. 打开根目录下文件".env", 修改请求服务器地址"VUE_APP_API_BASE_URL";

2. 在项目根目录命令行执行:

> npm run build

3. 文件将输出到 [/dist]目录, 拷贝到web服务器即可。

3、后端工程启动

启动方式有两种,新机器推荐方法二
方法一:传统源代码方式,mysql创建表,再逐个
方法二:一键部署

先来讲下使用方法一传统部署方式

工程下载到本地后,进入docs,把里面的mysql全部初始化好
image.png
接下来,把数据库配置成你自己的,然后把每个工程主应用都启动起来!不知道怎么启动的可以去复习下SpringBoot启动方式!
image.png

方法二:一键部署

将Jeepay作为一个支付模块部署,对外提供支付接入能力,有支付需求的业务都可以接入使用。
CentOS 安装脚本 (推荐Anolis OS 8.8):

1
yum install -y wget && wget -O install.sh https://gitee.com/jeequan/jeepay/raw/master/docs/install/install.sh && sh install.sh

Ubuntu 安装脚本 (推荐 Ubuntu 22.04 64位):

1
apt update && apt-get -y install docker.io && apt-get -y install git && wget -O install.sh https://gitee.com/jeequan/jeepay/raw/master/docs/install/install.sh && sh install.sh

4、后端如何集成

为了开始使用Jeepay,首先需要在项目中引入其SDK依赖。Jeepay提供了Java SDK,引入sdk依赖(最新发布版本1.5.0),支持:支付、退款、转账、分账等接口。

1
2
3
4
5
<dependency>
<groupId>com.jeequan</groupId>
<artifactId>jeepay-sdk-java</artifactId>
<version>1.5.0</version>
</dependency>

客户端调用代码可参考:
完整支付测试代码 com.jeequan.jeepay.PayOrderTest

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 创建客户端
JeepayClient jeepayClient = JeepayClient.getInstance(Jeepay.appId, Jeepay.apiKey);

// 构建请求数据
String wayCode = "WX_BAR"; // 支付方式
PayOrderCreateRequest request = new PayOrderCreateRequest();
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
model.setMchNo(Jeepay.mchNo); // 商户号
model.setAppId(jeepayClient.getAppId()); // 应用ID
String orderNo = "mho" + new Date().getTime();
model.setMchOrderNo(orderNo); // 商户订单号
model.setWayCode(wayCode); // 支付方式
model.setAmount(1l); // 金额,单位分
model.setCurrency("CNY"); // 币种,目前只支持cny
model.setClientIp("192.166.1.132"); // 发起支付请求客户端的IP地址
model.setSubject("商品标题"); // 商品标题
model.setBody("商品描述"); // 商品描述
model.setNotifyUrl("https://www.jeequan.com"); // 异步通知地址
model.setReturnUrl(""); // 前端跳转地址
model.setChannelExtra(channelExtra(wayCode)); // 渠道扩展参数
model.setExtParam(""); // 商户扩展参数,回调时原样返回
request.setBizModel(model);

// 发起统一下单
PayOrderCreateResponse response = jeepayClient.execute(request);

// 验证返回数据签名
response.checkSign(Jeepay.apiKey);

// 判断下单是否返回成功
response.isSuccess(Jeepay.apiKey)

总结

前端工程:https://gitee.com/jeequan/jeepay-ui
后端工程https://gitee.com/jeequan/jeepay
接口说明文档:https://docs.jeequan.com/docs/jeepay/dev_serv
支付体验地址:https://www.jeequan.com/demo/jeepay_cashier.html
Jeepay是一套开源的聚合支付系统,附带了前后端相关源码,并且集成了后端sdk依赖包,对需要对接支付系统的独立站平台省去了一大笔对接时间!是一套非常实用的web开发框架。


牛逼!SpringBoot+Vue企业级开源聚合支付系统!支持全部支付平台!
http://example.com/2024/08/19/后端技术互联/牛逼!SpringBoot+Vue企业级开源聚合支付系统!支持全部支付平台!/
作者
技术Z先生
发布于
2024年8月19日
许可协议