1、配置
配置回调服务,需要有三个配置项,分别是:URL, Token, EncodingAESKey。
URL :需要以https:// 开头,因为我们是http的,所以需要去nginx里面配置proxy_pass代理转发,例如:
(注意路径)
Token用于计算签名,EncodingAESKey用于消息内容加密,都是在企业微信后台配置的,可以填写在配置文件里,到时候要用就直接获取配置文件里的内容。后台的配置如下:
(注意获取完Token和EncodingAESKey需要点击确定保存)
配置白名单:
2、加解密库下载与返回码
3、数据回调与指令回调(注意两个回调都需要支持GET和POST请求)
企业微信后台回调地址的校验过程:
1、先调用get请求验证url是否有效;(注意:若通过验证需返回明文)
2、再调用post请求发送回调消息,例如:每十分钟推送一次的suite_ticket 就是在指令post回调中接收的。(注意:若回调成功需返回"success")
FAQ:
1、回调url填写的是http
2、Token、EncodingAESKey 配置有误
会报:签名验证错误、sha加密生成签名失败、SymmetricKey非法等一些异常;
如下:
3、postman测试时:若随机字符串"echostr"参数中带有”+”号,因为编码原因,有时候”+”会变成空格,导致异常,测试需注意;
4、illegal Key Size异常导致解密失败
异常java.security.InvalidKeyException:illegal Key Size的解决方案:在官方网站下载JCE无限制权限策略文件(请到官网下载对应的版本, 例如JDK7的下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html ):下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。
如果安装了JRE,将两个jar文件放到%JRE_HOME% \lib\security目录下覆盖原来的文件,如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。
(jdk1.8的jce包)