开发者社区> 源码下载> 正文

PHP获得微信用户的OpenID,然后再通过OpenID和access_token查询用户信息

简介: PHP获得微信用户的OpenID,然后再通过OpenID和access_token查询用户信息大致如下步骤: 前提是必须要知道的有公众帐号的:appid和secret  * 1、拼成一...
+关注继续查看

PHP获得微信用户的OpenID,然后再通过OpenID和access_token查询用户信息大致如下步骤:

前提是必须要知道的有公众帐号的:appid和secret

 * 1、拼成一个链接
 * 2、把链接抛出去返回一个code echo $_GET['code']
 * 3、根据code换取access_token和openid
 * 4. 使用access_token和openid来获取用户信息
 * 5、
 *


一、第一步写个页面去进行请求微信API获取code

<?php
//$APPID='*******';
//$REDIRECT_URI='wx.qq.com/c/m1020.php';
//$scope='snsapi_base';如果要获取所有的信息请用$scope = snsapi_userinfo;
//$state = 120;

//需要授权的域名 wx.qq.com这一步是在公众后台进行添加的,然后这个域名下的所有页面都可以获得授权比如我的:http://wx.qq.com/c/m1020a.php
header("Location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=***********&redirect_uri=http://wx.qq.com/c/m1020a.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect");

?>



二、第二步写另外一个页面获得微信用户的OpenID,然后再通过OpenID和access_token查询用户信息代码如下:



<?php
//wx.mtgdfs.com/c/m1020.php
$appid = "你的公众帐号appid";
$secret = "你的公众帐号秘钥";
$code = $_GET["code"];
$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_token_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
$json_obj = json_decode($res,true);
//根据openid和access_token查询用户信息
$access_token = $json_obj['access_token'];
$openid = $json_obj['openid'];
$get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
 
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
 

//echo "<hr>ddd<hr>";
//$code = $_GET['code'];//获取code
//$weixin = file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxba922caddc6700a8&secret=9f47a54b26ab9ed1a01fa71ae2e82f27&code=".$code."&grant_type=authorization_code");//通过code换取网页授权access_token
//$jsondecode = json_decode($weixin); //对JSON格式的字符串进行编码
//$array = get_object_vars($jsondecode);//转换成数组
//print_r($array);exit;
//$openid = $array['openid'];//输出openid



//解析json
$user_obj = json_decode($res,true);
$_SESSION['user'] = $user_obj;
print_r($user_obj);
?>



/*参考页面如下:

http://www.cnblogs.com/txw1958/p/weixin71-oauth20.html

http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html

http://mp.weixin.qq.com/wiki/home/index.html


*/


PHP+Mysql网站源码学习请访问PHP+Mysql网站源码学习请访问

http://www.erdangjiade.com/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【C盘瘦身】如何清理Wechat Files,经常使用电脑微信用户必知的常识!
【C盘瘦身】如何清理Wechat Files,经常使用电脑微信用户必知的常识!
668 0
使用springboot每日推送早安问候语到用户微信【部署篇】
使用springboot每日推送早安问候语到用户微信【部署篇】
54 0
使用springboot每日推送早安问候语到用户微信
使用springboot每日推送早安问候语到用户微信
90 0
从6730个微信用户中分析出大家的手机使用习惯
从6730个微信用户中分析出大家的手机使用习惯
86 0
微信小程序中针对微信基础库新旧不同版本获取用户手机号的方法
微信小程序中针对微信基础库新旧不同版本获取用户手机号的方法
249 0
.NET微信网页开发之JS-SDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取详解
.NET微信网页开发之JS-SDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取详解
149 0
微信Windows端IM消息数据库的优化实践:查询慢、体积大、文件损坏等
本文分享的是,微信客户端团队基于对微信用户日常使用场景和数据分析,通过分离重要和非重要数据、采用可靠的分库策略等,对微信Windows端IM本地数据库的架构进行的优化和改造,并最终得到一个具备良好实践效果的技术改造方案。
89 0
小技巧 - 查询微信被谁投诉方法技巧
小技巧 - 查询微信被谁投诉方法技巧
54 0
APP - 查询名下微信实名账户(可注销微信封号账户支付功能)
APP - 查询名下微信实名账户(可注销微信封号账户支付功能)
127 0
Java微信订单查询
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82620040 ...
2112 0
+关注
源码下载
本人二当家的,性温和,擅代码,好技术,人谓代码狗,程序猿;河南商丘人氏也,现居上海,曾先后创办,上海什尔网络科技,上海红苹果电脑科技有限公司,上海素商网络科技等;自毕业即誓言:定要搞网络,携思科、华为等路由、交换机以定天下;初涉江湖,身不由己,期间,曾开过水果店,熟食店,亦开过淘
文章
问答
文章排行榜
最热
最新
相关电子书
更多
微信PaxosStore简介
立即下载
微信移动客户端数据存储优化实践
立即下载
微信广告引擎与播放节奏算法实践
立即下载