微信 getAccessToken方法详解及实例

时间:2022-08-23 11:45:18

memcache缓存存储用户信息7000秒

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
function getAccessToken($appid,$appsecret)
{
  $mem = new CacheMemcache();
  $acc = $mem->get('access_token_'.$appid);
  if (!$acc)
  {
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
    $result = https_request($url);
    $jsoninfo = json_decode($result, true);
    $access_token = $jsoninfo['access_token'];
    if ($access_token)
    {
      $expire = time() + 7000;
      $mem = new CacheMemcache();
      $mem->set('access_token_'.$appid,$access_token,$expire);
    }
  }
  else
  {
    $access_token = $acc;
  }
  return $access_token;
}
?>
<br>

文件存储access_token

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function getAccessToken() {
 // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
 $data = json_decode(file_get_contents("access_token.json"));
 if ($data->expire_time < time()) {
  $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
  $res = json_decode($this->httpGet($url));
  $access_token = $res->access_token;
  if ($access_token) {
   $data->expire_time = time() + 7000;
   $data->access_token = $access_token;
   $fp = fopen("access_token.json", "w");
   fwrite($fp, json_encode($data));
   fclose($fp);
  }
 } else {
  $access_token = $data->access_token;
 }
 return $access_token;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!