首页 » Web前端 » phpaccesstoken缓存技巧_AccessToken中控做事器就该这样开拓

phpaccesstoken缓存技巧_AccessToken中控做事器就该这样开拓

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

access_token是公众年夜众号和小程序的全局唯一接口调用凭据,调用公众号和小程序各做事端接口时都须要利用到access_token。

微信官方对付逐日接口调用的次数都做了限定,这个中包括了天生access_token的接口,因此官方建议开拓者利用中控做事器统一获取和刷新access_token。

phpaccesstoken缓存技巧_AccessToken中控做事器就该这样开拓

中控做事器好处在于:1. 担保access_token逐日都不会超出访问限定,担保做事的正常;2. 提高调用其他做事的接口的性能,由于不用再每次调用接口前先发送一次access_token获取要求。

phpaccesstoken缓存技巧_AccessToken中控做事器就该这样开拓
(图片来自网络侵删)

本文紧张讲解如何开拓一个单文件的access_token中控脚本,该脚本能够同时以命令行和Web形式实行。

思路

首先我们须要利用数据库或Redis存储"大众号或小程序的运用信息,包括appid和appkey。

其次我们须要调用微信获取access_token信息的接口去获取access_token和access_token有效期(默认为expires_in字段)。

末了我们将接口获取到的access_token和有效期缓存到Redis中,这样下次要求access_token时直接从Redis返回未过期的值即可。

函数原型:getAccessToken(string $appid, bool $refresh = true): ?string。
个中参数$appid为"大众年夜众号或小程序的运用ID。
参数$refresh表示是否逼迫刷新缓存。

开拓(PHP版)

第一步、开拓实用工具集Utils

第二步、封装Redis操作

我们须要将运用信息以Hash构造存储到Redis中;在调用接口时为了担保在分布式环境下只许可一个要求能够调用微信接口,因此我们还须要创建一个分布式锁。

PHP环境操作Redis可以通过两个扩展来实现:a. C措辞版phpredis b. PHP版Predis。
C措辞版性能优于PHP版,但是须要编译PHP扩展,因此对付无权限编译扩展的环境下不适用。
本文利用PHP版Predis扩展。

利用Composer直接安装Predis扩展:

composer require predis/predis

第三步、封装微信获取AccessToken接口

第四步、封装微信菜单管理接口作为测试利用

第五步、创建AccessToken中控做事器类

第六步、创建Demo

该demo紧张演示利用中控接口获取access_token,添加公众年夜众号菜单,获取"大众年夜众号菜单。

小技巧

一、获取"大众年夜众号接口测试号

打开"大众年夜众号开拓文档 > 开始开拓 > 接口测试号申请 > 进入微信"大众年夜众号测试号申请系统 > 微信扫码登录即可。

二、获取小程序接口测试号

打开小程序开拓文档 > 工具 > 开拓赞助 > 测试号 > 申请地址 > 微信扫码登录即可。

【点击下面链接下载脚本程序】

"大众号【web说】不局限于web知识分享。

标签:

相关文章