微信小程序开发中如何高效使用Access_Token:缓存策略与调用限制解析

并且每天最多只能调用 2000 次。

微信小程序开发中如何高效使用Access_Token:缓存策略与调用限制解析

所以,对于量大的请求,不能每次发起请求都去调用一次接口。因为 2000 次很快就会请求完,2000 次用完后就没有新的 access_token 可用了。所以不能每发起一次请求就生成一个 access_token。如果这样做,就会导致不良后果。我们能够利用缓存这种方式,将 access_token 缓存至本地或者内存里面。在项目里,去获取缓存里的 access_token 以便进行调用。

一个 access_token 在 2 小时内可随意调用且无调用次数限制。2 小时后它会过期,此时需请求 access_token 生成接口来生成新的 access_token。这时,我们可以将新的 access_token 缓存到本地或内存中,并记录当前的时间戳。下次项目中需要使用 access_token 时,先判断当前时间与缓存的 access_token 的时间差是否超过 2 小时。若超过,则调用 access_token 生成接口生成新的 access_token;若未超时,则使用缓存中的 access_token。

 $result['expires']){
        $data = array();
获取新的令牌,将其赋值给 $data['access_token'],获取新令牌的函数为 getNewToken,该函数需要传入 appid 和 appsecret 作为参数。
$expires 的值为当前时间加上 7000 秒。 即把当前时间加上 7000 秒后赋给 $data 数组中的 'expires' 键。 也就是让 $data['expires'] 等于时间加上 7000 。 具体来说就是将当前时间加上 7000 后得到的结果赋给 $data 数组中名为 'expires' 的元素。
将数据进行编码成 JSON 字符串,编码后的结果赋值给变量 $jsonStr 。
使用 fopen 函数以写入模式打开名为 "access_token.json" 的文件,将其赋值给变量 $fp 。
将 $jsonStr 写入到 $fp 中。
        fclose($fp);
将 $data['access_token'] 返回。
    }else{
返回 $result['access_token']。
    }
}
 
//获取新的access_token
获取新令牌的函数名为 getNewToken,该函数需要传入两个参数,分别是 appid 和 appsecret。
$url 最后还有 "&secret={$appsecret}"。
$access_token_Arr 等于通过 http_request 函数请求 $url 所得到的结果。
返回 $access_token_Arr 中的 'access_token' 。
}
 
//向获取access_token接口发起请求
定义一个函数 https_request,它接受一个参数 $url。这个函数的作用是进行某种请求操作,可能是向指定的 URL 发送请求并获取响应等相关操作。
        $ch = curl_init();
curl 对 $ch 进行设置选项操作,将 CURLOPT_URL 这个选项设置为 $url 。
设置 curl 的选项,将 $ch 的 CURLOPT_RETURNTRANSFER 选项设置为 1 。
设置 curl 选项,将 $ch 的 CURLOPT_SSL_VERIFYPEER 选项设置为 false 。
使用 curl_exec 函数执行 $ch 后,其结果被赋值给 $out 。
        curl_close($ch);
将 $out 进行 json 解码,解码结果为一个关联数组,即 true 表示将 JSON 字符串解码为关联数组,然后返回这个解码后的数组。
}
 
//调用函数
getToken();
 
//输出当前缓存文件有效期内的access_token
获取到的内容被存储在变量 $jsondata 中,该内容是通过 file_get_contents 函数获取到的名为 'access_token.json' 的文件的内容。
$access_token_data 是对 $jsondata 进行 json 解码后得到的结果。
输出 $access_token_data 中的 access_token 字段。
?>

生成的本地缓存文件为

access_token.json

格式如下

{
access_token 为 "16_tTsgZ08Mf13NHsO8XT19faWwQVXKuBzLs3wElIyzGWMkcFLrSCBCKpXRd8dKuPC-A32fSJPIwKx4smzOgraV8U-2qzic6UIchBqk_LqmLPwDmPj4luOf6YQor0GotWOBg1bPsB29KzZy0ChFGCVfAIACYR"
  "expires":1544866066
}

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

53阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

44阅读

php一句话木马,一句话木马ctf

2026年10月05日

48阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

50阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

47阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

42阅读