本文作者:心月

微信公众号开发——access_token的获取

心月IT博客 10-03
微信公众号开发——access_token的获取摘要:access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

        access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

        php中有个 “curl” 扩展工具,通过它可以发起模拟 http/https 请求,这里获取access_token 正是用这个扩展工具来获取。开发文档中有明确说明公众号和小程序均可以使用AppID和AppSecret调用本接口来获取access_token。因此在获取access_token钱先要拿到AppID和AppSecret,这两个参数都可以在公众平台后台中拿到。

AppID和AppSecret获取

拿到这两个参数后就可以获取access_token了:

        
        private function _ch($url, $type='get', $res='json', $arr='')
	{
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		if ($type == 'post') {
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);
		}
		$cnt = curl_exec($ch);
		
		if (curl_errno($ch)) {
			return;
		}

		curl_close($ch);
		if ($res == 'json') {
			return json_decode($cnt, true);
		}
		return $cnt;
	}

	//获取access_token
	//把下面的 *** 换自己对应的 appid 和 appsecret
	private function _getAT()
	{
		$appid = '***';
		$appsecret = '***';
		$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";

		$arr = $this->_ch($url);
		if (!$arr) {
			return;
		}
		return $arr['access_token'];
	}

	//因为每天调用接口获取 access_token 有次数限制,
	//所以第一次获取 access_token 后最好可以把存起来
	//尽量避免每次都调用接口获取 access_token 
	public function getWxAT()
	{
		
		if (Session::get('access_token') && Session::get('expire_time')>time() ) {
			return Session::get('access_token');
		}else{

			$accessToken = $this->_getAT();
			Session::set('access_token',$accessToken);
			Session::set('expire_time',time()+7200);

			return $accessToken;
		}
	}

如果在获取 access_token 时出现 40164 错误,则需要把 invalid ip 后面的 ip 地址加入公众平台后台开发基本配置里的白名单里。

access_token获取报错


文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 10-03
若转载请注明原文及出处:https://www.xinyueseo.com/other/357.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论