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

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

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;
}

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

Logo

一站式 AI 云服务平台

更多推荐