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