介绍Jeepay支付系统云服务环境部署(Docker等其他部署方式,后续推出),以下部署是在阿里云4核8G服务器部署,其他环境安装仅供参考。

注:以下部署内容需要有一定java和运维经验,如不懂如何部署可联系官方收费技术支持服务(QQ:13527422)。

环境准备

云服务器推荐购买阿里云(腾讯云 或 华为云)的主机,建议不低于以下配置:

操作系统 CPU 内存 带宽 其他
Linux CentOS 7.X (或以上) 4核 8G 2M+(或弹性) 开发测试环境配置再低些也可以部署

软件环境需安装:

软件名称 版本 说明
Jdk 1.8 java运行环境,在jdk1.8下开发,其他版本没测试
Redis 3.2.8 分布式缓存,高版本也支持
MySQL 5.7 不低于5.7,支持8.0高版本
MQ ActiveMQ 或 RabbitMQ 或 RocketMQ 消息中间件
Nginx x 非必须,反向代理使用,其他版本也支持

以上软件请自行百度安装,MySQL、Redis、Nginx 的安装推荐使用宝塔安装,宝塔下如何安装请自行查阅文档。

一键部署

注意事项:

  1. (重要)请提前检查您的doker环境, 基本上国内大厂镜像都已经关闭, 确保您当前服务器环境可正常拉取镜像仓库! 自行搜索科学配置的方式! 关键词: 【docker镜像加速器】
  2. 使用一键部署最好是全新服务器, 因为构建过程会使用Docker安装基础服务和官方镜像,也会拉取jeepay源代码。
  3. 默认的安装目录为: /jeepayhomes 也是官方的最佳实践。
  4. mysql默认端口3306, 默认密码: jeepaydb123456
  5. 项目访问地址 (注意开通端口防火墙):
    运营平台: http://外网IP:19217 账号密码: jeepay/jeepay123
    商户平台: http://外网IP:19218 账号密码: 需要登录运营平台手动创建。
    支付网关: http://外网IP:19216 “
  6. 启动完成后,需进入系统设置配置外网地址后方可进行测试。

CentOS 安装脚本 (推荐Anolis OS 8.8):

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位):

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

视频教程:
【jeepay开源聚合支付系统一键部署和测试教程】 https://www.bilibili.com/video/BV17C411Y7EZ/?share_source=copy_web&vd_source=e48f1c20ae2c74b29a0b959a168914f2

温馨提示:

  1. 请提前检查您的doker环境, 基本上国内大厂镜像都已经关闭。 确保可正常拉取镜像仓库!

  2. 由于一键脚本会占用: 3306(mysql) / 6379(redis) / 61616(mq) /19216/19217/19218等默认端口。 请务必检查端口占用情况, 如被占用将导致启动失败

  3. 如果有安装宝塔等面板工具也请先关闭nginx/redis/mysql等默认服务, 或等一键安装完成后再安装宝塔等面板工具即可。

  4. 若还是启动报错可以尝试使用一键卸载脚本执行后再试 [ !!谨慎执行, 此脚本将删除DB, 删除程序!!! ]:

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

服务端部署(编译部署)

  1. 项目下载
git clone https://gitee.com/jeequan/jeepay.git
  1. 项目编译

使用命令行进入项目内(应该在jeepay项目最外层的pom.xml中, 不可进入到jeepay-manager项目下执行,否则会出现问题)

$ mvn package

注意: windows 建议使用 【cmd】 若使用【powershell】可能会出现问题。
其他知识点: powershell 添加参数需要使用: mvn package ‘-Dmaven.test.skip=true’ 添加引号的方式, 否则会报错。

编译成功后,会在每个模块的target下会生成下面名字的.jar文件,如下:

jeepay-manager/target/jeepay-manager.jar
jeepay-merchant/target/jeepay-merchant.jar
jeepay-payment/target/jeepay-payment.jar
  1. 项目启动

1)使用root用户登录云服务器,创建jeepay用户,切换到jeepay用户,并在/home/jeepay目录下创建serviceupload文件目录。参考命令如下:

# 创建用户
useradd jeepay
# 切换用户
su jeepay
# 进入目录
cd /home/jeepay/
# 创建目录service和upload
mkdir service && mkdir upload

2)在service目录下创建目录manager,merchant,payment,然后将上面编译后的.jar文件分别传入对应的目录中。

# 进入到service目录下
cd /home/jeepay/service
# 创建目录manager,merchant,payment
mkdir manager && mkdir merchant && mkdir payment

3)初始化数据库,在msyql5.7下创建数据库jeepaydb,用户jeepay,密码123456(数据库和账号密码可自己设定,密码不要过于简单)。

执行项目下 docs/sql/init.sql ,确保所有语句执行成功。

4)下面以启动manager为例

将项目下 docs/scpript/app.sh 上传到至 /home/jeepay/service/manager 下。

将项目下 conf/manager/application.yml 上传至 /home/jeepay/service/manager 下。

此时manager目录下应该有 jeepay-manager.jar、app.sh、application.yml 三个文件。

修改 application.yml 中的配置为你自己环境对应配置,主要包括服务端口、数据库连接配置、Redis配置、ActiveMQ配置等。

server:
  port: 9217 #设置端口为9217
