本文旨在利用fastadmin中微信管理插件获取微信小程序access_token
1.微信管理插件中配置:app_id和appsecret
//获取微信配置
$config = get_addon_config('wechat');
$appId = $config['app_id'];
$appSecret = $config['appsecret'];
2. 设置access_token保存路径
//access_token文件保存路径
$token_file = ROOT_PATH . 'public' .DS. 'access_token';
3. 考虑过期问题,将获取的access_token存储到某个文件中, 不用重复请求
$life_time = 7200;
if (file_exists($token_file) && time()-filemtime($token_file)<$life_time) {
// 存在有效的access_token
return file_get_contents($token_file);
}
4. 发送请求,目标url可以小程序api文档中查找
// 目标URL:
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
//向该URL,发送GET请求
$result =Http::sendRequest($url);
Http::sendRequest 是使用fastadmin中的http工具, 可以修改为自己的curl请求工具
5.返回access_token
if (!$result['ret']) {
return false;
}
// 存在返回响应结果
$result_obj = json_decode($result['msg']);
// 写入
file_put_contents($token_file, $result_obj->access_token);
return $result_obj->access_token;
以上是保存access_token在本地, 可以在7200秒内,不用重复请求, 代码示例供参考, 供大佬们指教
完整代码:
/**
* @return 小程序获取 access_token
*
*/
public function get_access_token() {
//access_token文件保存路径
$token_file = ROOT_PATH . 'public' .DS. 'access_token';
#获取系统配置
$config = get_addon_config('wechat');
$appId = $config['app_id'];
$appSecret = $config['appsecret'];
// 考虑过期问题,将获取的access_token存储到某个文件中
$life_time = 7200;
if (file_exists($token_file) && time()-filemtime($token_file)<$life_time) {
// 存在有效的access_token
return file_get_contents($token_file);
}
// 目标URL:
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
//向该URL,发送GET请求
$result =Http::sendRequest($url);
if (!$result['ret']) {
return false;
}
// 存在返回响应结果
$result_obj = json_decode($result['msg']);
// 写入
file_put_contents($token_file, $result_obj->access_token);
return $result_obj->access_token;
}