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

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

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

必要条件:

1)公众号认证

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

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

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

填写授权回调页面的域名

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

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

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

保存即可!

关于网页授权的两种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)然后用微信扫一扫,刚刚你生成的二维码.

关于基于PHP微信网页获取用户信息的实例分析的文章就分享到这,如果对你有帮助欢迎继续关注我们哦

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/40770.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
php学习php学习订阅用户
上一篇 2022年6月15日 23:51
下一篇 2022年6月15日 23:51

相关推荐

  • PHP中的测试数据管理工具。

    PHP是一种广泛应用于Web开发的脚本语言,由于其易于学习和扩展性,已经成为大多数Web开发人员的首选语言。随着Web应用程序越来越复杂,测试也变得更加重要。为了成功地测试PHP代码,测试数据是必不可少的。在本文中…

    2023年5月28日
    00
  • PHP中的编辑器和IDE。

    纵观现今互联网开发领域,PHP一度成为最受欢迎的的编程语言之一。许多公司和个人使用PHP开发网站、应用程序和电子商务解决方案。而在PHP开发中,选择一款优秀的编辑器和IDE是非常重要的,因为它们可以提高我们的编…

    2023年5月28日
    01
  • 教你使用PHP实现查找你想要的附近人

    最近有个业务场景使用到了查找附近的人,于是查阅了相关资料,并对使用PHP实现相关功能的多种方式和具体实现做一篇技术总结,欢迎各位看官提出意见和纠错,下面开始进入正题:LBS(基于位置的服务)查找附近的人有个…

    2022年6月21日
    0127
  • 详解PHP如何遍历对象

    PHP怎么遍历对象?对于php来说,foreach是非常方便好用的一个语法,几乎对于每一个PHPer它都是日常接触最多的请求之一。那么对象是否能通过foreach来遍历呢?答案是肯定的,但是有个条件,那就是对象的遍历只能获得…

    2022年6月27日
    0106
  • php自学教程—php运算符的错误抑制符

    错误抑制符 说明:@,目的屏蔽一些不重要错误。 作用:所有的网站不可能没有bug的时候上线。 执行运算符 说明:``,把数据用反引号括起来后,就是执行了。 递增递减运算符 说明:自己加一或自己减一,符号:++ -- …

    2017年12月6日 PHP自学教程
    0232
  • 商城开发中如何利用PHP实现推荐算法

    随着电子商务行业的飞速发展,商城的推荐算法也变得越来越重要。推荐算法可以为用户提供个性化的推荐服务,从而提高用户的购买率,并为商城带来更多的收益。在商城开发中,PHP是一种常用的编程语言,而如何利用PHP…

    2023年5月19日
    015
  • 学习PHP实现的曲线统计图表示例

    本文实例讲述了PHP实现的曲线统计图表。分享给大家供大家参考,具体如下:<?php /****************************** * 折线图生成函数 * youd * 090207-01 ******************************/ function line_stats_p…

    2022年6月14日
    0204
  • PHP协程框架Hyperf日志查看组件

    一、界面先上效果图:二、使用1.安装组件composer require sett/hyperf-log-viewer2.发布配置文件php bin/hyperf.php vendor:publish sett/hyperf-log-viewer3.注册路由Router::get('/logs', 'Sett\…

    2022年6月20日
    0254

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息