接下来说一说怎么通过网页授权获取用户基本信息(国家,省,市,昵称,openid,头像,用户名)等。

必要条件:

1)公众号认证
2)有网页授权获取用户基本信息的权限接口

填写授权回调页面的域名

登录公众平台–>开发者中心–>接口权限表

找到 网页授权获取用户基本信息 然后修改–>填写你的域名.如下:

关于网页授权的两种scope的区别说明(官方)

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
因为scope有两中模式,所以下面分开解说:

scopesnsapi_base 那么用户必须是关注了公众号才能取得信息
先自己建立两个文件: index.php 和 getUserInfo.php
代码实例

index.php如下:

//scope=snsapi_base 实例
$appid='你的AppId';
$redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' );
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
header("Location:".$url);

getUserInfo.php如下:

$appid = "你的AppId";
$secret = "你的AppSecret";
$code = $_GET["code"];//第一步:取全局access_token
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
$token = getJson($url);//第二步:取得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["access_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";
$userinfo = getJson($get_user_info_url);//打印用户信息print_r($userinfo);function getJson($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);curl_close($ch);return json_decode($output, true);
}

scopesnsapi_userinfo 用户不用关注公众号,也能取到信息,但是会有一个界面让用户去点击确认!相当于一个登录授权吧!

代码实例

index.php如下:

//scope=snsapi_userinfo实例
$appid='你的AppId';
$redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' );
$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);

getUserInfo.php如下:

$appid = "你的AppId";
$secret = "你的AppSecret";
$code = $_GET["code"];//第一步:取得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 = $oauth2["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url);//打印用户信息print_r($userinfo);function getJson($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);curl_close($ch);return json_decode($output, true);
}

测试步骤:

创建index.php和getUserInfo.php两个文件后

先测试:scope为snsapi_base

1)先关注公众账号

2)将网址: http://你的域名/index.php 生成一个二维码!

3)用微信扫一扫

再测试:scope为snsapi_userinfo

1)替换代码

2)取消关注当前公众号.

3)然后用微信扫一扫,刚刚你生成的二维码.

最后就结束了…

PHP微信公众号网页授权获取用户基本信息相关推荐

  1. 微信公众号网页授权获取用户信息的流程

    官网文档 网页授权流程分为四步: 引导用户进入授权页面同意授权,获取code 通过 code 换取网页授权access_token(与基础支持中的access_token不同)(我的需求只需要到第二部 ...

  2. php微信授权没有code返回,解决关于微信公众号网页授权获取code参数的问题

    解决关于微信公众号网页授权获取code参数的问题 发布时间:2018-07-24 23:21, 浏览次数:3327 , 标签: code * 在微信网页授权过程中,需要获取code参数,因为我用的是公 ...

  3. 微信公众平台--服务号/订阅号--网页授权获取用户基本信息

    参考链接:https://www.cnblogs.com/admol/articles/4286487.html 注: 1.此为网页授权获取用户基本信息,必须为服务号,订阅号是没有权限通过网页授权来获 ...

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

    微信官方文档:网页授权获取用户基本信息 具体而言,网页授权流程分为四步: 1.引导用户进入授权页面同意授权,获取code https://open.weixin.qq.com/connect/oaut ...

  5. 微信授权地理位置php,微信公众号第三方授权获取用户的的地理位置--坑

    首先注册公众号,配置好 URL js URl ,这个就不多介绍了 第一步,直接 在菜单里 同意授权,获取code 这是第一个坑 ,记住,一定要用  urlEncode 对你的 重定向 URL  进行处 ...

  6. 微信公众号第三方授权获取用户的的地理位置--坑

    首先注册公众号,配置好 URL js URl ,这个就不多介绍了 第一步,直接 在菜单里 同意授权,获取code 这是第一个坑 ,记住,一定要用 urlEncode 对你的 重定向 URL 进行处理 ...

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

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

  8. 微信公众号网页授权--前端获取code及用户信息(vue)

    前段时间开发微信公众号网页授权,虽然网上已经有很多关于这方面的博客或者教程,但是第一次开发还是遇到挺多坑的,以下分享一下我的踩坑填坑之路. 一.测试号相关配置 首先在你公司申请的测试号上配置好相关信息 ...

  9. 微信公众号网页授权--前端获取code及用户信息(vue)【简单详细版】

    嗨喽大家好,前段时间开发微信公众号网页授权,虽然网上已经有很多关于这方面的博客或者教程,但是第一次开发还是遇到挺多坑的,以下分享一下我的遇到的一些问题的见解,希望对你们有帮助. 一.测试号相关配置 首 ...

  10. 微信公众号 网页授权实现

    绪论: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域名的说明 1.在微信公众号请求用户网页授权之前,开发者需要先到公 ...

最新文章

  1. 关于PreferenceActivity的使用和一些问题的解决(自己定义Title和取值)
  2. linux怎么修改vdo的名字,linux中VDO的使用
  3. 一个小菜程序员的经历
  4. 【Android应用开发】Android Studio - MAC 版 - 快捷键详解
  5. 强迫症慎入:一大票让人看哭的音量键设计即将袭来
  6. Centos7 Docker Jenkins ASP.NET Core 2.0 自动化发布和部署
  7. 计算机用户删除 cmd,用命令行删XP中的用户。除administrator外
  8. VTK:Render之RenderView
  9. 如何给远程计算机添加用户,如何访问远程计算机以添加/删除/管理用户帐户?...
  10. 【计算机组成原理】虚拟存储器和Cache的比较
  11. [uva] 146 - ID Codes
  12. 教机器写代码:增强拓扑进化网络(NEAT)
  13. Java基础-重要版本
  14. 螺旋桨k线是什么意思?底部螺旋桨k线形态特征是什么
  15. 将当前列表视图导出到Excel中
  16. 东方日升2019年全年营收实现高质量增长
  17. 外包程序员,如何提高自己跳出外包圈子?
  18. 关于如何在coursera.org上旁听好课
  19. 2020电赛芯片介绍和题目估计(二):LMT70
  20. 颓废的人怎样振奋精神_5个令人振奋的行业,从事数据科学家在科技行业以外的工作...

热门文章

  1. React入门8-复合组件
  2. yolo fastest模型网络结构魔改
  3. 【Java实现短信通知】教你几步完成短信通知
  4. 1-3 Minecraft-Forge-1.16.5 Mod的开发(创造物品栏的实现)
  5. 欧姆龙 CJ1W-ETN21功能块实现Socket Udp功能
  6. 亲历五年百度联盟峰会后,聊一聊百度生态的变与不变
  7. 当人工智能机器人具有七情六欲
  8. 亲历亚马逊、华为机器学习面试,原来考官想听到这些回答[转]
  9. 爬虫 全国建筑市场监管服务平台(四库一平台) 小程序数据抓取
  10. 线性表的动态数组实现ArrayList