· 开发文档

· 支付社区

首页

小新支付

文档中心

支付社区

关于我们

  • 目录
  • 服务端部署

    XxPay刷脸支付系统使用Java开发,RPC服务使用Dubbo,可分布式部署。前期业务量小或对系统可用性要求不是很高,可单点部署,后期随着业务量增长,再通过横向扩展进行分布式部署。

     

    购买服务器

     

    推荐购买阿里云ECS服务器,建议不低于以下配置:

     

    操作系统

    CPU

    内存

    带宽

    硬盘

    开放端口

    Linux CentOS 7.X

    4核

    8G

    2M(或弹性)

    40G

    80、443、22

     

    安装软件

     

    系统服务端使用Java开发,部署时需要提前安装好以下软件:

     

    软件

    版本

    说明

    JDK

    1.8

    Java运行依赖环境

    ActiveMQ

    5.15.8

    消息中间件

    Redis

    3.2.8

    缓存使用

    Zookeeper

    3.4.6

    服务注册中心

    MySQL

    5.7.X

    数据库,推荐使用阿里云RDS数据库

    Nginx

    1.14.1

    负载均衡、反向代理

     

    以上软件的安装,有更详细的安装步骤,可参考另一篇文章。

     

    初始化数据

     

    连接Mysql,创建数据库:xxpaydb,创建用户:xxpay,并为该用户赋权限。

    执行项目根目录下的inti.sql文件,完成表结构创建及初始化数据。

     

    编译部署

     

    可通过本地开发工具(建议Idea)或Jenkins完成项目的编译打包,打包后会在target目录下生成一个.tar.gz结尾的文件(如 xxpay-isv-bin.tar.gz),将文件上传至服务器,然后执行bin目录下的启动脚本即可。以下为最佳实践,仅供参考。

     

    编译前需修改配置文件,Zookeeper、ActiveMQ、Redis、Mysql主从库等配置。

     

    在服务器创建用户xxpay,然后在/home/xxpay下创建service目录。将编译后的:

    xxpay-manage-bin.tar.gz

    xxpay-isv-bin.tar.gz

    xxpay-agent-bin.tar.gz

    xxpay-merchant-bin.tar.gz

    xxpay-member-bin.tar.gz

    xxpay-pay-bin.tar.gz

    xxpay-task-bin.tar.gz 

     

    上传至service目录下,解压后分别执行项目下的启动脚本,如xxpay-manage的启动命令:

    cd /home/xxpay/xxpay-manage/bin

    sh ./app.sh start

    其他模块参考启动即可,启动后项目可通过IP+端口形式访问(云服务器需开通端口号才可以访问)。

     

    域名配置

     

    项目需要域名访问,需要将域名做解析到服务器公网IP,一般需解析如下域名(如域名为: xxpay.vip):

    mgr.xxpay.vip,isv.xxpay.vip,agent.xxpay.vip,mch.xxpay.vip,mbr.xxpay.vip,pay.xxpay.vip

     

    在Nginx中做好域名绑定,如果https访问,可申请域名ssl证书,在nginx中配置即可。

     

    常见问题

     

    1. 数据库建议用msyql5.7版本,在出现类似错误时

     

     

    一般是由于mysql 的 sql-mode设置,在linux下修改msyql配置,修改my.cnf文件,一般在/etc/my.cnf

     

    在 [mysqld] 中增加下述语句

    sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    或者将已有sql-mode修改上述语句

    将 explicit_defaults_for_timestamp = true 注释掉 或者修改fase

    explicit_defaults_for_timestamp = false

    然后重启mysql即可。

     

    1. 服务端程序出现  Illegal key size 异常时

    需要去官方下载JCE无限制权限策略文件。

    JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

     

    下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt

    将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。

    📎local_policy.jar📎US_export_policy.jar

    这是的两个附件是jdk1.8对应的,可直接使用。

     

      3. 预制二维码出现  口口口口 异常时

    是由于服务端未安装中文字体导致。

    将SimSun.ttc的字体文件拷贝到新建的%JAVA_HOME%/jre/lib/fonts/fallback目录下, 重启项目即可。 

    字体文件已上传到代码目录:【  /fonts/宋体.7z】  压缩包内包含中文字体文件和说明文档。