部署在ECS实例中的微信公众平台Token验证失败怎么办?

本文介绍部署在ECS实例中的微信公众平台Token验证失败常见原因分析及解决方案。

问题现象

部署在ECS实例中的微信公众平台Token验证显示失败。

问题原因

常见的可能原因如下:

  • 非正常编辑文件,如记事本、在线编辑等操作导致文件中添加了utf8的bom签名。

  • ECS实例如果安装了安全狗或者云安全中心,会拦截腾讯服务器的请求。

  • 虚拟主机使用临时域名去验证导致被系统拦截,适用于万网的虚拟主机。

  • PHP文件结束符后包含换行或其他字符。

  • 使用了其他的调试验证方法。

  • 程序Gzip加密异常。

解决方案

常见原因对应建议处理办法如下:

非正常编辑文件,如记事本、在线编辑等

建议使用多功能编辑器去除bom。

ECS实例安装了安全狗或者云安全中心

建议卸载安全狗,或者提示云安全中心设置白名单。

虚拟主机使用临时域名去验证

建议使用已经接入阿里云备案的正式域名来进行验证操作。

PHP文件结束符后包含换行或其他字符

建议去除多余的字符。

使用了其他的调试验证方法

执行以下命令,进行调试验证,模拟微信请求API,并对此进行分析。

curl http://xxx/index.php/api/xx

程序Gzip加密异常

建议临时取消程序Gzip功能,进行测试排查。