snsapi userinfo php,微信网页授权获取用户基本信息(snsapi_userinfo )

/*

*作者:出门右拐是食堂 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 "

echo "document.location='".$gcodeurl."'";

echo "";

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; //用户信息。数组格式

}

}

?>

类的应用:

require_once 'GetUser.class.php';

$weixin=new GetUser('wxf4343b983XXXXXX','da3604eb3ee7f9aa427fffbXXXX','http://www.tjjky.cn/user.php');

$to=$weixin->getopenid();

$user=$weixin->getuser($to);

echo "

";

print_r($user);

echo "

";

?>

$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机制)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值