spring:
  datasource:
    # yml填写url连接串, 无需将&符号进行转义
    url: jdbc:mysql://127.0.0.1:3306/jeepaydb?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: jeepay
    password: 123456
  redis:
    host: 127.0.0.1
    port: 6379
    password: 
  #activeMQ配置
  activemq:
    broker-url: tcp://localhost:61616  #连接地址

#日志配置参数
logging:
  level:
    root: info   #主日志级别
    com.jeequan.jeepay: debug   #该项目日志级别,当需要打印sql时请开启为debug
  path: ./logs  #日志存放地址

#系统业务参数
isys:
  allow-cors: true #是否允许跨域请求 [生产环境建议关闭, 若api与前端项目没有在同一个域名下时,应开启此配置或在nginx统一配置允许跨域]
  jwt-secret: P982P8e6472qTc3u #生成jwt的秘钥。 要求每个系统有单独的秘钥管理机制。
  # 文件系统配置项(系统内oss, 并非云oss)
  oss-file:
    root-path: /home/jeepay/upload #存储根路径 ( 无需以‘/’结尾 )

启动manager项目:sh ./app.sh start
常用命令:start 启动程序 stop 停止程序 restart 重启程序

查看系统日志:tail -f ./logs/mgr.all.log 注:如果日志没内容,可能启动失败,查看start.log日志:tail -f ./start.log 看问题。

其他 merchantpayment 参考manager项目启动即可。

前端部署

  1. 项目下载
git clone https://gitee.com/jeequan/jeepay-ui.git
  1. 项目编译

1)项目下载后在jeepay-ui下会有三个目录,分别是:

jeepay-ui-manager:运营平台对应的前端代码
jeepay-ui-merchant:商户系统对应的前端代码
jeepay-ui-cashier:支付收银台前端代码(只有用到聚合扫码收银台时才需要部署)

2)以 jeepay-ui-manager 为例

进入到目录 jeepay-ui-manager 下,修改服务端接口配置。

修改文件 .env 中的 VUE_APP_API_BASE_URL 配置,如果前端和服务端部署在同一域名下,该值留空,否则需要设置为服务端接口地址。

修改为manager服务地址,如:http://mgr.xxx.comhttp://202.112.102.18:9217 (域名和ip端口以你服务端真实部署为准)。

3)修改后按如下命令执行

安装依赖:npm install

打包文件:npm run build

打包后,生成dist目录,将dist目录下所有文件上传至服务器(建议上传OSS,使用CDN加速效果访问效果更好)。

其他 jeepay-ui-manager 和 jeepay-ui-cashier 参考 manager 的打包和部署

Nginx配置

将域名mgr.x.jeepay.vipmch.x.jeepay.vippay.x.jeepay.vip解析到服务器IP

manager项目配置

upstream mgr-api {
    server 127.0.0.1:9217 weight=1 max_fails=2 fail_timeout=30s;
}

server
{
    listen 80;
    server_name mgr.x.jeepay.vip;
    index index.html index.htm ;
    root /home/jeepay/html/manager;

    #解决vue刷新404问题
    try_files $uri $uri/ /index.html;

    location /api/
    {
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://mgr-api;
        # 启用支持websocket连接
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

merchant项目配置

upstream mch-api {
    server 127.0.0.1:9218 weight=1 max_fails=2 fail_timeout=30s;
}

server
{
    listen 80;
    server_name mch.x.jeepay.vip;
    index index.html index.htm;
    root /home/jeepay/html/merchant;

    #解决vue刷新404问题
    try_files $uri $uri/ /index.html;

    location /api/
    {
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://mch-api;
        # 启用支持websocket连接
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

payment项目配置

两种方式 选择一种即可。

A: 收银台前端文件, 直接使用后端java项目内置资源

upstream pay-api {
    server 127.0.0.1:9216 weight=1 max_fails=2 fail_timeout=30s;
}

server
{
    listen 80;
    server_name pay.x.jeepay.vip;
    index index.html index.htm;
    root /home/jeepay/html/payment;

    location /
    {
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://pay-api;
    }

}

B: 收银台前端放置到nginx, 需要将jeepay-ui-uapp-cashier 进行打包操作。

upstream pay-api {
    server 127.0.0.1:9216 weight=1 max_fails=2 fail_timeout=30s;
}

server
{
    listen 80;
    server_name pay.x.jeepay.vip;
    index index.html index.htm;
    root /home/jeepay/html/payment;

    location ^~ /api/
    {
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://pay-api;
    }

}

注意:使用B方式部署时,/home/jeepay/html/payment 目录下面需要新建cashier文件夹,在/home/jeepay/html/payment/cashier下存放index.html等前端打包文件文件。
目录结构:

htmlpaymentcashier
         index.html (jeepay-ui-uapp-cashier 打包文件)
        ∟ cssjs

初始账号

系统部署后初始账号密码。

运营平台

账号:jeepay
密码:jeepay123

商户系统

账号在运营平台创建, 默认密码:jeepay666

登录商户系统后可测试支付下单流程。

官方演示环境

官方演示账号:https://www.jeequan.com/doc/detail_84.html

官方支付体验地址:支付体验

文档更新时间: 2024-08-31 14:54   作者:大森林