服务器里接受到的get请求是:
//weixin/msg/index?signature=c7e61239e4b56e0adf7b6623b74fa6c61de24fcc&echostr=2019533780509753310×tamp=1512789272&nonce=3310232241
把它复制到浏览器,也确实能返回。
只是checkSignature 加密验证不通过。
我加了两个var_dump打印变量:
//加密验证
public function checkSignature(){
$signature = trim($this -> get("signature",""));
$timestamp = trim($this -> get("timestamp",""));
$nonce = trim($this ->get("nonce",""));
$tmpArr = array(\Yii::$app->params['weixin']['token'],$timestamp,$nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
var_dump($tmpStr);
var_dump($signature);
exit();
if($tmpStr == $signature){
return true;
}else{
return false;
}
}结果:

明明get请求里有 signature 这个字段,但是没有获取
而且,$tmpStr打印出来的值,和服务器里日志的signature值并不匹配。
之前做的时候好像还没问题 ...... 不知道是哪改毁了吧.....