# 微协同私有化部署手册-Windows版
# 一、前置条件
私有化部署,需要满足如下条件:
# 1、网络条件
- 协同系统的访问地址是公网地址,可以是IP也可以是域名,域名的话最好是备案过的(避免企业微信校验为非法域名,禁止访问),OA在内网的客户可以使用反向代理,分离部署方案。
- 微协同服务和OA服务需要能够互相访问到。
- 微协同服务器地址必须为域名(企业微信配置可信域名使用到,私有化企业微信无限制),并且为公网地址。
- 微协同基础配置这里的校验是,OA和微协同服务能够互相访问到,双方互相访问成功后,OA会将rest账号密码推送至微协同服务(rest账号密码的作用就是获取访问OA的token,即是访问权限)。
- 用户通过企业微信APP/PC客户端访问微协同的时候,微协同先到企业微信中认证;再通过rest信息获取token到OA中认证,认证完毕后跳转至待办列表,后续的事项处理均是在OA中完成。
- OA同步组织架构、发送消息、配置菜单到企业微信的时候,会先将OA的数据推送至微协同,微协同在同步至企业微信。
- OA版本必须高于或等于8.0SP2版本才支持私有化部署。
# 2、其他条件
- 文件夹的层级目录不能有中文名称
- 微协同私有化部署仅和服务号(即是公众号)、企业微信、welink相关
- 微协同服务使用的数据库为MySQL,私有化部署包中数据库连接的jar包版本为5.1.38,如果客户使用更高版本的MySQL,请下载对应兼容版本的数据库连接jar包,然后放到该目录下:wx-core-service\webapps\ROOT\WEB-INF\lib。如下图所示(如果忽略此步骤,微协同将无法启动!!!)。
- 建议使用MySQL5.6或MySQL5.7版本,如果使用高版本的MySQL8.x可能会导致数据库超时断开连接而无法自动连接的异常,引发业务上的各种报错。
5.微协同域名如果是通过nginx配置的,那么请在nginx-conf配置文件中,将underscores_in_headers on配置信息加到http块中去即可。可参考链接:https://blog.csdn.net/loongshawn/article/details/78199977 (如果忽略此步骤,微协同将无法收到消息!!!)
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
underscores_in_headers on; //增加此配置即可
#keepalive_timeout 0;
keepalive_timeout 65;
# 二、部署微协同服务
# 1、修改部署包目录文件
1、解压wx-private-deployment-package.zip文件,解压后应为这样
2、老的部署包解压后为这样
3、修改完毕后,保证jdk与wx-core-service这两个文件夹在同一层级
# 2、修改微协同服务启动端口
1、更改位于wx-core-service\conf目录下的server.xml
2、如果微协同服务地址为https的话,需要增加以下配置(增加配置后需要重启对应服务)
(如果忽略此步骤,微协同将无法正常配置成功!!!)
首先在nginx的nginx.conf中加入:
proxy_set_header X-Forwarded-Proto $scheme;
然后到\wx-core-service\conf目录下修改server.xml文件,添加:
注意:所加内容必须是放到Host标签下的第一个位置,如下图所示
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-forwarded-For"
protocolHeader="X-Forwarded-Proto"
ProtocolHeaderHttpsValue="https"/>
httpsServerPort="xxx"/> //当微协同地址的对应端口非443的时候,请加上此配置,并配置上对应的端口
# 3、环境配置(现在无需增加该配置,默认已经增加)
1.保证jdk与微协同包在同一目录下
2.wx-core-service/conf/server.xml 中ROOT目录配置
该目录下的server.xml,添加上。添加后应为下图配置
# 4、数据库(已有安装mysql,则新建数据库即可,必须是MySQL)
建议使用MySQL5.6或MySQL5.7版本,如果使用高版本的MySQL8.x可能会导致数据库超时断开连接而无法自动连接的异常,引发业务上的各种报错。
1.安装mysql,新建数据库名为wxt,字符集UTF-8,然后在客户端执行wx-private-deployment-package\sql-init\mysql
路径下的seeyonwx.sql
文件进行数据库初始化。
2.使用高版本的MySQL8.x的客户,需要将wx-core-service\webapps\ROOT\WEB-INF\lib该目录下的mysql-connector-java-8.0.20.jar注意替换为数据库对应的版本,参考前置条件中1.2.3。
# 5、修改hibernate.properties配置文件
1、文件中数据库配置,如下图:
\wx-core-service\webapps\ROOT\WEB-INF\classes\config\spring\hibernate.properties 或 \wx-core-service\webapps\ROOT\WEB-INF\classes\hibernate.properties
2、修改配置文件中的数据库账号密码、数据库连接地址、数据库名称、数据库连接url信息
useSSL=false&serverTimezone=Asia/Shanghai&
如果MySQL的版本是小于6的,配置文件中的信息需要做如下修改
如果MySQL的版本是大于6的,配置文件中的信息需要做如下修改:
# 6、修改sysinfo.properties配置文件
\wx-core-service\webapps\ROOT\WEB-INF\classes\sysinfo.properties
qyapi_url :企业微信地址,若企业微信私有部署,写私有部署企业微信地址
wx_url :微协同服务外网域名地址(切记要增加 http://,若有端口号,要带上端口号)
qyAdmin:设置登录名(后续登录微协同管理后台使用)
qyPassword:设置密码(后续登录微协同管理后台使用)
# 7、启动微协同服务
\wx-core-service\bin中,点击startup.bat启动
访问对应端口得到这个页面即表示启动正常
# 三、企业微信配置
# 1、创建自建应用
可见范围设置为全员
# 2、微协同数据库执行sql
1、首先,将下列的所有参数都获取到 【企业名称】、【CorpID】获取地方如下图
【应用AgentId】、【应用Secret】获取如下图
【OA对外地址】、【OA对外端口】获取如下图
【通讯录secret】获取如下图
若点开通讯录同步发现已托管给第三方,先点击取消同步
2、根据上述图例中的参数组装初始化SQL语句(需要注意的是,引号内的内容不要留有空格)
不想同步组织架构的客户可以不用填写 通讯录Secret信息,将其置为空即可。
INSERT INTO `WX_ACCOUNT` (`ID`, `WTYPE`, `APPSECRET`, `ACCOUNTNAME`, `XT_IP`, `XT_PORT`, `QY_TOKEN`,`AES_KEY`, `CORP_ID`, `AGENTID`, `QYSECRET`, `TEMPLATEID`)
VALUES ('zl8a83838d5aad2a0c01', 'wechat', '通讯录Secret', '企业名称', 'OA对外地址', 'OA对外端口号', 'caSzlxoMHvW5EOus8Q', 'zld2lGX7Xyd2KpDxo3540dRrUKrbMhgvwezlWNMm8XY', 'CorpID', '应用AgentId', '应用Secret', '1');
示例:
INSERT INTO `WX_ACCOUNT` (`ID`, `WTYPE`, `APPSECRET`, `ACCOUNTNAME`, `XT_IP`, `XT_PORT`, `QY_TOKEN`,`AES_KEY`, `CORP_ID`, `AGENTID`, `QYSECRET`, `TEMPLATEID`)
VALUES ('zl8a83838d5aad2a0c01', 'wechat', 'CUn2ql6WKJXFti0h_Ft7C7oCmtrWa-gd0n8XUnTQG2g', 'Leverage咨询公司', 'http://yanfa9.seeyon.com', '80', 'caSzlxoMHvW5EOus8Q', 'zld2lGX7Xyd2KpDxo3540dRrUKrbMhgvwezlWNMm8XY', 'ww5af1eeb8db0efb26', '1000025', 'LglgfvFynOgUUG61tlXBS7cLhpaLLp8t7gW-0cRtdGg', '1');
# 3、配置可信域名和可信IP
1、点开自建应用
2、**设置可信域名,如果微协同的对外域名带有端口号,这里可信域名要带上端口号,如果是443/80端口的话也要带上。请先点击【申请校验域名】,然后操作下一步,下载文件。**待下一步操作完毕后,域名校验则会通过。
3、将下载的txt认证文件放到 \wx-core-service\webapps\ROOT目录下
4、配置微协同服务的出口IP
# 四、管理端后台配置
# 1、微协同管理后台配置
https://weixin.seeyon.com/admin/loginIndex(域名替换成独立部署微协同服务器地址)
如下图:
用户名(sysinfo.properties设置的参数qyAdmin) 密码(sysinfo.properties设置的参数qyPassword)
点击创建菜单,输入执行SQL中的ID值(应为zl8a83838d5aad2a0c01),点击指定企业号菜单按钮
如果创建菜单的时候如果有“60020”的报错,需要参考3.3步骤,将提示的报错IP配置到企业微信后台-应用管理-企业可信IP处。
# 2、OA管理后台配置
登录集团管理员账号,点击【微协同管理平台】菜单,进入微协同基础设置页面,然后选择私有化部署,并填写对应微协同私有化地址,点击并校验通过
注意:协同服务器地址和微协同服务器地址必须都携带协议头和端口,端口后面不能携带任何斜杠和其他路由信息
# 3、设置应用主页
1、进入企业微信后台【应用管理】找到微协同所属的自建应用,在【自定义菜单】项中点击【已启用】
2、跳转页面如下所示,然后点击下图中红框标记处内容
3、跳转页面如下所示,然后再复制下图中红框标记处内容
4、进入企业微信后台【应用管理】找到微协同所属的自建应用,点击【应用主页】根据弹框页面提示将上一步复制的地址粘贴到该处
# 五、组织同步配置
私有化部署微协同后,若客户需要进行组织同步(同步是单向的,只能从OA->企业微信)。请先阅读微协同私有化部署-同步配置 (opens new window)手册,进行相应的同步前配置,如果没有配置直接同步则一定会出问题。
# 六、消息配置
登录OA后台,按照下图所示进行配置即可