# 微同商城商业版开发环境的准备和启动

# 环境准备

# 环境说明

工具 版本 备注
maven 3.3.9 +
JDK 1.8 强制要求
MySQL 5.7.* 强制要求
Redis 3.2 +
node 12.*
npm 6.0 +
IDEA 2019 +
HBuilder X 3.1.18
Chrome 49 +

# MAVEN的安装配置与IDEA整合

Windows:https://www.yht7.com/news/133245
MacOS:https://blog.csdn.net/b_aihe/article/details/91382918

# 安装JDK 1.8

Windows:https://blog.csdn.net/weixin_44084189/article/details/98966787/
MacOS:https://www.hangge.com/blog/cache/detail_2453.html

# JDK说明

请使用mvn -v 命令查看关联的jdk版本,当开发环境存在多个版本jdk时候特别注意

mvn -v
1


# 安装MySQL 5.7

Windows:https://www.cnblogs.com/kendoziyu/p/MySQL.html
MacOS:https://www.jb51.net/article/103841.htm

# 安装redis

Windows:https://www.runoob.com/redis/redis-install.html
MacOS:https://yijiebuyi.com/blog/d8ab4b444c16f42cefe30df738a42518.html

# 安装node & npm

https://www.runoob.com/nodejs/nodejs-install-setup.html
检查安装是否正常

# Lombok 插件

IDE 必须安装 lombok plugin

当前你使用的ide未安装lombok. lombok能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法,减少代码冗余.IDEA 2020.3版本已经内置Lombok Plugin插件.

IDEA安装方法 | eclipse安装方法

# 注册腾讯位置服务

  • 注册地址
  • 创建应用
  • 添加key,选择授权IP(留空侧不限制调用来源),添加app应用包名,添加小程序AppID

  • 记录Key,用于项目

# 申请高德开放平台

  • 注册地址
  • 创建应用
  • 创建key(Android、IOS)

  • 记录Key,用于项目

# 申请快递鸟

详见《小程序上线所需材料.docx》第1.9节

# 申请微信公众号和小程序

详见《小程序上线所需材料.docx》第1.1节

# 开通微信支付

详见《小程序上线所需材料.docx》第1.2节

# 开通腾讯云SMS

详见《小程序上线所需材料.docx》第1.7节

# 开通COS服务

详见《小程序上线所需材料.docx》第1.8节

# 启动后台接口服务

# 初始化数据库

  • 连接数据库后新建数据库 platform-plus
  • 运行SQL文件 platform-mall-distribution/_sql/platform-mall-MySQL.sql
  • 运行SQL文件 platform-mall-distribution/_sql/platform-mall-MySQL.sql-activiti.sql

