news 2026/9/27 23:04:30

php编写缓存微信access_token到本地脚本示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
php编写缓存微信access_token到本地脚本示例

access_token存储更新

access_token 的存储至少要保留 512 个字符空间;

access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效,并且每天获取的频次有限,所以需要进行本地缓存或者缓存到数据库进行使用,而不是每次调用接口都获取access_token

获取access_token并缓存到本地access_token.php文件封装函数

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

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

<?php

// APPID

$APPID='xxx';

// APPSECRET

$APPSECRET='xxx';

// 缓存文件路径

$TOKEN_FILE='access_token.php';

// 刷新 Access_Token 的函数

functionrefreshAccessToken($appid,$appsecret) {

// 官方接口

$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";

// 发起请求

$ch= curl_init();

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 结果

$response= curl_exec($ch);

curl_close($ch);

// 解析结果

$data= json_decode($response, true);

if(isset($data['access_token'])) {

// 返回access_token

return$data['access_token'];

}else{

// 解析失败

returnfalse;

}

}

// 从缓存文件中获取 Access_Token 和过期时间戳

functiongetAccessTokenFromCache($tokenFile) {

// 判断缓存文件是否存在

if(file_exists($tokenFile)) {

// 如果缓存文件存在

$tokenData=include($tokenFile);

if($tokenData&&is_array($tokenData) && isset($tokenData['access_token']) && isset($tokenData['expires_at'])) {

// 返回access_token

return$tokenData;

}

}

}

// 更新缓存文件中的 Access_Token

functionupdateAccessTokenCache($tokenFile,$access_token,$expires_in) {

// 提前一分钟刷新

$expires_at= time() +$expires_in- 60;

// 生成缓存文件

$tokenData="<?php\nreturn array('access_token' => '$access_token', 'expires_at' => $expires_at);\n";

file_put_contents($tokenFile,$tokenData);

}

// 获取当前时间

$current_time= time();

// 从缓存文件中获取 Access_Token 和过期时间戳

$tokenData= getAccessTokenFromCache($TOKEN_FILE);

// 未过期

if($tokenData&&$tokenData['expires_at'] >$current_time) {

// 使用缓存的 Access_Token

$access_token=$tokenData['access_token'];

// 输出已缓存的access_token

echo"缓存的Access_Token: $access_token\n";

}else{

// 刷新 Access_Token

$access_token= refreshAccessToken($APPID,$APPSECRET);

// 获取成功

if($access_token) {

// 输出新的access_token

echo"新的Access_Token: $access_token\n";

// 更新缓存文件

updateAccessTokenCache($TOKEN_FILE,$access_token, 7200);

}else{

// 刷新失败

echo"Access_Token刷新失败\n";

}

}

?>

总结

在以上脚本中,加载这个脚本,会立刻读取本地access_token.php文件,如果存在这个文件,就解析这个文件的内容,读取里面的access_token和过期时间,如果过期了,就直接调用请求接口获取信的access_token并更新文件,如果没有过期,直接使用access_token.php文件里面的access_token作为业务需要。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 23:04:21

非法期货做网站新手入门:被黑挂马后,这3步报价方案能救急

非法期货做网站新手入门:被黑挂马后,这3步报价方案能救急 网站后台突然打不开,或者页面莫名其妙跳出一个全是乱码的弹窗,甚至浏览器直接提示“不安全”?很多刚入行的新手朋友一遇到这种情况,第一反应就是慌,不知道找谁修,更不知道修一次到底要掏多少钱。别急,这种“被黑挂马”的情况在咱们行业里太常见了,尤其是…

作者头像 李华
网站建设 2026/9/27 23:04:19

毕业设计可以做哪些简单网站新手入门

5个零代码毕设网站方案附保姆级建站教程 自己不会代码想做网站,却担心毕设挂科?别慌,这确实是很多计算机相关专业新手的痛点。你不需要成为黑客,只要跟着这份 保姆级建站教程…

作者头像 李华
网站建设 2026/9/27 23:03:51

基于JSP的网上购物系统毕业设计:部署、改造与答辩实战

简介&#xff1a;一套基于JSP的网上购物系统毕业设计完整项目包&#xff0c;面向计算机相关专业本科生&#xff0c;适用于毕业设计、课程设计或Web开发综合实训。内容围绕商品展示、购物车管理、订单处理、用户登录等核心功能展开&#xff0c;覆盖JSP、Servlet、JDBC、MVC分层、…

作者头像 李华
网站建设 2026/9/27 23:03:44

3个维度拆解钓鱼网站盗号风险:企业官网怎么选安全方案

3个维度拆解钓鱼网站盗号风险:企业官网怎么选安全方案 备案流程一头雾水,是不是让你对着工信部的网页发呆?别急,这背后往往藏着更大的隐患——你的登录系统可能被“钓鱼网站盗号”盯上了。很多老板觉得,只要把网站搭起来,域名备案通过,就万事大吉。大错特错。在2024年的网络环境下, 怎么选…

作者头像 李华
网站建设 2026/9/27 23:03:41

制作网站制作公司避坑指南:从零搭建不踩雷

制作网站制作公司避坑指南:从零搭建不踩雷 别再被那些千篇一律的模板网站恶心了。很多老板找制作网站制作公司,花了几万块,结果交出来的东西跟网上免费的模板没两样,配色土气,功能僵硬,稍微改个按钮位置都要加钱。更坑的是,这种“套壳”网站后期维护成本极高,一旦想从零搭建一个真正符合业务逻辑的系统,之前的投入…

作者头像 李华