關(guān)于抓取access_token
這里給大家一個(gè)提示,如果你的測試號(hào)驗(yàn)證是通過的。我對(duì)比了兩種代碼的使用,關(guān)于抓取access_token的。如果使用面向?qū)ο蟮姆绞剑?this -> http_curl($url,'get','json');老師寫的http_curl函數(shù)是沒辦法抓取到j(luò)son數(shù)據(jù)包的.......我也不知道為什么。而如果直接用curl寫,則可以。
function getWxAccessToken(){
? ? ? ? // if($_SESSION['accessToken'] && $_SESSION['expires_in']> time()){
? ? ? ? // ? ? echo $_SESSION['accessToken'];
? ? ? ? // ? ? return $_SESSION['accessToken'];
? ? ? ? // }else{
? ? ? ? ? ? $appid = '';
? ? ? ? ? ? $appsecret = '';
? ? ? ? ? ? $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
? ? ? ? ? ? //2初始化
? ? ? ? $ch = curl_init();
? ? ? ? //3.設(shè)置參數(shù)
? ? ? ? curl_setopt($ch , CURLOPT_URL, $url);
? ? ? ? curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
? ? ? ? //4.調(diào)用接口?
? ? ? ? $res = curl_exec($ch);
? ? ? ? //5.關(guān)閉curl
? ? ? ? curl_close( $ch );
? ? ? ? if( curl_errno($ch) ){
? ? ? ? ? ? var_dump( curl_error($ch) );
? ? ? ? }
? ? ? ? $arr = json_decode($res, true);
? ? ? ? var_dump( $arr );
? ? ? ? // }
? ? }
回答那里不好寫代碼,現(xiàn)行的可行的代碼就放在這里了:
function http_curl($url,$type='get',$res='json',$arr=''){
? ? ? ? //1.初始化curl
? ? ? ? $ch = curl_init();
? ? ? ? //2.設(shè)置curl的參數(shù)
? ? ? ? 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);
? ? ? ? }
? ? ? ? //3.采集
? ? ? ? $output = curl_exec($ch);
? ? ? ? //4.關(guān)閉
? ? ? ? curl_close($ch);
? ? ? ? if($res == 'json'){
? ? ? ? ? ? return json_decode($output,true);
? ? ? ? }
? ? }
? ? function getWxAccessToken(){
? ? ? ? if($_SESSION['accessToken'] && $_SESSION['expires_in']> time()){
? ? ? ? ? ? var_dump($_SESSION);
? ? ? ? ? ? return $_SESSION['accessToken'];
? ? ? ? }else{
? ? ? ? ? ? $appid = '';
? ? ? ? ? ? $appsecret = '';
? ? ? ? ? ? $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
? ? ? ? ? ? // //2初始化
? ? ? ? ? ? // $ch = curl_init();
? ? ? ? ? ? // //3.設(shè)置參數(shù)
? ? ? ? ? ? // curl_setopt($ch , CURLOPT_URL, $url);
? ? ? ? ? ? // curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
? ? ? ? ? ? // //4.調(diào)用接口?
? ? ? ? ? ? // $res = curl_exec($ch);
? ? ? ? ? ? // //5.關(guān)閉curl
? ? ? ? ? ? // curl_close( $ch );
? ? ? ? ? ? // if( curl_errno($ch) ){
? ? ? ? ? ? // ? ? var_dump( curl_error($ch) );
? ? ? ? ? ? // }
? ? ? ? ? ? // $arr = json_decode($res, true);
? ? ? ? ? ? $arr = $this -> http_curl($url,'get','json');
? ? ? ? ? ? $accessToken = $arr['access_token'];
? ? ? ? ? ? $_SESSION['accessToken'] = $accessToken;
? ? ? ? ? ? $_SESSION['expires_in'] = time()+7200;
? ? ? ? ? ? var_dump($_SESSION);
? ? ? ? ? ? return $accessToken;
? ? ? ? }
? ? }
2017-11-09
親測對(duì)比有效,可能是代碼在調(diào)用http_curl函數(shù)的時(shí)候出了問題