企业微信H5_集成消息解密类,消息推送Get及Post回调处理

在这里插入图片描述

文章目录

          • 一、 验证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企业微信推送的消息->sMsg:<xml><ToUserName><![CDATA[wwea98220fdcd8a38d]]></ToUserName><FromUserName><![CDATA[ZeXin]]></FromUserName><CreateTime>1646043916</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你好,测试企业微信处理消息]]></Content><MsgId>7069704788922636053</MsgId><AgentID>1000002</AgentID></xml>
Content:你好,测试企业微信处理消息
回复->data:<xml><ToUserName><![CDATA[ZeXin]]></ToUserName><FromUserName><![CDATA[ZeXin]]></FromUserName><CreateTime>1646043916</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[this is a test]]></Content></xml>
3.8. 收到回复消息

在这里插入图片描述

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

后端:https://gitee.com/gblfy/qywx-inner-java
在这里插入图片描述

4.2. 前端源码

前端:https://gitee.com/gblfy/qywx-vuejs
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新一代高效Git协同模型AGit-Flow详解

【以下为分享实录&#xff0c;有删节】 Git工作流概述及AGit-Flow的优势 目前&#xff0c;Git已成为源代码管理的标准和基础设施。“为什么Git能这么成功”&#xff1f;Git的创建者Linux在Git十周年的一次采访中&#xff0c;道出了其中的奥秘&#xff1a; The big thing abo…

云原生人物志|APISIX温铭:让API网关“666”

云原生已无处不在&#xff0c;《云原生人物志》是CSDN重磅推出的系列原创采访&#xff0c;我们关注云原生中每一个技术人、公司的身影。知微见著&#xff0c;窥见云原生价值与趋势。 作者 | 宋慧 出品 | CSDN云计算 头图 | 付费下载于IC Photo 第一期&#xff0c;我们采访了唯…

xshell和Xftp连接Linux

xshell和Xftp连接Linux 简单介绍下这两种工具: Xshell :远程连接linux,执行命令行; Xftp :远程连接linux,可视化的实现windows和linux之间的文件传输; 2.关于如何获知linux的ip地址 在虚拟机中登录用户,输入用户名,密码: 此处注意一点:注意区分密码的大小写!!!,因为你在设置密…

企业微信_客户联系,获取客户及客户群列表及详情

文章目录一、调试接口1. 阅读文档2. 权限配置3. 指定应用二、POSTMAN调试接口2.1. 获取配置了客户联系功能的成员列表2.2. 获取客户列表2.3. 获取客户详情2.4. 获取客户群列表2.5. 获取客户群详情三、实战演练代码拆解3.1. 获取配置了客户联系功能的成员列表3.2. 获取客户列表3…

Flink 与 Hive 的磨合期

有不少读者反馈&#xff0c;参考上篇文章《Hive 终于等来了 Flink》部署 Flink 并集成 Hive 时&#xff0c;出现一些 bug 以及兼容性等问题。虽已等来&#xff0c;却未可用。所以笔者增加了这一篇文章&#xff0c;作为姊妹篇。 回顾 在上篇文章中&#xff0c;笔者使用的 CDH 版…

使用arthas排查cpu飙高问题

文章目录一1. 下载arthas2. 启动3. 选择指定jvm进程4. 筛选线程5. 日志分析一 官方文档&#xff1a;https://arthas.aliyun.com/doc 1. 下载arthas curl -O https://arthas.aliyun.com/arthas-boot.jar2. 启动 直接用java -jar的方式启动&#xff1a; java -jar arthas-bo…

oracle 数据库 字符串函数

oracle 数据库 字符串函数 介绍oracle对字符串的操作函数&#xff0c;如图所示&#xff0c;测试字段为&#xff1a;STUDENT 表的 STUNAME 字段 ps&#xff1a;oracle字符串索引从1开始 1.定位索引函数:instr() instr(str,char,begin,n) str:源字符串 char&#xff1a;目标字…

jvm如何排查生产环境cpu飙高的问题

文章目录一、生产环境 cpu 飙高产生的原因&#xff1f;1. CAS 自旋没有控制自旋次数2. 死循环3. 阿里云 Redis 被注入挖矿程序4. 服务器被 DDOS 工具攻击二、windows环境下如何排查cpu飙高问题2.1. 任务管理器2.2. jvisualvm三、环境下如何排查cpu飙高问题3.1. 监控命令3.2. 使…

云原生人物志|华为云CTO张宇昕:云原生已经进入深水区

云原生已无处不在&#xff0c;《云原生人物志》是CSDN重磅推出的系列原创采访&#xff0c;我们关注云原生中每一个技术人、公司的身影。知微见著&#xff0c;窥见云原生价值与趋势。 作者 | 宋慧 出品 | CSDN云计算 头图 | 华为云网站 云原生成为云计算领域当之无愧的最热门技…

