栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

企业微信H5

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

企业微信H5

文章目录

一、 验证URL有效性

1. 阅读文档2. 文档分析3. 加解密方案说明4. 下载加解密算法5. 案例分析 二、实战集成

2.1. 工具类拷贝2.2. 依赖引入2.3. 案例1集成2.4. 参数处理2.5. 重启项目2.6. 验证URL有效性2.7. 验证 三、消息接收与处理

3.1. 文档阅读3.2. 案例2拷贝3.3. 参数处理3.4. 重启项目3.5. 发送消息3.6. 验证3.7. 日志监控3.8. 收到回复消息 四、源码分享

4.1. 后端源码4.2. 前端源码

一、 验证URL有效性

官网文档:https://developer.work.weixin.qq.com/document/path/90238

1. 阅读文档

当点击“保存”提交以上信息时,企业微信会发送一条验证消息到填写的URL,请求方式为GET。
企业的接收消息服务器接收到验证请求后,需要作出正确的响应才能通过URL验证

2. 文档分析

从文档可以知道,咱们再应用管理配置的接收消息服务期配置的url,企业微信会发送一个get请求携带4个参数(msg_signature、timestamp、nonce、echostr)来验证URL有效性

3. 加解密方案说明

点击进入 加解密方案说明

4. 下载加解密算法

鉴于加解密算法相对复杂,企业微信提供了算法库,目前已有c++/python/php/java/golang/c#等语言版本。均提供了解密、加密、验证URL三个接口,企业可根据自身需要下载,下载下载地址

5. 案例分析

打开Readme.txt

注意事项
1.comqqweixinmpaes目录下是用户需要用到的接入企业微信的接口,其中WXBizMsgCrypt.java文件提供的WXBizMsgCrypt类封装了用户接入企业微信的三个接口,其它的类文件用户用于实现加解密,用户无须关心。sample.java文件提供了接口的使用求例。
2.WXBizMsgCrypt封装了VerifyURL, DecryptMsg, EncryptMsg三个接口,分别用于开发者验证回调url,收到用户回复消息的解密以及开发者回复消息的加密过程。使用方法可以参考Sample.java文件。
3.加解密协议请参考企业微信官方文档。
4.请开发者使用jdk1.6以上的版本。针对org.apache.commons.codec.binary.base64,需要导入架包commons-codec-1.9(或commons-codec-1.8等其他版本),我们有提供,官方下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi

****请特别注意******
5.异常java.security.InvalidKeyException:illegal Key Size的解决方案:
在官方网站下载JCE无限制权限策略文件(JDK7的下载地址:
http://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%libsecurity目录下覆盖原来的文件,如果安装了JDK,将两个jar文件放到%JDK_HOME%jrelibsecurity目录下覆盖原来文件

从Readme.txt文件内容我们分析如下:
1.comqqweixinmpaes目录下提供了一些加解密的工具类
2.WXBizMsgCrypt用途在于回调url,收到用户回复消息的解密以及开发者回复消息的加密过程。Sample.java文件为案例代码
3.commons-codec-1.9的依赖

二、实战集成 2.1. 工具类拷贝

将comqqweixinmpaes目录下的工具类复制到项目的com.gblfy.qywxinner.qywxdecode包下面

2.2. 依赖引入

在项目的pom.xml文件中引入commons-codec依赖

2.3. 案例1集成

在项目com.gblfy.qywxinner.controller包下的MessageController类中添加callback方法,将Sample.java类中将案例1代码复制过来,将sToken、sCorpID、sEncodingAESKey配置信息替换为自己的

2.4. 参数处理

由于企业微信会携带4个参数(msg_signature、timestamp、nonce、echostr)请求咱们的配置验证url有效性的地址(http://4663588nl3.zicp.vip/message/callback),因此,咱们需要从callback方法中接收企业微信传过来的参数sVerifyMsgSig、sVerifyTimeStamp、sVerifyNonce、sVerifyEchoStr
写法如图

2.5. 重启项目

2.6. 验证URL有效性

然后,执行以下操作,重新保存

2.7. 验证

点击保存机会请求咱们的配置的url地址,进入咱们callback的方法中,进行加解密操作,然后,返回。

三、消息接收与处理 3.1. 文档阅读

接收企业微信传递过来的参数和回复
请求方式为POST,同一个地址(http://4663588nl3.zicp.vip/message/callback)

3.2. 案例2拷贝

在项目com.gblfy.qywxinner.controller包下的MessageController类中添加callbackData方法,将Sample.java类中将案例2代码复制过来,将sToken、sCorpID、sEncodingAESKey配置信息替换为自己的

3.3. 参数处理

由于企业微信会携带4个参数(msg_signature、timestamp、nonce)请求咱们的配置验证url有效性的地址(http://4663588nl3.zicp.vip/message/callback),因此,咱们需要从callback方法中接收企业微信传过来的参数sVerifyMsgSig, sReqTimeStamp, sReqNonce, sRespData,其中sRespData是咱们的消息体
写法如图

3.4. 重启项目

3.5. 发送消息

3.6. 验证

3.7. 日志监控

控制台日志

解密decrypt企业微信推送的消息->sMsg:164604391670697047889226360531000002
Content:你好,测试企业微信处理消息
回复->data:1646043916
3.8. 收到回复消息

四、源码分享 4.1. 后端源码

后端:https://gitee.com/gblfy/qywx-inner-java

4.2. 前端源码

前端:https://gitee.com/gblfy/qywx-vuejs

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749762.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号