长春网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

首页 供求 博客 电商
黄页 排行 资讯 招聘
娱乐 设计 房屋 拍客
求职 会计 商务 软件
医药 平面 建站 短信
互动 联讯 招标 美食
网事 汽车 教育 旅游
创业 笑话 摄影 运动
传媒 搜索 装修 美容
婚嫁 女性 育儿 通讯
查看: 1473|回复: 1
打印 上一主题 下一主题

微信网页授权获取用户基本信息--PHP [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2015-12-19 23:37:09 |只看该作者 |倒序浏览
微信网页授权获取用户基本信息--PHP
这年代不懂点微信开发,那怎么对得起自己啊!
现在就说说怎么通过网页授权获取用户基本信息(国家,省,市,昵称)等。

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

填写授权回调页面的域名
登录公众平台-->开发者中心-->接口权限表
找到 网页授权获取用户基本信息  然后修改-->填写你的域名.如下:

保存即可!

---------------------------------------------------
关于网页授权的两种scope的区别说明(官方)
1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

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

scopesnsapi_base 那么用户必须是关注了公众号才能取得信息

代码实例
index.php如下:

1


2


3


4


5


//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如下:

1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


$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如下:

1


2


3


4


5


//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如下:

1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


$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两个文件后
先测试:scopesnsapi_base
把这个 http://你的域名/index.php 生成一个二维码!

然后用微信扫一扫,

再测试:scopesnsapi_userinfo
1)替换代码
2)取消关注当前公众号.
3)然后用微信扫一扫,刚刚你生成的二维码.

最后就结束了.....


分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0
长春网站建设

使用道具 举报

Rank: 6Rank: 6

沙发
发表于 2016-3-3 08:40:50 |只看该作者
家庭美满他的《怎样写好一篇文章》在网上的点击量达到20多万次那么深邃[url=http://www.luowu.cc/luowu-337206-1-1.html]进行了为期一个

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关于我们|手机版|简洁版|搜索|广告招商|长春网

GMT+8, 2024-5-13 04:47 , Processed in 0.063947 second(s), 14 queries .

版权所有 吉林省新格信息技术有限公司 长春网 联系QQ:5053050 微信号:13624467185

© 2008-2012 吉林省长春地区信息分享门户网站。 ICP备案号: 皖ICP备2021004516号-11
建站技术支持:长春新格

回顶部