名字学 > 微信名字 > 微信网页授权,并获取用户头像,昵称等基本信息代码实例

微信网页授权,并获取用户头像,昵称等基本信息代码实例

投稿人:名字学起名网2021-01-18 17:39:26

html中的

js片段: 

    var this_page_url  = "当前界面地址";//通过函数自己获取
    var openid  = "通过模板赋值活get获取的";
    var appID  = "您的公众号appid";
    var nickname  = "通过模板赋值活get获取的";
    var headimgurl = "通过模板赋值活get获取的"; 
    var redirectUri  = "你的回调地址}/这个是受理用户数据的方法路径"; 
//用户头像和昵称按照自己的需要进行填写  
    if(openid == null  || openid == ''|| openid == undefined){ // 通过这个判断openid是否存在进行html页面里的跳转
        var recatTo= "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appID + "&redirect_uri=" + redirectUri + "&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect";
        window.location.href = recatTo;
    }
    

php文件中的代码段: 

<?php
		$code = isset($_GET['code'])?$_GET['code']:'';//或者使用框架自带的request 方法获取这个code
        $this_page_url = ‘需要传递这个当前地址url 用于登录以后的还原’;//可以使用_getNowUrl() 这个自定义函数
		$appSecret =‘公众号密钥’;
        $appId = ‘公众号appid’;
        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appId&secret=$appSecret&code={$code}&grant_type=authorization_code";
        $r = file_get_contents($url);
        $json=(array)json_decode($r);//这个是从微信获取到的openid数据和密钥token
        if(!isset($json['errcode'])){
            $openid = $json['openid'];
            $url ="https://api.weixin.qq.com/sns/userinfo?access_token=".$json['access_token']."&openid=".$json['openid'];
            $res = file_get_contents($url);
            $json = (array)json_decode($res);//这里是将返回过来的json对象转成数组
            $headimgurl = $json['headimgurl'];
            $nickname = $json['nickname'];
            // 将相关获取到的 数据信息 openid、昵称、头像等)地址参数跳回前端页面
            header("Location:'.$this_page_url .'?openid=$openid&nickname=$nickname&headimgurl=$headimgurl");
        }
       return  ‘获取失败’; 

php使用的自定义函数: 

//获取完整当前路径
function _getNowUrl(){
	//检测是否是https 或者http
	$is_https = false;
	    if ( !empty($_SERVER['HTTPS']) 
   && strtolower($_SERVER['HTTPS']) !== 'off') {
        $is_https = true;
    } elseif (
     isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
      && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
        $is_https = true;
    } elseif ( 
    !empty($_SERVER['HTTP_FRONT_END_HTTPS']) 
    && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) 
    !== 'off') {
       $is_https = true;
    }
 	//判断是否是http或者https
    if($is_https ){
        $http = 'https://';
    }else{
        $http = 'http://';
    }
    $string =  $http.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
    return $string;
}

注意: 博客作者提供了一些基于官方微信手册的手写示例微信 获取昵称,希望能帮助朋友。这里有很多细节要注意微信 获取昵称,而且状态参数需要理解。

分享:

扫一扫在手机浏览本文