微信公众号在设置这个接口配置信息遇到的大坑,可真的是谢谢写微信文档的大哥了,浪费我两个小时
在测试的时候直接复制了他的代码,调试不成功,找不到问题在哪儿,实在是非常疑惑
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;
}
配置成功