备忘:微信公众号服务器配置“验证TOKEN失败”的深坑

时间:2022-04-02 04:49:21

(*赶时间直接看结论,文末标红加粗)

在配置公众号的响应脚本之前,需要做一次接口的验证

备忘:微信公众号服务器配置“验证TOKEN失败”的深坑

 

上一次配置这个已经是若干年前,我拿了以前的一个旧脚本,提交的时候提示验证token失败,于是开始仔细琢磨文档对照调试

官方文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

 

心想可能隔了一段长时间可能验证的方法已经有了更新,果然发现 文档的PHP示例代码下载包已经变更,而且包含了python,java,C等多个主流语言版本

对比DEMO 发现了其中一处与旧版脚本的不同

对参数进行字典排序 旧脚本的

sort($tmpArr);
更新为了
sort($tmpArr, SORT_STRING);

强制视为字符串排序,修改后从脚本输出的调试结果来看,服务端验证逻辑是通过了,原文返回输入的 echostr

但是在后台提交验证的时候依然提示 验证token失败!

 

尝试使用微信公众号调试工具

https://mp.weixin.qq.com/debug/

然而并没有什么用,没有调试这个token验证的功能

 

没什么头绪下,只能试着网上搜索..遇到类似提示的人五花八门…

 

在大部分案例对比排除后,终于发现了原因并且解决。

验证TOKEN的API脚本必须保存为  UTF-8 无BOM

 

回头翻查了下官方的文档,对于这个细节,果然只字未提。浪费了我2个多小时…啧啧.