公用获取token,因微信公众号的 AccessToken 有效期是7200秒(两小时),且每日请求次数有限,所以我们可以将第一次请求的 AccessToken 保存到文件中,并且在过期前5分钟时再次自动获取,以减少 AccessToken 的实时请求次数浪费!代码如下 //生成accesstoken function getAccessToken() { // 微信公众平台appid及appsecret密钥 $appid = 'wx232b4aa*********'; $appsecret = '6b7f679961e76aa615e6588********'; //储存access_token文件 $logfilename = dirname(dirname(__FILE__)).'/online/accesstoken.txt'; //如果不存在则创建一份文件 if(!file_exists($logfilename)){ file_put_contents($logfilename,''); //system("chmod 777 /data/wwwroot/blog/public/online/accesstoken.txt"); } //读取内容 $tokeninfo = file_get_contents($logfilename); //文件里面有内容 if(!empty($tokeninfo)){ //转换成数组形式 $tokeninfo = json_decode($tokeninfo,true); if($tokeninfo['endtime']-time()<300){ //预留5分钟的网络延迟时间,过期的话重新获取access_token //清空文档里面的内容 file_put_contents($logfilename, ''); $token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid.'&secret='.$appsecret; //获取文件内容或获取网络请求的内容 $result = http_Msg($token_url,"GET"); $fresult = $result; //access_token过期时间点 $fresult["endtime"] = $result['expires_in']+time(); $fresult = json_encode($fresult); //将access_token数据存在文件中 file_put_contents($logfilename, $fresult); }else{ //没有过期直接返回存储在文件中的access_token $result = $tokeninfo; } }else{ //第一次获取access_token $token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid.'&secret='.$appsecret; //获取文件内容或获取网络请求的内容 $result = http_Msg($token_url,"GET"); $fresult = $result; $fresult["endtime"] = $result['expires_in']+time(); $fresult = json_encode($fresult); //写入文件 file_put_contents($logfilename, $fresult); } return $result; } // CURL模拟get/post请求 function http_Msg($url,$method="GET",$data=array()) { $ch = curl_init(); $wx_data = json_encode($data); //打开 $ch = curl_init(); //请求方法为POST的时候 if($method == "POST"){ curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $wx_data); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $response = curl_exec($ch); //关闭 curl_close($ch); $result = json_decode($response,true); return $result; } // 获取AccessToken $AccessToken = getAccessToken();
jshgtfrddh2年前0
你的文章让我感受到了不一样的视角,非常精彩。 https://www.yonboz.com/video/84282.htmlukfbunfxqk2年前0
你的文章让我感受到了不一样的视角,非常精彩。 https://www.yonboz.com/video/23752.htmldmtrqccbnn2年前0
你的文章内容非常卖力,让人点赞。 http://www.55baobei.com/l1t7Yd5s6H.htmlxsuhtbbzmm2年前0
你的文章让我感受到了不一样的视角,非常精彩。 https://www.4006400989.com/qyvideo/92199.htmlceskjhtfrd2年前0
你的文章内容非常卖力,让人点赞。 http://www.55baobei.com/l1t7Yd5s6H.html