thinkphp token失败怎么办
时间:2022-12-06 09:50
thinkphp token失败的解决办法:1、打开微信小程序token校验代码;2、在输出“echostr”前,清空缓存区,也就是在echo前放置“ob_clean();”代码即可解决token失败问题。 本教程操作环境:Windows7系统、ThinkPHP5版、Dell G3电脑。 thinkphp token失败怎么办? 解决ThinkPHP微信小程序token校验失败 今天在做微信小程序的学习,申请了一个小程序账号,申请步骤:微信小程序开发-注册账号。 在进行开发配置过程中,需要填写服务器信息,校验token,但是一直是校验失败的状态,看了他人的处理方式,总结出来了办法,分享出来。 解决办法:在输出“echostr”前,清空缓存区,即在echo 前放置“ob_clean();”代码。 官方解释:ob_clean() 此函数用来丢弃输出缓冲区中的内容; 校验代码如下: 微信官方对token校验的说明为:开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。 加密/校验流程如下: 1、将token、timestamp、nonce三个参数进行字典序排序 2、将三个参数字符串拼接成一个字符串进行sha1加密 3、开发者获得加密后的字符串可与signature对比,标识该请求来源于微信; 推荐学习:《thinkPHP视频教程》 以上就是thinkphp token失败怎么办的详细内容,更多请关注gxlsystem.com其它相关文章!/**
* 微信小程序token校验
* @return bool
*/
public function wxtoken()
{
$signature = input('get.signature');
$timestamp = input('get.timestamp');
$nonce = input('get.nonce');
$token = '1234567';
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature){
ob_clean();
echo input('get.echostr');
}else{
return false;
}
}