真的很奇怪的东西

qq_36362208 2017-08-11 06:01:51
萌新,刚刚正式接触微开三天(之前做网站的),今天在将access_token存储的时候出现了个奇葩问题。。
以下是代码:


//检查access_token合法性并返回
public function gettoken(){
$accessToken=M('accesstoken');
$time=time();
// var_dump($time);
// var_dump($time=date('Y-m-d H:i:s'));

$sqltoken=$accessToken->where('A_ID=0')->getfield('A_Token');
if(empty($sqltoken)){//若数据为空,将微信获取的access_token存入数据库中
$geturl=$this->geturl();
$expires=$geturl['expires_in'];
$timestamp=$time+$expires;
// var_dump($timestamp);
// var_dump($timestamp=date('Y-m-d H:i:s'));
// die();
$data['A_Date']=$timestamp;
$data['A_Token']=$geturl['access_token'];
$accessToken->add($data);

return $geturl;

}else{//检测数据库中access_token的时效性
if($sqltoken<$time){
$geturl=$this->geturl();
$expires=$geturl['expires_in'];
$timestamp=$time+$expires;
$data['A_Date']=$timestamp;
$data['A_Token']=$geturl['access_token'];
$accessToken->data($data)->where('A_ID=0')->save();

return $geturl;
}else{//若access_token合法则从数据库中获取并输出
$succ=$accessToken->where('A_ID')->select();
// var_dump($succ);
$geturl=json_encode($succ);

return $geturl;
}
}
}

可以看到,$times是当前时间,$expirese为微信返回的时间,$timestamp为二者之和。但是我打印$timestamp时却是当前时间。。。导致存入数据库的时间都是当前时间,每次运行这个的时间,就是相当于调用一个新的access_token了。。。
这到底是怎么产生的呢?真的很好奇,明明已经加了一个$expires,但是就是现实当前时间
...全文
179 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
果酱很好吃 2017-08-14
  • 打赏
  • 举报
回复
print_r($geturl) 看看是什么 若是微信返回的应该是这样的数据:{"access_token":"ACCESS_TOKEN","expires_in":7200} 若返回成功,你也可以直接加上 7200
hongmei85 2017-08-11
  • 打赏
  • 举报
回复
var_dump($expires);看下啊

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