微信详细授权(snsapi_userinfo)

/**
*弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息
*/
function index(){
//公众号在微信的appid
$appid = ""
//重定向到回调地址
$redirect_uri =urlencode('http://www.xxx.com/xxx/getUserInfo');
//应用授权作用域,
$scope = 'snsapi_userinfo';
//重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
$state = '';
//进行重定向操作
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$redirect_uri.'&response_type=code&scope='.$scope.'&state='.$state.'#wechat_redirect';
header("Location:".$url);
}

/**
* 微信网页的详细授权
*/

function getUserInfo(){

//通过code换取网页授权access_token(访问令牌)
$appid = "";
$secret = "";
$code = $_GET["code"];
$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
//获取到access_token
$json_obj = httpRequest($get_token_url);
//根据openid和access_token查询用户信息
$access_token = $json_obj['access_token'];
$openid = $json_obj['openid'];
$get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';

//获取到用户信息
$userinfo =httpRequest($get_user_info_url);
//记录用户信息
$wxuser = array(
'openid' => $userinfo['openid'],
'nickname' => base64_encode($userinfo['nickname']),
'headimgurl' => $userinfo['headimgurl'],
'sex' => $userinfo['sex'],
'province' => $userinfo['province'],
'city' => $userinfo['city'],
'country' => $userinfo['country']
);
//授权成功要重定向的地址
$url="http://www.***.cn"
header("Location:".$url);
}

/**
* curl请求封装
*/
function httpRequest(){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
return json_decode($res, true);
}

转载于:https://www.cnblogs.com/maxyue/p/7356658.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值