您的位置:首页 > 其它

如何获取access_token?

2018-04-12 19:20 176 查看
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,那怎么获取access_token
首先定义APPID和APPSECRET然后定义一个access_token函数判断是否存在该文件,如果存在,就读取并取出(时间)若没有,则调用getNewAccess_token函数define('APPID', 'wxc1e2006bdad94249');
define('APPSECRET', 'a460dd51a1d2a49e5c7ee7bf3d5c8c75');
define('TOKEN_FILE', 'access_token.txt');

$access_token = access_token();
echo $access_token;
function access_token(){
//判断是否存在该文件,如果存在,就读取并取出(时间)若没有,则调用getNewAccess_token函数
if(is_file(TOKEN_FILE)){
$str = file_get_contents(TOKEN_FILE);
$arr = json_decode($str,true);
//判断是否过期
if(time()-$arr['create_time'] > $arr['expires_in']-200){
return getNewAccess_token();
}else{
return $arr['access_token'];
}
}else{
return getNewAccess_token();
}
}
定义getNewAccess_token函数

function getNewAccess_token(){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . APPID . "&secret=" . APPSECRET ."";
// echo($url);

//接入api
//file_get_contents();读取文件

//设置一个新的curl资源
$ch = curl_init();

//设置url和相应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);

//抓取url并把它传递给浏览器
$str = curl_exec($ch);

//关闭curl,释放系统资源
curl_close($ch);

//将其转化成数组
$arr = json_decode($str,true);

//将时间写入数组
$arr['create_time'] = time();

$str = json_encode($arr);

//写入文件
file_put_contents(TOKEN_FILE, $str);

return $arr['access_token'];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: