小程序消息推送配置 一直显示token校验失败 怎么回事呀!!
问题
小程序消息推送配置 显示token校验失败!
代码
public function checkSignature(Request $request)
{
$this->validate($request, [
'signature' => 'required',
'timestamp' => 'required',
'nonce' => 'required',
'echostr' => 'required',
]);
$signature = $request->input('signature');
$timestamp = $request->input('timestamp');
$nonce = $request->input('nonce');
$echostr = $request->input('echostr');
Log::info("****-*****小程序接入参数1",['signature'=>$signature,'timestamp'=>$timestamp,'nonce'=>$nonce,'echostr'=>$echostr]);
$tmpArr = array($this->token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
Log::info("****-*****小程序接入验证签名",[$tmpStr]);
if ($tmpStr == $signature ) {
ob_clean();
echo $echostr;
exit;
} else {
return false;
}
}
用postman测试一下能不能正常走通校验流程
你要把 echostr 返回给微信
laravel 处理的话,看下路由是不是在web组下面的,有验证csrf,微信回调会被拦截,可以建个新的路由组或者去掉这个验证。
csrt token 中间件把这个路由排除掉
把路由加到这里就可以了