微信網頁受權獲取用戶基本信息(snsapi_userinfo )

<?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機制)
相關文章
相關標籤/搜索