微信公众号设置接口配置信息 报错 {errcode: -106 errmsg: “token check fail“} 以及解决办法

在配置微信公众号接口时,遇到了文档说明不明确导致的问题。首先,由于demo未展示如何处理echostr参数,导致了困惑。其次,返回方式使用return而非echo造成验证失败,经过尝试才找到正确解决方法,即使用echo返回echostr。最终成功配置了接口。
摘要由CSDN通过智能技术生成

微信公众号在设置这个接口配置信息遇到的大坑,可真的是谢谢写微信文档的大哥了,浪费我两个小时

在测试的时候直接复制了他的代码,调试不成功,找不到问题在哪儿,实在是非常疑惑

1.文档说返回echostr,刚开始以为是返回这个字符串,因为demo上并没有接收这个参数,结果报错

2.返回给微信使用retrurn,这个或许是我的问题,demo可能使用的是框架返回,所以直接使用了return
提示非常模糊,只会提示token验证失败,反复检查token是正确的,随便试试用了echo然后就成功了
在这里插入图片描述
这是文档中的演示

private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
	
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    
    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}

这是后来成功的代码

$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $_GET['echostr'];

$token = 'token';
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
    echo $echostr;
}else{
    return false;
}

配置成功
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值