首页 » Web技术 » PHP » 正文

微信公众平台Token验证失败的解决办法

1.可查看url和token是否正确

2.查看服务器端口是否为80端口

3.你可以通过记录log日志来判断是否接受到微信提交过来的信息

$fp=fopen("log.txt","w+");
$strText='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\r\n";
fwrite($fp,$strText);

把上述代码粘贴到private function checkSignature()方法内,再次点击“提交”后,复制log中的地址到浏览器查看是否已经有echostr并与参数中的echostr进行对比。

4.如果上述都正确,则可能是文件编码问题,当文件编码为utf8 bom时文件前会自动添加3个字符,把文件去掉bom 再次提交,验证成功!

本文共 26 个回复

  • 心乐 2018/02/18 21:49

    清除掉输出缓存区就OK了【保证代码以及配置没有错误的情况下】,使用ob_clean();我的是这样解决的,定位文件wechat-manager-class文件public function process() { //如果是验证请求,则执行签名验证并退出 if (!empty($_GET["echostr"])) { ob_clean();//在这里加入这段,如果遇到这个问题可以尝试加入这段。 $this->valid(); //验证签名是否有效 return; //返回退出 }

12

发表评论