微信网页授权,并获取用户头像,昵称等基本信息代码实例
投稿人:名字学起名网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;
}
注意: 博客作者提供了一些基于官方微信手册的手写示例微信 获取昵称,希望能帮助朋友。这里有很多细节要注意微信 获取昵称,而且状态参数需要理解。