微信公众号配置URL、TOKEN方法(token验证失败解决方法)

今天困扰我好长时间的问题终于得到了解决,那就是微信众众号平台配置Token一直提示token验证失败的,接下来我就说说我是怎么解决的(还能咋解决,查资料,copy别人的例子一个一个试呗)

问题

微信公众号配置URL、TOKEN方法(token验证失败解决方法)_第1张图片

解决方法

一定是你搞错了呗,还能咋,查看下面代码,修改自己设置的token,然后复制文件到服务器更目录即可。


//define your token
define("TOKEN", "lifangping1224645904");    //一定要替换自己的token
$wechatObj = new wechatCallbackapiTest();//将7行的class类实例化
$wechatObj->valid();//使用-》访问类中valid方法,用来验证开发模式
class wechatCallbackapiTest
{
    public function valid()//验证接口的方法
    {
        $echoStr = $_GET["echostr"];//从微信用户端获取一个随机字符赋予变量echostr
 
        //valid signature , option访问地61行的checkSignature签名验证方法,如果签名一致,输出变量echostr,完整验证配置接口的操作
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }
    //签名验证程序    ,checkSignature被18行调用。官方加密、校验流程:将token,timestamp,nonce这三个参数进行字典序排序,然后将这三个参数字符串拼接成一个字符串惊喜shal加密,开发者获得加密后的字符串可以与signature对比,表示该请求来源于微信。
    private function checkSignature()
    {
        $signature = $_GET["signature"];//从用户端获取签名赋予变量signature
        $timestamp = $_GET["timestamp"];//从用户端获取时间戳赋予变量timestamp
        $nonce = $_GET["nonce"];  //从用户端获取随机数赋予变量nonce
                 
        $token = TOKEN;//将常量token赋予变量token
        $tmpArr = array($token, $timestamp, $nonce);//简历数组变量tmpArr
        sort($tmpArr, SORT_STRING);//新建排序
        $tmpStr = implode( $tmpArr );//字典排序
        $tmpStr = sha1( $tmpStr );//shal加密
        //tmpStr与signature值相同,返回真,否则返回假
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

将代码中的token替换成自己的,复制,放到网站根目录。够简单了吧,还闹不了,那我只能说:兄弟,你不合适(开个玩笑,解决不了私聊我,我跟你一起进坑)

看看我微信上的配置

微信公众号配置URL、TOKEN方法(token验证失败解决方法)_第2张图片

结论

其实按这个步骤操作起来还是挺简单的,我是没找到微信的文档,找的一个小伙子的资料才解决的

如果您对这个文章有任何异议,那么请在文章评论处写上你的评论。
愿大家都能在编程这条路,越走越远。

别人的女朋友都会生气了,而你的女朋友还在充气。

你可能感兴趣的:(php,服务器,php)