微信access_token全局缓存,处理过期

Posted 上善若水-随

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信access_token全局缓存,处理过期相关的知识,希望对你有一定的参考价值。

 1 //php创建access_token.json文件,将access_token 和 生成时间expires 保存在其中,
 2 //{"access_token":"xxxx","expires":1478799661}
 3 function getToken(){
 4     $appid=‘*‘;
 5     $appsecret=‘**‘;
 6     $file = file_get_contents("./access_token.json",true);
 7     $result = json_decode($file,true);
 8     echo $time();
 9 if (time() > $result[‘expires‘]){
10         $data = array();
11         $data[‘access_token‘] = getNewToken($appid,$appsecret);
12         $data[‘expires‘]=time()+7000;
13         $jsonStr =  json_encode($data);
14         $fp = fopen("./access_token.json", "w");
15         fwrite($fp, $jsonStr);
16         fclose($fp);
17         return $data[‘access_token‘];
18     }else{
19         return $result[‘access_token‘];
20     }
21 }
22 function getNewToken($appid,$appsecret){
23     $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
24     $access_token_Arr =  https_request($url);
25     return $access_token_Arr[‘access_token‘];
26 }
27 function https_request ($url){
28         $ch = curl_init();
29         curl_setopt($ch, CURLOPT_URL, $url);
30         curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
31         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
32         $out = curl_exec($ch);
33         curl_close($ch);
34         return  json_decode($out,true);
35 } 
36 echo getToken();

 

以上是关于微信access_token全局缓存,处理过期的主要内容,如果未能解决你的问题,请参考以下文章

微信开发缓存的asscess_token过期

微信公众号 access_token 没有过期 却失效

nginx+redis缓存微信的token数据

JWT生成token及过期处理方案

微信公众号access_token的获取与存储

单例设计模式全局缓存accessToken