# 项目导入到IDEA

  • 启动IDEA,点击open


  • 导入支付证书至/platform-api/src/main/resources/目录下
  • 导入支付证书至/platform-admin/src/main/resources/目录下
  • 修改开发环境配置/platform-api/src/main/resources/application.yml
    • platform-api.jwt.secret # 加密公用秘钥(32位)
    • wx.pay.appId #微信公众号或者小程序等的appid
    • wx.pay.mchId #微信支付商户号
    • wx.pay.mchKey #微信支付商户密钥
    • wx.pay.spbillCreateIp #服务器IP。必填项
    • wx.pay.baseNotifyUrl #支付回调通知地址
    • wx.app.appId # 微信开放平台开通的移动应用AppId(如果使用App端配置)
    • tx.templateId #短信验证码templateId(详细配置请见《微同商城商业版开发文档.docx》第五章)
    • 修改支付宝小程序、支付相关配置
  • 修改开发环境配置/platform-api/src/main/resources/application-dev.yml
    • spring.datasource.druid.first.url #数据库连接地址
    • spring.datasource.druid.first.username #数据库用户名
    • spring.datasource.druid.first.password #数据库密码
    • spring.datasource.druid.second.url #数据库连接地址
    • spring.datasource.druid.second.username #数据库用户名
    • spring.datasource.druid.second.password #数据库密码
  • 修改生产环境配置/platform-api/src/main/resources/application-prod.yml
    • 同上
  • 修改开发环境配置/platform-admin/src/main/resources/application.yml
    • wx.pay.appId #微信公众号或者小程序等的appid
    • wx.pay.mchId #微信支付商户号
    • wx.pay.mchKey #微信支付商户密钥
    • wx.pay.spbillCreateIp #服务器IP。必填项
    • wx.pay.baseNotifyUrl #支付回调通知地址
    • wx.app.appId # 微信开放平台开通的移动应用AppId(如果使用App端配置)
    • tx.templateId #短信验证码templateId(详细配置请见《微同商城商业版开发文档.docx》第五章)
    • 修改支付宝小程序、支付相关配置
  • 修改开发环境配置/platform-admin/src/main/resources/application-dev.yml
    • spring.datasource.druid.first.url #数据库连接地址
    • spring.datasource.druid.first.username #数据库用户名
    • spring.datasource.druid.first.password #数据库密码
    • spring.datasource.druid.second.url #数据库连接地址
    • spring.datasource.druid.second.username #数据库用户名
    • spring.datasource.druid.second.password #数据库密码
  • 修改生产环境配置/platform-admin/src/main/resources/application-prod.yml
    • 同上

# 启动接口服务

  • 启动platform-admin/src/main/java/com/platform/PlatformAdminApplication.java
  • 启动platform-api/src/main/java/com/platform/PlatformApiApplication.java

# 启动前端管理系统

  • 进入到 platform-admin-ui 目录
cd platform-admin-ui
1
  • 安装
# 安装依赖
npm install

# 启动服务
npm run dev
1
2
3
4
5
  • 安装过程中,可能会出现安装过慢、报错等情况,请尝试以下方式:
npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install

# 启动服务
npm run dev
1
2
3
4
5
6


  • 启动完成后打开浏览器访问http://localhost:8000,后台管理系统默认账号和密码:admin/admin

# 启动微信小程序端(小程序版)

  • 打开 微信开发者工具
  • 导入项目,选择platform-mall-distribution/wx-mall目录
  • 填写自己申请的小程序AppId(和管理系统配置的保持一致)
  • 设置不校验合法域名选项

  • 修改utils/util.js
    • API_BASE_URL = http://localhost:8889/platform-api/app/
    • qqMapKey //腾讯位置服务
    • kdnBusinessId //快递鸟配置,注册地址
    • kdnAppKey
  • 编译

# 启动微信小程序端(uniapp版)

注意事项

如果使用多端商城,请申请微信开放平台,将移动应用、公众账号、小程序全部绑定到同一开放平台下



  • 打开 微信开发者工具
  • 打开设置->安全设置->打开服务端口

  • 以管理员身份运行 HBuilder X
  • 从本地目录导入项目,选择wx-mall-uniapp-distribution目录
  • 修改utils/util.js
    • projectName: //项目的名称,用于分享卡片显示
    • domain: http://localhost:8889/
    • maAppId: //使用的小程序的原始ID,gh_开头
    • qqMapKey //腾讯位置服务
    • kdnBusinessId //快递鸟配置,注册地址
    • kdnAppKey
  • 修改小程序AppId
  • 设置不校验合法域名选项

  • 运行到微信开发者工具

# 启动支付宝小程序端(uniapp版)

  • 以管理员身份运行 HBuilder X
  • 从本地目录导入项目,选择wx-mall-uniapp-distribution目录
  • 修改utils/util.js
    • domain: http://localhost:8889/
  • 修改支付宝小程序AppId
  • 运行到支付宝小程序开发者工具

  • 出现下图所示
  • 打开支付宝小程序开发者工具,导入编译后的程序,选择目录\unpackage\dist\dev\mp-alipay

  • 完成

