欢迎光临
我们一直在努力

微信公众号\\”Token验证失败\\”有效解决办法(更换验证文件)

周末的时候老赵同学需要开通微信公众号开发权限,于是我帮他配置下接口启动。理论上蜗牛按照\\”微信公众号平台设置服务器地址(URL)和令牌(Token)配对启用方法\\”文章中也有记载且以前也有配置过多次没有问题,但是居然这次在验证文件的时候有出现\\”Token验证失败\\”的提示。

那问题如何解决呢?根据有些网友反馈,多提交几次还是不行。

<?php/*    方倍工作室 http://www.cnblogs.com/txw1958/    CopyRight 2013 www.doucube.com  All Rights Reserved    Test by itbulu.com*/traceHttp();define(\\\"TOKEN\\\", \\\"weixin\\\");$wechatObj = new wechatCallbackapiTest();if (isset($_GET[\\\'echostr\\\'])) {    $wechatObj->valid();}else{    $wechatObj->responseMsg();}class wechatCallbackapiTest{    public function valid()    {        $echoStr = $_GET[\\\"echostr\\\"];        if($this->checkSignature()){            echo $echoStr;            exit;        }    }    private function checkSignature()    {        $signature = $_GET[\\\"signature\\\"];        $timestamp = $_GET[\\\"timestamp\\\"];        $nonce = $_GET[\\\"nonce\\\"];        $token = TOKEN;        $tmpArr = array($token, $timestamp, $nonce);        sort($tmpArr);        $tmpStr = implode( $tmpArr );        $tmpStr = sha1( $tmpStr );        if( $tmpStr == $signature ){            return true;        }else{            return false;        }    }    public function responseMsg()    {        $postStr = $GLOBALS[\\\"HTTP_RAW_POST_DATA\\\"];        if (!empty($postStr)){            $postObj = simplexml_load_string($postStr, \\\'SimpleXMLElement\\\', LIBXML_NOCDATA);            $fromUsername = $postObj->FromUserName;            $toUsername = $postObj->ToUserName;            $keyword = trim($postObj->Content);            $time = time();            $textTpl = \\\"<xml>                        <ToUserName><![CDATA[%s]]></ToUserName>                        <FromUserName><![CDATA[%s]]></FromUserName>                        <CreateTime>%s</CreateTime>                        <MsgType><![CDATA[%s]]></MsgType>                        <Content><![CDATA[%s]]></Content>                        <FuncFlag>0</FuncFlag>                        </xml>\\\";            if($keyword == \\\"?\\\" || $keyword == \\\"?\\\")            {                $msgType = \\\"text\\\";                $contentStr = date(\\\"Y-m-d H:i:s\\\",time());                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);                echo $resultStr;            }        }else{            echo \\\"\\\";            exit;        }    }}function traceHttp(){    logger(\\\"\\\\n\\\\nREMOTE_ADDR:\\\".$_SERVER[\\\"REMOTE_ADDR\\\"].(strstr($_SERVER[\\\"REMOTE_ADDR\\\"],\\\'101.226\\\')? \\\" FROM WeiXin\\\": \\\"Unknown IP\\\"));    logger(\\\"QUERY_STRING:\\\".$_SERVER[\\\"QUERY_STRING\\\"]);}function logger($log_content){    if(isset($_SERVER[\\\'HTTP_APPNAME\\\'])){   //SAE        sae_set_display_errors(false);        sae_debug($log_content);        sae_set_display_errors(true);    }else{ //LOCAL        $max_size = 500000;        $log_filename = \\\"log.xml\\\";        if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}        file_put_contents($log_filename, date(\\\'Y-m-d H:i:s\\\').$log_content.\\\"\\\\r\\\\n\\\", FILE_APPEND);    }}?>

这里蜗牛继续更换验证文件试试。这个居然测试成功。

关于微信公众号的扩展阅读:

1、微擎搭建公众号和小程序服务器配置如何选择(配置不能太低)

2、把微信公众号粉丝迁移到其他账号下的两个方法

3、腾讯云账户开启微信公众号/小程序推送告警和账单信息

4、微信公众号授权域名及微擎安装应用模块流程体验

 

赞(0)
未经允许不得转载:沃园 » 微信公众号\\”Token验证失败\\”有效解决办法(更换验证文件)

评论 抢沙发

评论前必须登录!

立即登录   注册