# 微协同私有化部署手册-Windows版

# 一、前置条件

私有化部署,需要满足如下条件:

# 1、网络条件

  1. 协同系统的访问地址是公网地址,可以是IP也可以是域名,域名的话最好是备案过的(避免企业微信校验为非法域名,禁止访问),OA在内网的客户可以使用反向代理,分离部署方案。
  2. 微协同服务和OA服务需要能够互相访问到
  3. 微协同服务器地址必须为域名(企业微信配置可信域名使用到,私有化企业微信无限制),并且为公网地址。
  4. 微协同基础配置这里的校验是,OA和微协同服务能够互相访问到,双方互相访问成功后,OA会将rest账号密码推送至微协同服务(rest账号密码的作用就是获取访问OA的token,即是访问权限)。
  5. 用户通过企业微信APP/PC客户端访问微协同的时候,微协同先到企业微信中认证;再通过rest信息获取token到OA中认证,认证完毕后跳转至待办列表,后续的事项处理均是在OA中完成。
  6. OA同步组织架构、发送消息、配置菜单到企业微信的时候,会先将OA的数据推送至微协同,微协同在同步至企业微信。
  7. OA版本必须高于或等于8.0SP2版本才支持私有化部署。

# 2、其他条件

  1. 文件夹的层级目录不能有中文名称
  2. 微协同私有化部署仅和服务号(即是公众号)、企业微信、welink相关
  3. 微协同服务使用的数据库为MySQL,私有化部署包中数据库连接的jar包版本为5.1.38,如果客户使用更高版本的MySQL,请下载对应兼容版本的数据库连接jar包,然后放到该目录下:wx-core-service\webapps\ROOT\WEB-INF\lib。如下图所示(如果忽略此步骤,微协同将无法启动!!!)。
  4. 建议使用MySQL5.6或MySQL5.7版本,如果使用高版本的MySQL8.x可能会导致数据库超时断开连接而无法自动连接的异常,引发业务上的各种报错。

1678245579139.png

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文件,解压后应为这样

1678245491641.png

2、老的部署包解压后为这样

1678245491641.png

3、修改完毕后,保证jdk与wx-core-service这两个文件夹在同一层级

1678245839023.png

# 2、修改微协同服务启动端口

1、更改位于wx-core-service\conf目录下的server.xml

1678245151641.png 1678245491671.png

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的时候,请加上此配置,并配置上对应的端口

1733729458005.png

# 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文件进行数据库初始化。

1678249541762.png

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

1678249672323.png

2、修改配置文件中的数据库账号密码、数据库连接地址、数据库名称、数据库连接url信息

useSSL=false&serverTimezone=Asia/Shanghai&

如果MySQL的版本是小于6的,配置文件中的信息需要做如下修改

1678250485117.png

如果MySQL的版本是大于6的,配置文件中的信息需要做如下修改:

1723540879116.png

# 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、点开自建应用

1678271204719.png

2、**设置可信域名,如果微协同的对外域名带有端口号,这里可信域名要带上端口号,如果是443/80端口的话也要带上。请先点击【申请校验域名】,然后操作下一步,下载文件。**待下一步操作完毕后,域名校验则会通过。

3、将下载的txt认证文件放到 \wx-core-service\webapps\ROOT目录下

4、配置微协同服务的出口IP

1678271455162.png

# 四、管理端后台配置

# 1、微协同管理后台配置

https://weixin.seeyon.com/admin/loginIndex(域名替换成独立部署微协同服务器地址)

如下图:

用户名(sysinfo.properties设置的参数qyAdmin) 密码(sysinfo.properties设置的参数qyPassword)

点击创建菜单,输入执行SQL中的ID值(应为zl8a83838d5aad2a0c01),点击指定企业号菜单按钮

如果创建菜单的时候如果有“60020”的报错,需要参考3.3步骤,将提示的报错IP配置到企业微信后台-应用管理-企业可信IP处。

1699348227263.png

# 2、OA管理后台配置

登录集团管理员账号,点击【微协同管理平台】菜单,进入微协同基础设置页面,然后选择私有化部署,并填写对应微协同私有化地址,点击并校验通过

1718274498412.png

注意:协同服务器地址和微协同服务器地址必须都携带协议头和端口,端口后面不能携带任何斜杠和其他路由信息

# 3、设置应用主页

1、进入企业微信后台【应用管理】找到微协同所属的自建应用,在【自定义菜单】项中点击【已启用】

1717146694811.png

2、跳转页面如下所示,然后点击下图中红框标记处内容

1717146765174.png

3、跳转页面如下所示,然后再复制下图中红框标记处内容

1717146863769.png

4、进入企业微信后台【应用管理】找到微协同所属的自建应用,点击【应用主页】根据弹框页面提示将上一步复制的地址粘贴到该处

1717147333420.png

# 五、组织同步配置

私有化部署微协同后,若客户需要进行组织同步(同步是单向的,只能从OA->企业微信)。请先阅读微协同私有化部署-同步配置 (opens new window)手册,进行相应的同步前配置,如果没有配置直接同步则一定会出问题

# 六、消息配置

登录OA后台,按照下图所示进行配置即可

1717147685950.png

创建人:het
修改人:tanghu、lichaoj