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/
相关文章
|
1月前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
4月前
|
小程序 前端开发 JavaScript
微信小程序(二十一)小程序登录获取openid和unionid
在微信小程序中,因为各种各样的原因我们会需要获取到用户的openid或者unionid下面就简单来讲一下在小程序中如何获取openid和unionid。 步骤一:微信登录获取登录凭证
189 0
|
3月前
|
小程序 API
微信小程序生成一个天气查询的小程序
微信小程序生成一个天气查询的小程序
|
1月前
|
安全 小程序 Java
java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
17 0
|
1月前
|
存储 缓存 监控
微信团队分享:微信后端海量数据查询从1000ms降到100ms的技术实践
针对大数据量带来的查询性能问题,微信团队对数据层查询接口进行了针对性的优化,将平均查询速度从1000ms+优化到了100ms级别。本文为各位分享优化过程,希望对你有用!
32 2
|
5月前
|
小程序 JavaScript 数据库
微信小程序云开发数据库操作二查询记录
微信小程序云开发数据库操作二查询记录
67 0
|
3月前
|
小程序
微信小程序实现一个电影信息查询的应用程序
微信小程序实现一个电影信息查询的应用程序
|
9月前
|
传感器 关系型数据库 MySQL
php语句:MySQL指定分区表跨分区根据时间条件快速查询记录的封装函数
php语句:MySQL指定分区表跨分区根据时间条件快速查询记录的封装函数
97 0
|
7月前
|
小程序 前端开发
uniapp+node.js(express框架)获取微信小程序的openid
uniapp+node.js(express框架)获取微信小程序的openid
141 0

热门文章

最新文章