leejianjun的博客 微信Access_token

来源:互联网 发布:软装生活馆淘宝 编辑:程序博客网 时间:2024/05/19 14:16

方法:

[php] view plain copy
  1. private function get_access_token(){  
  2.         $appid='your appid';  
  3.         $appsecret='your appsecret';  
  4.         $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;  
  5.         //$header [] = "content-type: multipart/form-data; charset=UTF-8";  
  6.         $header [] = "content-type: application/json; charset=UTF-8";  
  7.         $ch = curl_init ();  
  8.         curl_setopt ( $ch, CURLOPT_URL, $url );  
  9.         //请求的方式是post  
  10.         curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "GET" );  
  11.         // 禁用后cURL将终止从服务端进行验证  
  12.         curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );  
  13.         //不检查证书  
  14.         curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );  
  15.         //发送头部字段  
  16.         curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );  
  17.         //告诉对方 自己的浏览器型号  
  18.         curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)' );  
  19.         //即表示自动进行跳转抓取(如果URL发生了302重定向)继续抓取  
  20.         curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );  
  21.         //自动重定向开启  
  22.         curl_setopt ( $ch, CURLOPT_AUTOREFERER, 1 );  
  23.         //发送的post参数  
  24.         //curl_setopt ( $ch, CURLOPT_POSTFIELDS, $param );  
  25.         //得到的结果不显示在屏幕上,作为变量结果储存  
  26.         curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );  
  27.         $res = curl_exec ( $ch );  
  28.         //如果运行错误,返回一个错误号  
  29.         $flat = curl_errno ( $ch );  
  30.         if ($flat) {  
  31.             $data = curl_error ( $ch );  
  32.         }  
  33.         curl_close ( $ch );  
  34.         //拿到了返回结果后json格式转化为可以使用的数组格式  
  35.         $res = json_decode ( $res, true );  
  36.         $access_token=$res['access_token'];  
  37.         return $access_token;  
  38.     }  

使用:

大笑这里存到了Redis,access_token有效期不超过2个小时,灵活设置就好

[php] view plain copy
  1. S(array('type' => 'redis''host' => '127.0.0.1''port' => '6379''prefix' => 'index''expire' => 86400));  
  2.   
  3. if(S('access_token')){  
  4.             $access_token=S('access_token');  
  5.         }else{  
  6.             $access_token=$this->get_access_token();  
  7.             S('access_token',$access_token);  
  8.         } 
原创粉丝点击