php微信网页授权获取用户信息

配置回调域名:

1. 引导用户进入授权页面同意授权,获取code

2. 通过code换取网页授权access_token(与基础支持中的access_token不同)

3. 如果需要,开发者可以刷新网页授权access_token,避免过期

4. 通过网页授权access_token和openid获取用户基本信息

先自己建立两个文件: index.php  和  getUser.php

代码实例

index.php如下:

 <?php
$appid = "公众号的appid";
$REDIRECT_URI='回调链接';
$scope='snsapi_base';
// $scope='snsapi_userinfo';//需要授权
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state=STATE#wechat_redirect';
header("Location:".$url);
?>

getUser.php如下:

 <?php
$appid = "公众号appid";
$secret = "公众号secret";
//获取code
$code = $_GET["code"];
//获取access_token
$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code'; $ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_token_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);
$json_obj = json_decode($res,true); //根据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';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_user_info_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);
//解析json
$user_obj = json_decode($res,true);
$_SESSION['user'] = $user_obj;
print_r($user_obj);
?>

 

上一篇:python 将QQ收集的照片加水印并且制成pdf


下一篇:P6269 [SHOI2002]空中都市 题解