<?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、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
privilege 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)
unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)
转载于:https://my.oschina.net/u/2443173/blog/501772