如何获取access_token?

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'];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值