微信开发笔记:获取用户openid,以及用户头像昵称等信息

//需要服务号以上


微信开发的时候有一个很便利的途径来进行一个用户的一步注册登录,就是使用用户的微信信息来直接进行登陆,可以省去很多不必要的麻烦。那具体这些信息是如何来获取的呢?

首先呢,我们需要对微信进行一个授权,让微信页面有权限来读取我们的用户信息:

复制代码
$redirect_uri = urlencode($url); //设置授权页面,此处填写回调的授权页面地址
$scope = 'snsapi_userinfo'; 
$appid = APPID;

$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope={$scope}&state=1#wechat_redirect";

header('location:'.$url);    

scope表示一个对用户的一个授权方式,这里我们用snsapi_userinfo也就是弹出式的授权,可以在用户没有关注公主号的情况下一样进行用户信息的获取。

appid就是我们公众号的appid。

回调的地址是在跳转完以后,微信平台会把用户端的页面跳转到这个回调的地址上,并且将一个code以get的形式发送过来,具体的处理方式是这样的:


function https_request($url){
    $curl = curl_init();  //初始化一个cURL会话
        
    //设置请求选项, 包括具体的url
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);  //禁用后cURL将终止从服务端进行验证
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl,CURLOPT_HEADER,0); //
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); //
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);        
    $response = curl_exec($curl);  
    curl_close($curl);
        
    $jsoninfo = json_decode($response,true); 
    return $jsoninfo;
}    


$code = $_GET["code"];
$token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
$token_info = https_request($token_url);


//根据openid和access_token查询用户信息 
$access_token = $token_info['access_token']; 
$openid = $token_info['openid'];


$userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; 
$user_info = https_request($userinfo_url);

我们从微信平台获得了code以后,就可以去交换access_token以及open_id了,有了access_token和open_id就可以最终获得我们需要的用户信息了,最后提醒下读者,不要忘记再页面的最后跳转回之前用户访问的页面哦,否则用户信息是获取到了,而用户界面就只有一个大白屏了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值