实例分析基于PHP微信网页获取用户信息

很多用户在开发微信版网页的时候,需要获取用户的基本信息,比如国家,省,市,昵称等,我们接下来基于PHP语言基础详细分析一下如何成功获取。

必要条件:

1)公众号认证

2)有网页授权获取用户基本信息的权限接口

注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用户信息。换到认证的公众账号就正常了!

如果您也遇到这个问题,可以试试在认证的公众账号里测试一下! 感谢大家的支持!

填写授权回调页面的域名

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

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

保存即可!

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

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

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

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

因为scope有两中模式,所以下面分开解说:

scope为snsapi_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); }

scope为snsapi_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/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); }

测试步骤:

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

先测试:scope为snsapi_base

1)先关注公众账号

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

3)用微信扫一扫

再测试:scope为snsapi_userinfo

1)替换代码

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

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

时间: 2024-09-15 10:33:28

实例分析基于PHP微信网页获取用户信息的相关文章

微信 用户信息-微信网页获取用户信息

问题描述 微信网页获取用户信息 刚接触微信开发,想请教下大家,如何在微信的网页里去获取进来的用户基本信息 比如用户A,在我数据里已记录过,他就能看到网页里所有内容 用户B,没有在我数据库里有记录,那他只能看到一部分信息 我就先获取用户的信息与我数据库做匹配. 在微信本身的界面,不进入到微信网页模式我知道相关参数,但是如何传过去微信网页就不太清楚 解决方案 微信不是有提供接口使用的吗? 解决方案二: 微信不是有提供接口使用的吗?

php 微信开发获取用户信息如何实现_php技巧

php 微信开发获取用户信息 获取用户信息的大致算法是 用户授权登录第三方网站, 重点:scope参数: snsapi_basic 静默登录,不需要用户授权,只能获取到openid: snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息: 第一步:先获取用户的code值: 第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次: 第三步:根据access_token获取用户信息: 1.获取code代码实现: g

微信开发之网页授权获取用户信息(二)_php实例

在公众号的配置过程中,许多开发者会在菜单中加入HTML5页面,有时在页面内需要访问页面的用户信息,此时就需要网页授权获取用户基本信息 提醒大家:本文介绍讲述的内容是基于yii2.0框架 1.设置授权回调域名:开发 ---> 接口权限 找到"网页授权获取用户基本信息",点击后面对应的"修改",在弹框响应位置填写授权回调域名即可,此处的域名不需要加http:// (关于网页授权回调域名的说明详情可参考公众平台开发者文档) 2.获取授权 关于OAuth2.0博主参考

php开发微信支付获取用户地址_php技巧

使用微信获取地址信息是和微信支付一道申请的,微信支付申请通过,就可以使用该功能. 微信商城中,使用微信支付获取用户的收货地址,可以省略用户输入地址信息的繁复流程,提高用户体验. 但是可能是因为牵扯到用户隐私,所以在使用过程中,需要用户自己主动选择使用该功能,并且是通过点击的操作,我们才可以获取到用户的收货地址,这一点是要注意的. 操作流程如下: 1.用户打开购物车页面,点击结算,跳转到一个微信的oauth2的页面,地址为:https://open.weixin.qq.com/connect/oa

SharePoint 2013 APP开发示例 (二)获取用户信息

这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的  SharePoint 2013 app: UserProfileTest. 3. 选择SharePoint-hosted, 点Finish. 4. 打开Default.aspx : 加入knockoutjs和sp.userprofiles.debug.js(包含user profile的信息): <script type="text/javascript" src=

微信开发笔记——微信网页登录授权,获取用户信息

原文:微信开发笔记--微信网页登录授权,获取用户信息 微信网页授权,获取用户的微信官方API文档地址:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 三次握手微信认证流程(我自己简称三次握手): 1.用户同意授权,获取code 2.通过code换取网页授权access_token,用户openId等信息 3.通过access_token和用户的openId获取该用户的用户信息 思路: 经过研究,我这边的思

微信公众平台开发(106) 网页获取用户地理位置

关键字:微信公众平台 JSSDK 获取地理位置接口 网页获取用户地理位置 getLocation作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-web-location.html     在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息. 本文分为以下二个部分: 生成JS-SDK权限验证签名 使用地理位置接口获取坐标   一.微信JS-SDK 1. 获得Access Token access token的获得方法在

asp.net版微信网页登录授权,获取用户信息例子

asp.net版微信网页登录授权必须要是微信公众号并且类型为"服务号" 首先大家要看下微信的API文档. 微信网页授权,获取用户的微信官方API文档地址: http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 微信认证流程: 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信

PHP版微信第三方实现一键登录及获取用户信息的方法_php技巧

本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要"服务号"才可以哦,所以必须到官方申请. 一开始你需要进入微信公众平台开启开发模式,并且填写oauth2的回调地址,地址填写你项目的域名就可以了.比如:www.baidu.com或zhidao.baidu.com.如果你的项目在二级域名就写二级域名 前端url授权地址,在url中填写appid与你项目中方法中的oauth的地址,具体在下面的代码中可以