微信消息推送配置token验证

留一篇帖子来避坑

在接口配置修改中,微信官方需要验证你申请时填写的url能够正常响应,会给你填写的url接口发送get请求,接口需要正确返回才能都配置成功。我按照指引查看文档:

这狗官方只给php示例也就算了,这php的代码一眼看得出来返回true就可以。并且在仔细看了官方文档后,也没提及返回什么才算验证成功,我就按照给的php代码示例一样,返回true好了。

于是我不厌其烦的去写这个接口:先排序、再加密、然后拼接字符串,最后比较后返回是否成功的boolean值。

然而一直显示配置失败,配置失败,配置失败

最后百度通过别人的代码才发现,这gou日的好像需要返回那个随机字符串:echostr 才行

以下是代码:

接收微信验证的接口,与配置填写的url保持一致:

    /*** 微信验证url*/@GetMapping("/checkUrl")public String checkUrl( WeiXinCheckUrl weiXinCheckUrl) {//与申请测试号网站填写的token对应String token = "JustDoIt";List<String> paramList = new ArrayList<>();paramList.add(weiXinCheckUrl.getNonce());paramList.add(weiXinCheckUrl.getTimestamp());paramList.add(token);//按字节排序Collections.sort(paramList);//按顺序拼接字符串StringBuilder stringBuilder = new StringBuilder();paramList.forEach(stringBuilder::append);//sha1加密String encode = SHA1.encode(stringBuilder.toString());System.out.println("微信消息发过来了:" + weiXinCheckUrl.getEchostr());if (encode.equals(weiXinCheckUrl.getSignature())) {return weiXinCheckUrl.getEchostr();} else {return "";}}

微信请求参数的封装实体:

* @author YuanChangLiang* @description* @date created in 13:21 2021/10/26*/@FieldDefaults(level = AccessLevel.PRIVATE)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WeiXinCheckUrl implements Serializable {private static final long serialVersionUID = 757097916620967707L;/*** 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。*/String signature;/*** 时间戳*/String timestamp;/*** 随机数*/String nonce;/*** 随机字符串*/String echostr;
}

SHA1加密用到的工具类:

import java.security.MessageDigest;public final class SHA1 {private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5','6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};/*** Takes the raw bytes from the digest and formats them correct.** @param bytes the raw bytes from the digest.* @return the formatted bytes.*/private static String getFormattedText(byte[] bytes) {int len = bytes.length;StringBuilder buf = new StringBuilder(len * 2);// 把密文转换成十六进制的字符串形式for (int j = 0; j < len; j++) {buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);buf.append(HEX_DIGITS[bytes[j] & 0x0f]);}return buf.toString();}public static String encode(String str) {if (str == null) {return null;}try {MessageDigest messageDigest = MessageDigest.getInstance("SHA1");messageDigest.update(str.getBytes());return getFormattedText(messageDigest.digest());} catch (Exception e) {throw new RuntimeException(e);}}
}

真是太坑爹了,我感觉都不用看微信给的文档了,百度都比看微信文档开发速度快。

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

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

相关文章

四、登录验证功能

登录验证. 用户访问任何业务资源,都需要进行登录验证. *只有登录成功的用户才能访问业务资源 *没有登录成功的用户访问业务资源,跳转到登录页面 分析 1.过滤器 ①implements Filter{ init doFilter destroy } ②配置过滤器web.xml 2.拦截器&#xff1a; ①提供拦截…

用双因子认证2FA替换Google authenticator谷歌令牌,助力准上市公司实现等保安全审计

21世纪初&#xff0c;某人力资源科技公司试水HR SaaS赛道&#xff0c;以大客户为目标客群&#xff0c;持续深耕&#xff0c;稳扎稳打&#xff0c;如今已是一家专门为中大型企业提供一体化HR SaaS及人才管理产品/解决方案的头部企业。其产品覆盖了从员工招募、入职、管理到离职的…

5 客户端认证 OAuth2ClientAuthenticationFilter

客户端认证 https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#token-endpoint-auth-method 当访问 OAuth2 相关接口时&#xff08;/oauth2/token、/oauth2/introspect、…

outlook突然变得很慢很卡

​outlook之前用的好好的&#xff0c;突然有一天变得很卡&#xff0c;特别是在上传附件后。 可能原因&#xff1a;没有勾选使用缓存Exchange模式&#xff0c;导致没有生成本地的同步ost文件&#xff0c;而是直接从服务器存取数据。 对应解决办法&#xff1a;到账户设置里&#…

学术海报Poster-- 模板分享

学术海报Poster-- 模板分享 0、引言1、下载地址百度网盘链接地址CSDN托管 2、模板样例 ⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容…

世界杯球队分析

文章目录 1. 本文思路2.数据介绍2.1 results.csv数据集2.2 shootouts.csv数据集 3. 数据分析3.1 多维度分析3.2 数据分析案例3.2.1 导入模块3.2.2 导入数据1.遍历目录2.读取数据 3.2.3 查看描述数据1.查看数据2. 获取所有世界杯比赛的数据3. 查看包含FIFA的类型4. 获取世界杯数…

NBA比赛数据分析与预测

我的任务利用13到16年的NBA比赛统计数据&#xff0c;去预测17年的每场NBA比赛。数据是从http://www.basketball-reference.com/这个网站获得的。前期参考了https://www.shiyanlou.com/courses/782/labs/2647/document这里的分析与实现方法。这个实验楼里实现用了LogisticRegres…

使用python爬取足球比赛数据,关于足球预测策略模型,这是我见过唯一三年都盈利的

市场上有很多基于程序自动化的足球预测模型&#xff0c;我本人也不断摸索&#xff0c;自学python&#xff0c;最终实现了程序预测的自动化&#xff0c;并且验证了很多策略&#xff0c;几乎所有的模型都是阶段性表现很不错&#xff0c;但是长期总体下来&#xff0c;都达不到预期…

大数据+NCAA=?球迷情绪预测体育赛事结果

点击上方蓝字关注我们 每年三月&#xff0c;有一项赛事将吸引全世界篮球迷的眼光&#xff0c;那就是全国大学篮球联赛&#xff08;NCAA&#xff09;的“疯狂三月”。 “疯狂三月”指的是NCAA男子甲组&#xff08;Division 1&#xff09;篮球锦标赛&#xff0c;赛程从3月中旬持…

生成模型的2022年——人工智能AIGC顶级论文回顾

2022年是生成模型奇幻发展的一年&#xff0c;Stable Diffusion&#x1f3a8;创造了超现实主义的艺术&#xff0c; ChatGPT &#x1f4ac;回答了生命意义的问题&#xff0c;Make a Video&#x1f3a5;从文本生成了栩栩如生的马儿&#xff0c;DreamFusion✨生成了不可思议的三维模…

大语言模型

前言&#xff1a; Open AI推出Chat GPT后&#xff0c;风靡全球。AI的强大表现让人折服&#xff0c;带来的商业效应已经逐渐扩散开来。随着人工智能越来越强&#xff0c;未来人们的生活受到影响也会越来越广泛。 继 OpenAI 推出 ChatGPT 后&#xff0c;微软迅速上线基于 GPT 模型…

OpenAI 利用基于“一致性”的图像生成器超越扩散模型

图像生成领域发展迅速。 尽管 Midjourney 和 Stable Diffusion 等流行工具使用的扩散模型可能看起来是我们所拥有的最好的&#xff0c;但下一个东西总是会出现——OpenAI 可能会用“一致性模型”来解决它&#xff0c;它已经可以完成简单的任务和 数量级比 DALL-E 之类的快。 该…

扩散模型和Transformer梦幻联动!替换U-Net,一举拿下新SOTA!

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>扩散模型微信技术交流群 转载自&#xff1a;量子位 “U-Net已死&#xff0c;Transformer成为扩散模型新SOTA了&#xff01;” 就在ChatGPT占尽AI圈风头时&#xff0c;纽约大学…

扩散模型diffusion model用于图像恢复任务详细原理 (去雨,去雾等皆可),附实现代码

文章目录 1. 去噪扩散概率模型2. 前向扩散3. 反向采样3. 图像条件扩散模型4. 可以考虑改进的点5. 实现代码 话不多说&#xff0c;先上代码&#xff1a; 扩散模型diffusion model用于图像恢复完整可运行代码&#xff0c;附详细实验操作流程 令外一篇简化超分扩散模型SR3来实现图…

0基础学习diffusion_model扩散模型【易理解的公式推导】Denoising Diffusion Probabilistic Models

0基础学习diffusion_model扩散模型【易理解的公式推导】 一、概述二、扩散过程(已知X0求Xt)三、逆扩散过程(已知Xt求Xt-1)1。算法流程图四、结论五、损失函数六、心得体会(优缺点分析)一、概述 DDPM论文链接: Jonathan Ho_Denoising Diffusion Probabilistic Models(NeurIPS…

07.04.2023 日语笔记

貰『もら』える&#xff08;可以……吗&#xff1f;&#xff09; コーヒーをテイクアウトでもらえますか。&#xff08;可以打包咖啡吗&#xff1f;&#xff09; マグカップで、飲み物をもらえますか。&#xff08;可以自带杯子吗&#xff1f;&#xff09; マグカップ&#x…

红蓝宝书1000题 新日本语能力考试N1文字.词汇.文法 练习+详解

红蓝宝书1000题 新日本语能力考试N1文字.词汇.文法 练习详解pdf百度云免费下载 本书是继《新版中日交流标准日本语》初、中级后,由人民教育出版社与日本光村图书出版株式会社通力合作、精心编写的一套日语自学读本。 本书由知名的日本语学、汉学以及日语教育界的学者执笔,充分…

apple watch可以使用第三方表盘了,Apple Watch 更换第三方表盘需求

apple watch可以使用第三方表盘了&#xff0c;Apple Watch 更换第三方表盘需求 对于 Apple Watch 用户来说&#xff0c;表盘的选择太少而且过于单调。那么&#xff0c;自带的表盘看腻了如何更换第三方表盘呢&#xff1f; 前几代apple watch无法使用新表盘&#xff0c;想要实现更…

Applewatch6/ Applese价格曝光 苹果最新款手表参数区别对比

价格方面&#xff0c;Apple Watch Series 6GPS 版 3199 元起售&#xff0c;蜂窝网络版 3999 元起售。Apple Watch SE GPS 版 2199 元起售&#xff0c;蜂窝网络版 2499 元起售。 Apple Watch Series 6 新品活动 优惠空前机会不容错过 https://www.apple.com.cn/6 Apple Watch Se…

苹果手表计算机功能键,Apple Watch上的2个按键是这么玩的

原标题&#xff1a;Apple Watch上的2个按键是这么玩的 点评&#xff1a;苹果不说&#xff0c;但是你要知道的用法。 Apple Watch是苹果全新的产品&#xff0c;代表了苹果全新的设计理念&#xff0c;如此一来&#xff0c;操作和交互方式就与手机自然也有所不同。结果有的小伙伴把…