国家网站后缀,个人接外包的网站,做资源分享网站怎么样,成都网络公关公司文章目录一、 验证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. 参数处… 文章目录一、 验证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.com\qq\weixin\mp\aes目录下是用户需要用到的接入企业微信的接口其中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%\lib\security目录下覆盖原来的文件如果安装了JDK将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件从Readme.txt文件内容我们分析如下 1.com\qq\weixin\mp\aes目录下提供了一些加解密的工具类 2.WXBizMsgCrypt用途在于回调url收到用户回复消息的解密以及开发者回复消息的加密过程。Sample.java文件为案例代码 3.commons-codec-1.9的依赖
二、实战集成
2.1. 工具类拷贝
将com\qq\weixin\mp\aes目录下的工具类复制到项目的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企业微信推送的消息-sMsgxmlToUserName![CDATA[wwea98220fdcd8a38d]]/ToUserNameFromUserName![CDATA[ZeXin]]/FromUserNameCreateTime1646043916/CreateTimeMsgType![CDATA[text]]/MsgTypeContent![CDATA[你好测试企业微信处理消息]]/ContentMsgId7069704788922636053/MsgIdAgentID1000002/AgentID/xml
Content你好测试企业微信处理消息
回复-dataxmlToUserName![CDATA[ZeXin]]/ToUserNameFromUserName![CDATA[ZeXin]]/FromUserNameCreateTime1646043916/CreateTimeMsgType![CDATA[text]]/MsgTypeContent![CDATA[this is a test]]/Content/xml3.8. 收到回复消息 四、源码分享
4.1. 后端源码
后端https://gitee.com/gblfy/qywx-inner-java
4.2. 前端源码
前端https://gitee.com/gblfy/qywx-vuejs