# 微信服务号集成微协同
# 1.1 前置条件
满足使用条件才可以进行私有化微信功服务号部署。
- 请确认协同系统可以与微协同系统网络互相联通,否则无法进行配置。
- 请确认微协同系统可以访问微信服务号,否则无法推送消息。
- 层级目录不能有中文名称。
- 协同系统的访问地址是公网地址,必须是备案的域名,OA在内网的客户可以使用反向代理,分离部署方案。
- 微协同服务器地址必须为备案的域名,端口为80或者443,且必须是公网地址。后续再配置该地址的时候,只需要配置域名即可,无需配置端口。(例如地址为:https://weixin.seeyon.com:443,那么只需要配置https://weixin.seeyon.com。无需配置端口。仅仅是微协同地址的配置,OA地址依然是正常配置需要携带端口)
- OA版本必须高于或等于8.0SP2版本才支持私有化部署。
- 私有化部署微协同仅支持服务号集成,不支持订阅号集成。
- 确认用户是什么类型服务,下面表示服务号。

- 微协同访问地址以及OA访问地址如果是通过nginx配置的,那么请在nginx-conf配置文件中,将underscores_in_headers on配置信息加到http块中去即可。 可参考链接:https://blog.csdn.net/loongshawn/article/details/78199977
(如果忽略此步骤,微协同将无法收到消息!!! 配置完毕后请在微协同基础配置处重新点击确定保存通过)

# 1.2 部署微服务
# 1.2.1 微协同文件
解压wx-core-service.zip文件:

# 1.2.2 改名jdk和wx-core-service 文件夹名称
修改完毕后,保证jdk与wx-core-service这两个文件夹在同一层级

# 1.2.2.1 Linux环境
若为Linux环境,修改下wx-core-service文件夹所有文件权限, 执行chmod -R 777 wx-core-service

# 1.2.3 微服务端口配置
端口配置如需更改,修改\wx-core-service\conf目录下的server.xml。具体步骤如下:


如果微协同服务地址为https的话,需要增加以下配置(增加配置后需要重启对应服务)
(如果忽略此步骤,微协同将无法配置成功!!!)
首先在nginx的nginx.conf中加入:
proxy_set_header X-Forwarded-Proto $scheme;
然后到\wx-core-service\conf目录下修改server.xml文件,添加:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-forwarded-For"
protocolHeader="X-Forwarded-Proto"
ProtocolHeaderHttpsValue="https"
httpsServerPort="xxx"/>
注意:所加内容必须是放到Host标签下的第一个位置,如下图所示

# 1.2.4 数据库配置
安装mysql,新建数据库wxt,字符集UTF-8,客户端执行seeyonwx.sql进行数据库初始化。
注意:
1.linux环境在/etc/my.cnf中的[mysqld]后添加添加如下配置,表名不区分大小写:
lower_case_table_names=1
2.微协同服务使用的数据库为MySQL,私有化部署包中数据库连接的jar包版本为5.1.38,如果客户使用更高版本的MySQL,请下载对应兼容版本的数据库连接jar包。wx-core-service\webapps\ROOT\WEB-INF\lib该目录下的mysql-connector-java-8.0.20.jar注意替换为数据库对应的版本。如下图所示,需要下载高版本的jar替换低版本的。

# 1.2.5 修改hibernate.properties
wx-core-service\webapps\ROOT\WEB INF\classes\hibernate.properties 文件中数据库配置,如下图:

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

如果MySQL的版本是大于6的,配置文件中的信息需要做如下修改:
useSSL=false&serverTimezone=Asia/Shanghai&

# 1.2.6 修改sysinfo.properties
\wx-core-service\webapps\ROOT\WEB-INF\classes\sysinfo.properties
qyapi_url :企业微信地址,若企业微信私有部署,写私有部署企业微信地址。 wx_url :微协同服务外网域名地址(切记要增加协议 http://或https:// 鉴于服务号的地址的端口只能是80或443,因此不需要配置端口。例如:https://weixin.seeyon.com,无端口配置 qyAdmin:设置登录名(后续登录微协同管理后台使用)。 qyPassword:设置密码(后续登录微协同管理后台使用。
注意:服务号配置参考:1.3.1 服务号开发信息配置到sysinfo

# 1.2.7 启动服务
\wx-core-service\bin中,点击startup.bat启动:

访问对应端口得到这个页面即表示启动正常:

# 1.3 微信服务号后端配置
# 1.3.1 微协同安装程序webapps\ROOT\WEB-INF\classes此路径下的sysinfo.properties文件配置微信公众号的appid和appsecret相应信息
下图中ip白名单配置微协同服务器的地址,并将appid和appsecret配置到sysinfo.properties文件中

# 1.3.2 微信公众号,配置功能设置以及安全域名
根据微信公众号的要求配置业务域名、JS接口安全域名、网页授权域名(此处注意域名和sysinfo.properties文件中的wx_url一致,但这里只写域名,不需要协议和端口)注意的是微协同服务是必须是80或者是https对应的443端口

1、业务域名:将微协同服务的地址填上后保存即可 2、JS接口安全域名:将微协同服务的地址填上后保存,并将该txt文件下载下来,放在微协同服务器微协同安装目录下webapps\ROOT下,然后启动微协同服务,然后关闭当前页

3、网页授权域名:将微协同服务的地址填上后保存

# 1.4 配置微信公众号菜单
微信公众号已有菜单:在原来的菜单上创建一个菜单,选择跳转网页:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=https://微协同地址/menuController/getMenu?accountid=&response_type=code&scope=snsapi_base&state=123#wechat_redirect
APPID:微信公众号的APPID
微协同地址: 微协同服务的地址


微信公众号没有菜单:微协同的后台管理中创建,也可以根据有菜单的情况创建

# 1.5 消息模板配置
1、公众号设置-账号详情-服务类目处,先添加"商业服务-企业管理"类目

2、如果没有开通模板消息,需要先开通,一般1-2天就可以了



3、在模板消息-类模板库中搜索“OA”模板名称,找到"OA系统流程审批通知"标题,进入详情进行配置。注意模板详情中的关键词展示顺序,一定要如图所示,不能多也不能少。


4、配置sysinfo.properties文件,将模板ID配置到mp_message_template_id参数项中,mp_message_template_title参数项配置oa_approval即可。保存后重启微协同服务即可生效。


# 1.6 配置OA后台
1、协同服务器地址为OA外网地址,请注意格式,端口后面不要携带 “/” 斜杠这些东西。默认端口为80或443的时候也需要填写上。
2、微协同服务器地址为微协同访问外网地址,请注意格式,端口后面不要携带 “/” 斜杠这些东西。默认端口为80或443的时候不需要填写上。(此处的地址与和sysinfo.properties文件中的wx_url一致,也和公众号后台配置的网页授权等地址一致,一模一样。)
