企业微信中设置回调接口url以及验证 spring boot项目实现
官方文档:
加密解密文档:加解密库下载与返回码 - 文档 - 企业微信开发者中心

下载java样例
加解密库下载与返回码 - 文档 - 企业微信开发者中心

将解压开的代码
‘将文件夹:qq\weixin\mp\aes的代码作为工具拷到项目中

pom文件中加入
<!--企业微信中用于加密解码--><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId></dependency>
编写会回调接口
/*** 企业微信*/
@RestController
@RequestMapping("/api/qyWx")
public class WxQyController extends BaseController {//tokenpublic final static String TOKEN = "企业微信中的";// encodingAESKeypublic final static String ENCODINGAES_KEY = "使用自己生成的企业微信自动生成的有问题测试";//企业IDpublic final static String CORP_ID = "XXXXX";@GetMapping("/callback")public void list(HttpServletRequest request, HttpServletResponse response) throws IOException {// 微信加密签名String msg_signature = request.getParameter("msg_signature");// 时间戳String timestamp = request.getParameter("timestamp");// 随机数String nonce = request.getParameter("nonce");// 随机字符串String echostr = request.getParameter("echostr");System.out.println("request=" + request.getRequestURL());System.out.println("msg_signature=" + msg_signature);System.out.println("timestamp=" + timestamp);System.out.println("nonce=" + nonce);System.out.println("echostr=" + echostr);PrintWriter out = response.getWriter();// 通过检验msg_signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败String result = null;try {WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(TOKEN, ENCODINGAES_KEY, CORP_ID);result = wxcpt.VerifyURL(msg_signature, timestamp, nonce, echostr);} catch (AesException e) {e.printStackTrace();}if (result == null) {result = TOKEN;}out.print(result);out.close();out = null;}//自主生成EncodingAESKey@RequestMapping("/getEncodingAESKey")public String getEncodingAESKey() {/*** 主要解决有时候直接使用企业微信那边生成的EncodingAESKey会报错* “Last encoded character (before the paddings if any) is a valid base 64 alphabet but not a possible value",** 使用 commons-codec 加密 32 位字符(我是用的 UUID 生成 ID 后去除 -)* 生成一个 EncodingAESKey 替换微信生成的 EncodingAESKey* Base64.encodeBase64String(UUID.randomUUID().toString().replaceAll("-","").getBytes());* 第二步得到一个 44 位字符串,需要去除末尾等号得到 43 位EncodingAESKey,再去企业微信配置此EncodingAESKey*/String str = Base64.encodeBase64String(UUID.randomUUID().toString().replaceAll("-","").getBytes());return str;}}
相关文章:
企业微信中设置回调接口url以及验证 spring boot项目实现
官方文档: 接收消息与事件: 加密解密文档:加解密库下载与返回码 - 文档 - 企业微信开发者中心 下载java样例 加解密库下载与返回码 - 文档 - 企业微信开发者中心 将解压开的代码 ‘将文件夹:qq\weixin\mp\aes的代码作为工具拷…...
电脑超频是什么意思?超频的好处和坏处
嗨,亲爱的小伙伴!你是否曾经听说过电脑超频?在电脑爱好者的圈子里,这个词似乎非常熟悉,但对很多普通用户来说,它可能还是一个神秘而陌生的存在。 今天,我将带你揭开超频的神秘面纱,…...
在 AMD GPU 上构建深度学习推荐模型
Deep Learning Recommendation Models on AMD GPUs — ROCm Blogs 2024 年 6 月 28 日 发布者 Phillip Dang 在这篇博客中,我们将演示如何在支持 ROCm 的 AMD GPU 上使用 PyTorch 构建一个简单的深度学习推荐模型 (DLRM)。 简介 DLRM 位于推荐系统和深度学习的交汇…...
阿里云IIS虚拟主机部署ssl证书
宝塔配置SSL证书用起来是很方便的,只需要在站点里就可以配置好,但是云虚拟主机在管理的时候是没有这个权限的,只提供了简单的域名管理等信息。 此处记录下阿里云(原万网)的IIS虚拟主机如何配置部署SSL证书。 进入虚拟…...
Python运算符列表
运算符 描述 xy,x—y 加、减,“"号可重载为连接符 x*y,x**y,x/y,x%y 相乘、求平方、相除、求余,“*”号可重载为重复,“%"号可重载为格式化 <,<,&…...
MFC图形函数学习09——画多边形函数
这里所说的多边形是指在同一平面中由多条边构成的封闭图形,强调封闭二字,否则无法进行颜色填充,多边形包括凸多边形和凹多边形。 一、绘制多边形函数 原型:BOOL Polygon(LPPOINT lpPoints,int nCount); 参数&#x…...
GaussianDreamer: Fast Generation from Text to 3D Gaussians——点云论文阅读(11)
此内容是论文总结,重点看思路!! 文章概述 本文提出了一种快速从文本生成3D资产的新方法,通过结合3D高斯点表示、3D扩散模型和2D扩散模型的优势,实现了高效生成。该方法利用3D扩散模型生成初始几何,通过噪声…...
k8s篇之控制器类型以及各自的适用场景
1. k8s中控制器介绍 在 Kubernetes 中,控制器(Controller)是集群中用于管理资源的关键组件。 它们的核心作用是确保集群中的资源状态符合用户的期望,并在需要时自动进行调整。 Kubernetes 提供了多种不同类型的控制器,每种控制器都有其独特的功能和应用场景。 2. 常见的…...
Node.js 笔记(一):express路由
代码 建立app.js文件,代码如下: const express require(express) const app express() const port 3002app.get(/,(req,res)>{res.send(hello world!)})app.listen(port,()>{console.log(sever is running on http://localhost:${port}) })问…...
bash笔记
0 $0 是脚本的名称,$# 是传入的参数数量,$1 是第一个参数,$BOOK_ID 是变量BOOK_ID的内容 1 -echo用于在命令窗口输出信息 -$():是命令替换的语法。$(...) 会执行括号内的命令,并将其输出捕获为一个字符串ÿ…...
mongoDB副本集搭建-docker
MongoDB副本集搭建-docker 注:在进行副本集搭建前,请先将服务部署docker环境并正常运行。 #通过--platform指定下载镜像的系统架构 在这我用的是mongo:4.0.28版本 arm64系统架构的mongo镜像 docker pull --platformlinux/arm64 mongo:4.0.2#查看镜像是…...
Python软体中使用 Flask 或 FastAPI 搭建简单 RESTful API 服务并实现限流功能
Python软体中使用 Flask 或 FastAPI 搭建简单 RESTful API 服务并实现限流功能 引言 在现代 web 开发中,RESTful API 已成为应用程序之间进行通信的标准方式。Python 提供了多种框架来帮助开发者快速搭建 RESTful API 服务,其中 Flask 和 FastAPI 是最受欢迎的两个框架。本…...
CentOS操作系统下安装Nacos
CentOS下安装Nacos 前言 这在Centos下安装配置Nacos 下载Linux版Nacos 首先到Nacos的 Github页面,找到所需要安装的版本 也可以右键复制到链接,然后通过wget命令进行下载 wget https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-ser…...
C++设计模式之适配器模式与桥接模式,装饰器模式及代理模式相似点与不同点
适配器模式、桥接模式、装饰器模式和代理模式在形式上有一些相似之处,因为它们都涉及到对类的功能或接口的修改、增强或转换。然而,它们在动机和目的上有着显著的不同。以下是对这些模式相似点和不同点的清晰说明: 相似点: 结构…...
ThreadLocal 和 Caffeine 缓存是两种不同的缓存机制,它们在用途和实现上有明显的区别
ThreadLocal 和 Caffeine 缓存是两种不同的缓存机制,它们在用途和实现上有明显的区别: ThreadLocal 缓存: ThreadLocal 提供了线程局部变量的功能,每个线程可以访问自己的局部变量,而不会与其他线程冲突。ThreadLocal …...
Django实现智能问答助手-进一步完善
扩展 增加问答数据库,通过 Django Admin 添加问题和答案。实现更复杂的问答逻辑,比如使用自然语言处理(NLP)库。使用前端框架(如 Bootstrap)增强用户界面 1.注册模型到 Django Admin(admin.py…...
【Linux】开发工具make/Makefile、进度条小程序
Linux 1.make/Makefile1.什么是make和Makefile?2.stat命令3.Makefile单个文件的写法4.Makefile多个文件的写法 2.进度条1.回车\r、换行\n2.缓冲区3.进度条1.倒计时程序2.进度条程序 1.make/Makefile 1.什么是make和Makefile? 一个工程中的源文件不计其…...
深度学习三大框架对比与实战:PyTorch、TensorFlow 和 Keras 全面解析
深度学习框架的对比与实践 引言 在当今深度学习领域,PyTorch、TensorFlow 和 Keras 是三大主流框架。它们各具特色,分别满足从研究到工业部署的多种需求。本文将通过清晰的对比和代码实例,帮助你了解这些框架的核心特点以及实际应用。 1. 深…...
Leetcode206.反转链表(HOT100)
链接: 我的代码: class Solution { public:ListNode* reverseList(ListNode* head) {ListNode* p head;ListNode*res new ListNode(-1);while(p){ListNode*k res->next;res->next p;p p->next;res->next->next k;}return res->…...
怎么做好白盒测试?
白盒测试 一、什么是白盒测试?二、白盒测试特点三、白盒测试的设计方法1、逻辑覆盖法1、测试设计方法—语句覆盖a、用例设计如下:b、语句覆盖的局限性 2、测试设计方法—判定覆盖a、测试用例如下:b、判定覆盖的局限性 3、测试设计方法—条件覆…...
从STM32到华大HC32F460:手把手移植USB HOST MSC + FatFs R0.13c(含源码对比与避坑指南)
从STM32到华大HC32F460:USB HOST MSC与FatFs移植实战全解析 1. 迁移背景与核心挑战 对于长期使用STM32的嵌入式开发者而言,切换到华大半导体HC32F460系列MCU既是一次技术升级,也面临实际移植的挑战。USB HOST MSC(Mass Storage Cl…...
QAbstractTableModel进阶实战:构建可编辑数据表格的完整指南
1. 从零理解QAbstractTableModel的核心机制 第一次接触Qt模型视图框架时,很多人会被QAbstractTableModel这个抽象类吓到。但当我真正用它完成第一个可编辑表格后,发现它的设计其实非常优雅。想象你正在开发一个学生管理系统,需要展示包含姓名…...
鸿蒙 App 的 Task + State 双核心架构
子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...
从Distributed到Lumped:三种SPEF寄生模型,你的芯片时序分析该选哪一个?
芯片时序分析中的SPEF模型选择:精度与效率的终极权衡 在28nm以下工艺节点,互连线寄生效应导致的时序偏差可能占到整体时钟周期的30%以上。面对动辄数千万个net的现代SoC设计,工程师们不得不在模型精度与运行时间之间做出艰难抉择。就像一位资…...
计算机毕业设计:Python智慧医疗数据可视化与疾病预测系统 Flask框架 随机森林 机器学习 疾病数据 智慧医疗 深度学习(建议收藏)✅
博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...
Sticky:重新定义Linux桌面数字便利贴的智能助手
Sticky:重新定义Linux桌面数字便利贴的智能助手 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 你是否曾在紧张的编程调试中,突然想到一个关键算法优化方案࿰…...
从“抄答案”到“会解题”:我是如何利用头歌实训平台,真正掌握Python数据分析的?
从“抄答案”到“会解题”:我的Python数据分析思维进阶之路 记得第一次打开头歌实训平台的Python数据分析题目时,我像大多数初学者一样,迫不及待地寻找"正确答案"。复制、粘贴、运行——看到绿色通过提示的瞬间,以为自己…...
基于Python的Discord机器人开发:从自动化管理到插件化架构实战
1. 项目概述:一个为Discord社区量身打造的智能助手 如果你在运营一个Discord服务器,无论是游戏公会、技术社区还是兴趣小组,肯定遇到过这样的场景:新成员加入后,需要手动发送欢迎消息、引导他们阅读规则;成…...
反向传播不神秘:手把手调试一个计算图,看梯度是怎么‘流’回来的
反向传播不神秘:手把手调试一个计算图,看梯度是怎么"流"回来的 在深度学习的实践中,我们常常会调用loss.backward()这样的魔法函数,然后梯度就自动计算好了。但这个过程究竟发生了什么?为什么调整参数时梯度…...
二分查找算法:中间值左偏还是右偏?
还记得吗?我们在前面探讨了区间的选择和主循环的停止判断条件,但是没有提到 中间索引位置的计算公式 middle(st, ed)。当区间的长度是奇数时,中间索引只有一个位置 mid (st ed) / 2,而当区间长度是偶数时,中间索引就…...
