微信官方文档:网页授权获取用户基本信息

具体而言,网页授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

2、通过code换取网页授权access_token(与基础支持中的access_token不同)
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

3、如果需要,开发者可以刷新网页授权access_token,避免过期
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN //返回值无subscribe,就是不知道是否关注了微信号。网页授权获取用户信息,官方用的这个方法。

https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN  //这样返回值有subscribe,但是官方没提这个方法。所以这里面的 access_token是不是网页授权的access_token?我不确准

总之,这两个接口都是能获取用户信息。

但不清楚的是红色接口,是否会导致 基础access_token 每日2000上限的问题。不知道怎么去验证???有经验的朋友可以留言点评,谢谢。

关于第四步:拉取用户信息(需scope为 snsapi_userinfo)

如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。
请求方法
http:GET(请使用https协议)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
返回说明

正确时返回的JSON数据包如下:

{
"openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[
"PRIVILEGE1"
"PRIVILEGE2"
],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

说明:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 这个方法,获取的用户数据,没有关注信息(即 [subscribe] => 1)。

而$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";//这样调用就有subscribe。

分享是一种美德,请阅代码!

$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
header("Location:".$url);

//返回内容:     [subscribe] => 1 [openid] => oZE7SjqjC_A88aGfaj_X8tJDC  [nickname] => 大仙 [sex] => 1 [language] => zh_CN [city] => 大兴 [province] => 北京 [country] => 中国 [headimgurl]
function getUserInfoAll($code)
{$appid = WX_APP_ID;$secret = WX_SECRET;
 //第一步:取全局access_token $token =  $global_token;//第二步:取得openid$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";$oauth2 = getJson($oauth2Url);//第三步:根据全局access_token和openid查询用户信息    $access_token = $token; $openid = $oauth2['openid'];$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";//有subscribe$userinfo = getJson($get_user_info_url);session_start();//     session_id($userinfo['openid']);if($userinfo['subscribe']==1){$_SESSION['userinfo']=$userinfo;}return $userinfo;
}
//返回无subscribe
function getUserInfo($code)
{$appid = WX_APP_ID;$appsecret = WX_SECRET;$access_token = "";//根据code获得Access Token$access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";$access_token_json = https_request($access_token_url);$access_token_array = json_decode($access_token_json, true);$access_token = $access_token_array['access_token'];$openid = $access_token_array['openid'];//根据Access Token和OpenID获得用户信息$userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid ";//无subscribe$userinfo = https_request($userinfo_url);$userinfo = json_decode($userinfo, true);return $userinfo;}

转载于:https://www.cnblogs.com/wellsoho/p/5089472.html

微信开发之网页授权获取用户基本信息相关推荐

  1. Java微信公众号开发之网页授权获取用户基本信息

    本篇博客讲解的网页授权只需要前端传递一个backUrl(回调地址) 到后台接口,后台接口会完成整个授权流程,无需前端做更多工作: 一. 前言 微信公众号开发,需要用到网页授权获取用户信息,通过OAut ...

  2. 微信公众号开发系列-网页授权获取用户基本信息

    OAuth2.0网页授权这个也是在做微信公众平台用到最多的,可以利用授权接口对自己平台内用户进行绑定,实现用户扫描码和微信分享.微信签到.微信商城购物等: 1.高级接口OAuth2.0网页授权设置 a ...

  3. 微信开发_网页授权获取用户的基本信息

    如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于OAuth2.0的说明 官方网站:http://oauth.net/   http:/ ...

  4. 微信接口开发之高级篇系列【网页授权获取用户基本信息】

    PHP微信接口开发之高级篇之网页授权获取用户基本信息 二.WEB开发工具 转载于:https://www.cnblogs.com/tinywan/p/5860981.html

  5. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  6. 微信开发 网页授权获取用户基本信息

    微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一. ...

  7. PHP开发之-微信网页授权获取用户基本信息

    如何通过网页授权获取用户基本信息(国家,省,市,昵称)相关信息 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用户信息 ...

  8. 微信网页授权获取用户基本信息 --- 20/03/16

    ThinkPHP5实现微信网页授权获取用户基本信息 本次使用的appID与appSecret为公众号 一:准备工作 登录微信公众平台,左侧菜单下拉至开发选中基本配置 启用开发者密码(AppSecret ...

  9. PHP通过微信网页授权获取用户基本信息

    微信网页授权获取用户基本信息: <?php$appid = '你的appid'; $secret = '你的secret';if (isset($_GET['code'])) {$code = ...

最新文章

  1. Python使用numpy中trim_zeros函数去除首尾0值的语法
  2. 何恺明最新一作论文:无监督胜有监督,迁移学习无压力,刷新7项检测分割任务...
  3. linux服务器secureCRT RSA登录配置
  4. .net 遍历数组找重复值写入一个新数组_面试 | 数组类算法精析
  5. Android图片上倒计时,Android自定义照相机倒计时拍照
  6. young people can also be a leader
  7. 论富客户端程序的webservice实现
  8. Pytorch——DataLoader的学习笔记~
  9. iPhone 11 引领芯片新革命?
  10. 手把手教你用Spring Cloud和Docker构建微服务
  11. 晶体管游戏 linux,Industrial Linux
  12. vue中动态添加组件
  13. python自带数据库是什么意思_原来Python自带了数据库,用起来真方便!
  14. Latex给表格加脚注
  15. 关于readyState
  16. Mac中从pdf文件中提取指定页的方法
  17. Android P 亮屏慢分析
  18. 用搜狗输入法原样输出10的若干次方
  19. 批处理命令之Start的详细用法-P处理打开IE窗口最大化
  20. CVX工具包(for matlab)

热门文章

  1. Zend Framework学习之Zend_Config
  2. 使用XML文件方式配置log4cxx(log4cxx xml例子)
  3. android 表情退格,讯飞输入法Android V8.1.8212 嘘-别说话全套emoji表情上
  4. Spark源码分析之SparkContext
  5. (66)UART接口波特率是多少?以及异步采样时钟是多少频率?
  6. (12)Verilog HDL可综合与不可综合区别(第3天)
  7. php 密码过滤,PHP实践教程之过滤、验证、转义与密码详解
  8. 色彩管理实验 matlab,色彩管理实验报告1
  9. h5跳转小程序_微信小程序吞掉H5?
  10. 一文看懂压敏电阻和tvs的区别