首页 » 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 再次提交,验证成功!

本文共 18 个回复

  • 无涯书生 2016/04/08 23:10

    提示Token验证失败,但是找不到你的那个什么bom,希望能提供技术支持哦

    • Specs 2016/04/13 07:36

      @ 无涯书生 试试第三种方法

      • 毛毛 2016/04/21 13:00

        @ Specs 第三种方法,测试了下将网址复制到浏览器后空白一片!这个属于正常吗?如果部正常需要怎么修复啊?

        • Specs 2016/04/22 09:02

          @ 毛毛 不正常,应该是和 echostr 一样

        • 一介小民 2016/11/08 11:32

          @ 毛毛 第三种方法具体怎么操作,我小白

    • 五月蓝天 2016/09/20 19:45

      @ 无涯书生 bom本来就是看不到的

  • Leon 2016/04/25 22:53

    URL超时...怎么办呢?我仔细看了1.0和2.0之间url之间差了一个/,这不是写错了吧?

  • Tony 2016/08/19 00:16

    我用的URL是xxx.com/wp-content/plugins/Wechat-Manager-master,一直提示“token验证失败”。然后再checkSignature()中写日志,日志一直空白,求指教

    • Specs 2016/08/19 19:12

      @ Tony URL 用 xxx.com/?WechatManager 就行,不需要 wp-content 这些

      • Tony 2016/08/19 22:39

        @ Specs 但是用xxx.com/?WechatManager一直提示“请求URL超时”,/wp-content/plugins/Wechat-Manager-master/wx_PS:我设置了固定链接:/%postname%/.html,不过改成默认的?p=123,也是提示这个错误

        • Specs 2016/08/20 00:24

          @ Tony 提示请求超时的时候看看日志

          • Tony 2016/08/21 11:11

            @ Specs 方法三的那个日志吗?一直没有日志生成,目录下的log.txt文件有写入权限的。

            • Specs 2016/08/21 17:11

              @ Tony 生成的应该是在网站根目录下。

              • Tony 2016/08/22 20:37

                @ Specs 网站根目录里,有个log文件,里面是token,但还是请求URL超时

  • 一介小民 2016/11/08 12:30

    private function checkSignature()在那里????

  • 斗鱼 2016/12/27 16:40

    出现验证失败-----前两种检查了 没问题,第三种根目录不会生成log.txt ,很喜欢这个插件 大仙帮看一下吧 QQ 375271583

  • 乱弹琴 2017/01/22 16:54

    搞了半天终于解决了!!!!!!还没有成功的人看过来,按照上诉的3个步骤检查后仍然无法成功的,我告诉你们一个秘密:/** MySQL主机 */define('DB_HOST', '127.0.0.1'); 把 WP的配置文件原来的LOCALHOST 改成IP就OK了

发表评论