微信订阅消息推送设置-Token校验失败-PHP
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/88d00de76cc8cc9b8c0cede43bd67fc2.png#pic_center)
/*
*微信订阅消息推送token校验
* */
public function TokenCode()
{
//参数接收根据自己框架的方式自行修改
$signature = $this->request->param('signature');
$timestamp = $this->request->param('timestamp');
$echostr = $this->request->param('echostr'); //接收传递字符串
$nonce = $this->request->param('nonce');
$token = 'a5c6r7d8l9'; //和设置的Token一致
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if ($tmpStr == $signature ) {
return $echostr;
} else {
return '返回失败';
}
}
备注: 接收参数的方式自行调整 我这里是Tp5框架演示 return 若是不行 就换成 echo $echostr; exit();
微信给出的实例代码 是没有 "echostr"这个参数的 所以需要自己加
微信回调的参数
'signature' => 'c5bb79fdca47378ebf851844f5718a6846a95969',
'echostr' => '190543481234128882',
'timestamp' => '1628038386',
'nonce' => '1430849020',
这个我设置的token为 a5c6r7d8l9
postman测试接口 返回是 echostr的字符串 就代表代码莫得问题了