开箱即用,Knative 给您极致的容器 Serverless 体验

作者 | 冬岛 阿里巴巴技术专家 导读&#xff1a;托管 Knative 开箱即用&#xff0c;您不需要为这些常驻实例付出任何成本。结合 SLB 云产品提供 Gateway 的能力以及基于突发性能型实例的保留规格功能&#xff0c;极大的节省您的 IaaS 开支&#xff0c;您支付的每一分钱都没有浪…

oracle 11g 数据库cmd修改用户名密码及创建用户

oracle 11g 数据库cmd修改用户名密码及创建用户1. 数据库oracle 11g cmd命令修改用户名和密码1.1. 前言1.2. cmd窗口登录oracle1.3. 更改system用户的密码1.4. 测试修改成果2. 创建新用户并赋予权限2.1. cmd窗口登录oracle2.2.创建用户2.3.分配权限2.4.oracle用户权限等级1. 数…

全国交通智慧升级,阿里云视频上云打造高速公路“视觉中枢”

2019年底&#xff0c;交通运输部办公厅发布《全国高速公路视频联网监测工作实施方案》和《全国高速公路视频联网技术要求》&#xff0c;全面加快推进可视、可测、可控、可服务的高速公路运行监测体系建设。2020年底&#xff0c;基本建立全国高速公路视频联网监测管理机制和制度…

mysql 与 redis 如何保证数据一致性问题 ?

1.先更新 mysql 数据&#xff0c; 再手动清除 Redis 缓存 &#xff0c; 最后重新查询最新的数据同步到Redis中&#xff0c;保证最终一致性。 2.更新 mysql 数据&#xff0c; 在采用 mq 异步的形式 同步数据到 Redis 中 。 缺点&#xff1a; 延迟概率就比较大 优点&#xff1a…

赠书 | 隐私计算:让你的数据信息不再“裸奔”

来源 | 人民数字FINTECH责编 | 晋兆雨头图 | 付费下载于视觉中国*文末有赠书福利在互联网时代&#xff0c;数据隐私泄露到底有多严重&#xff1f;近日&#xff0c;微博大V袁启聪发布微博称&#xff0c;两周前接到一个私人手机号码来电&#xff0c;来电者自称是招商银行的&#…

阿里云开放平台微前端方案的沙箱实现

导读 微前端已经成为前端领域如今比较火爆的话题&#xff0c;关于微前端价值的讨论&#xff0c;可以参考克军的《拥抱云时代的前端开发框架——微前端》。微前端在技术方面&#xff0c;有一个始终绕不过去话题就是前端沙箱。本篇具体探讨一下&#xff0c;在微前端领域如何实现前…

idea全局搜索快捷鍵ctrl+shift+F失效

idea全局搜索快捷鍵ctrlshiftF失效 1.确认是否修改了默认的快捷键配置&#xff1a; file-settings-keymap,在右边的放大镜中搜索find in Path 确认快捷键设置的是&#xff1a;ctrlshiftF 2.快捷键冲突&#xff08;常见的就是和输入法快捷键冲突&#xff09; 以我的win10自带…

生产环境遇到难题,你是如何解决的?

文章目录1. 生产环境 cpu 飙高产生的原因&#xff1f;2. 生产环境如何排查cpu 飙高问题&#xff1f;3. 生产环境遇到了报错&#xff0c;你是如何定位解决的呢&#xff1f;4. 调用接口如果服务器端一直没有响应怎么解决&#xff1f;5. 你在开发过程中&#xff0c;遇到哪些难题&a…

OpenKruise v0.5.0 版本发布,支持无损的流式分批发布策略

作者 | 酒祝 阿里云技术专家 导读&#xff1a;OpenKruise 是阿里云开源的大规模应用自动化管理引擎&#xff0c;在功能上对标了 Kubernetes 原生的 Deployment/StatefulSet 等控制器&#xff0c;但 OpenKruise 提供了更多的增强功能如 优雅原地升级、发布优先级/打散策略、多可…

真正的程序员,从来不会告诉你这些事!

有没有发现&#xff0c;每个程序员都曾有过这样的疑问&#xff1a;我该从事什么技术方向&#xff1f;相信很多人都会跟你说&#xff1a;找个“钱景”好的&#xff0c;找个简单的&#xff0c;找个应用广的.....听着好像都很有道理&#xff0c;但很多人学了很久后才发现&#xff…

Idea更改console控制台 日志颜色(非插件)

Idea更改console控制台 日志颜色&#xff08;非插件&#xff09; file-setting-editor-color scheme-console colors 在右侧的选项中可以自定义更改颜色 我之前控制台日志都是亮青色。晃眼睛&#xff0c;就干脆把idea的亮青换成了黑色。 之前&#xff1a; 之后&#xff1a;…