access_token作为微信的全局票据,在高级接口中需要频繁调用,其有效期为7200秒,即2小时,而微信官方对调用Token的次数有限制(参见接口频率限制说明),获取access_token每日限额为2000次,测试号只有200次。如果每次响应都调用access_token,则有可能随着用户的增多超过调用次数,影响微信公众平台的使用。这里封装了一个缓存access_token的函数,需要的时候调用即可
// 接收appID,appsecret和token function get_access_token($appID,$appsecret,$token){ static $access_token; $access_token = S($token.'weixin_access_token'); if($access_token) { //已缓存,直接使用 return $access_token; } else { //获取access_token $url_get = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appID.'&secret='.$appsecret; // 使用CURL $ch1 = curl_init (); $timeout = 5; curl_setopt ( $ch1, CURLOPT_URL, $url_get ); curl_setopt ( $ch1, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch1, CURLOPT_CONNECTTIMEOUT, $timeout ); curl_setopt ( $ch1, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ( $ch1, CURLOPT_SSL_VERIFYHOST, false ); $accesstxt = curl_exec ( $ch1 ); curl_close ( $ch1 ); $access = json_decode ( $accesstxt, true ); //将access_token转换为数组 // 缓存数据7200秒 S($token.'weixin_access_token',$access['access_token'],7000); return $access['access_token']; } }