# 启动App端

  • App真机调试需要服务端在外网环境,或者使用内网穿透,确保手机端能链接到服务端
  • 以管理员身份运行 HBuilder X
  • 将高德申请的key填入到manifest.json

  • 申请微信开放平台
    • 在微信开放平台创建移动应用

    • 将上述的AppID和AppSecret填入到manifest.json


  • 连接手机到电脑
  • 运行到手机或者模拟器

  • 运行成功后会在手机端安装HBuilder,打开HBuilder app,即可调试。(Iphone端需要到设备管理信任Hbuilder)

# 启动H5端

  • 以管理员身份运行 HBuilder X
  • 将上述申请的腾讯位置服务key填写到manifest.json

  • 运行到浏览器、运行到内置浏览器


# 公众号调试

  • 以管理员身份运行 HBuilder X
  • 修改utils/util.js
    • mpAppId //微信公众号appId
  • 将申请的腾讯位置服务key填写到manifest.json

  • 运行到浏览器、运行到内置浏览器

  • 打开 微信开发者工具
  • 更换开发模式为:公众号网页调试
  • 将H5地址复制到地址栏

    注意事项

    本地开发环境无法调试公众号网页授权,请先在小程序端登录绑定手机号后(默认密码为123456),再使用手机号登录进行调试。

# Android平台签名证书

Android平台签名证书(.keystore)生成指南

# 上架iOS App Store

上架iOS App Store 流程指南

# 上线部署

# 后台打包

mvn clean
mvn package -Pprod
1
2


  • 将platform-api.jar、platform-admin.jar上传到服务器,在同目录新增 startPlatformAdminService.shstartPlatformApiService.sh
  • startPlatformAdminService.sh
(netstat -tlnp|grep 8888|awk '{print $7}'|awk -F '/' '{print $1}') |xargs kill -9
echo "................kill the process platform-admin.............................."
nohup java -jar platform-admin.jar &
sleep 5s
tail -f /home/logs/platform-admin/info.log
1
2
3
4
5
  • startPlatformApiService.sh
(netstat -tlnp|grep 8889|awk '{print $7}'|awk -F '/' '{print $1}') |xargs kill -9
echo "................kill the process platform-api.............................."
nohup java -jar platform-api.jar &
sleep 5s
tail -f /home/logs/platform-api/info.log
1
2
3
4
5
  • 启动脚本赋权
chmod 755 startPlatformAdminService.sh
chmod 755 startPlatformApiService.sh
1
2
  • 分别执行启动脚本
./startPlatformAdminService.sh
./startPlatformApiService.sh
1
2

# 后台管理系统前端打包

  • 打包
npm run build
1


  • 将dist文件夹上传到服务器,例目录为: /data/dist/

# 参考配置nginx

server {
    listen 80;
    server_name 你的域名;
    
    location / {
        # 指向我们打包后上传的前端文件
        root /data/dist;
        index index.html;
    }
    
    location /h5 {
        # h5移动端页面
        alias '/data/h5';
        expires   7d;
    }
    location /platform-admin {
        # 转发请求到后端
        proxy_pass                         http://你的域名:8888/platform-admin;
        proxy_set_header  Host             $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
    location /platform-api {
        # 转发请求到后端
        proxy_pass                         http://你的域名:8889/platform-api;
        proxy_set_header  Host             $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

server {
    listen	   443 ssl;
    server_name 你的域名;
    ssl_certificate   ../cert/你的域名.pem;
    ssl_certificate_key  ../cert/你的域名.key;
    ssl_session_timeout 5m;
    ssl_ciphers 你的加密套件;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
    ssl_prefer_server_ciphers on;   

    location /h5 {
        # h5移动端页面
        alias '/data/h5';
        expires   7d;
    }
    location /platform-api {
        # 转发请求到后端
        proxy_pass                         http://你的域名:8889/platform-api;
        proxy_set_header  Host             $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Last Updated: 8/11/2021, 1:25:18 PM