1. 程式人生 > >微信開發,獲取TOKEN並快取

微信開發,獲取TOKEN並快取

使用thinkphp,直接上程式碼:

      //獲取token
      //引數:$apid:微信appid ,$sec:微信access碼          
  function getToken($apid,$sec){
        $asscc = S('access_token'); 
            if( !empty($asscc)){ //判斷快取中有token直接返回token
                  return $asscc;
            }else{ //快取中沒有執行獲取token
              $url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$apid.'&secret='.$sec;
              $s = $this->http_curl($url,'get','json');//傳送                                  
             $tm = time()+3600;//設定快取時間一般小於兩小時
                  //放入快取
               S('access_token',$s['access_token'],array('type'=>'file','expire'=>$tm));
               return $s['access_token'];//快取好之後 返回token
            }          
   }
           //curl獲取資料
  function http_curl($url,$type='get',$res='json',$arr=''){
            //1.初始化curl
            $ch  =curl_init();
            //2.設定curl的引數
            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);
            }
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
            curl_setopt($curlp, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
            //3.採集
            $output =curl_exec($ch);

            //4.關閉
            curl_close($ch);
            if($res=='json'){
                if(curl_error($ch)){
                    //請求失敗,返回錯誤資訊
                    return curl_error($ch);
                }else{
                    //請求成功,返回錯誤資訊

                    return json_decode($output,true);
                }
            }            
  }