<?php /* *做者:出門右拐是食堂 QQ:568554428 */ class GetUser{ private $appid; private $appserct; public $url;//回調地址 //利用構造函數初始化 public function __construct($appid,$appserct,$url){ $this->appid=$appid; $this->appserct=$appserct; $this->url=$url; } public function https_request($url, $data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; } //獲取code值 public function getcode(){ if(!isset($_GET['code'])){ $urls=$this->url; $url=urlencode($urls); $gcodeurl="https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->appid}&redirect_uri={$url}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; //header("loction:{$gcodeurl}"); echo "<script language=\"javascript\">"; echo "document.location='".$gcodeurl."'"; echo "</script>"; die(); }else{ return $_GET['code']; } } //獲取access_token和openid值 public function getopenid(){ $gopenidurl="https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->appid}&secret={$this->appserct}&code={$this->getcode()}&grant_type=authorization_code"; $access_arr=$this->https_request($gopenidurl); $array=json_decode($access_arr,true); //$access_token=$array['access_token']; //$openid=$array['openid']; return $array; } public function getuser($array){ //傳入getopenid()獲取到的值 $access_token=$array['access_token']; $openid=$array['openid']; $url2="https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$openid}"; $user_list=$this->https_request($url2); $user=json_decode($user_list,true); return $user; //用戶信息。數組格式 } } ?> 類的應用: <?php require_once 'GetUser.class.php'; $weixin=new GetUser('wxf4343b983XXXXXX','da3604eb3ee7f9aa427fffbXXXX','http://www.tjjky.cn/user.php'); $to=$weixin->getopenid(); $user=$weixin->getuser($to); echo "<pre>"; print_r($user); echo "</pre>"; ?> $user對應的參數: 參數 描述 openid 用戶的惟一標識 nickname 用戶暱稱 sex 用戶的性別,值爲1時是男性,值爲2時是女性,值爲0時是未知 province 用戶我的資料填寫的省份 city 普通用戶我的資料填寫的城市 country 國家,如中國爲CN headimgurl 用戶頭像,最後一個數值表明正方形頭像大小(有0、4六、6四、9六、132數值可選,0表明640*640正方形頭像),用戶沒有頭像時該項爲空。若用戶更換頭像,原有頭像URL將失效。 privilege 用戶特權信息,json 數組,如微信沃卡用戶爲(chinaunicom) unionid 只有在用戶將公衆號綁定到微信開放平臺賬號後,纔會出現該字段。詳見:獲取用戶我的信息(UnionID機制)