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月前
|
Oracle 关系型数据库 MySQL
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
本文分析了YashanDB中PHP通过ODBC查询数据时出现的数据截断问题,表现为超过256字节的数据被截断,以及isql工具无法显示超过300字节长度的数据。问题根源在于YashanDB的ODBC驱动仅支持单次查询,且PHP扩展库默认缓冲区限制。解决方案包括改用PHP ODBC扩展库而非PDO_ODBC,以及调整isql代码逻辑以支持循环取数或一次性读取完整数据。文章还提供了具体代码示例和规避方法,适用于23.2.4.14及更早版本。
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
|
1月前
|
JSON PHP 数据库
PHP成绩查询系统源码
PHP成绩查询系统源码
585 3
|
6月前
|
JSON 小程序 应用服务中间件
微信的openid是用户的唯一id吗?
【10月更文挑战第4天】微信的openid是用户的唯一id吗?
1504 5
ly~
|
7月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
159 6
|
2月前
|
监控 定位技术 PHP
使用PHP接入纯真IP库:实现IP地址地理位置查询
本文介绍了如何使用PHP接入纯真IP库(QQWry),实现IP地址的地理位置查询。纯真IP库是一个轻量级的IP数据库,数据格式简单,查询速度快,适合Web应用。首先,下载并放置`QQWry.dat`文件到项目目录。接着,通过编写PHP类解析该文件,实现IP查询功能。最后,提供了一个完整的案例演示,展示如何查询IP地址对应的国家和地区信息。该工具适用于用户地理位置分析、访问日志分析和风控系统等场景,具有轻量级、查询速度快、数据更新方便等优点。
|
2月前
|
Oracle 关系型数据库 MySQL
【YashanDB 知识库】php 查询超过 256 长度字符串,数据被截断的问题
php 查询超过 256 字节数据,显示被截断:yashandb 的 odbc 驱动接口 SQLGetData 现在只支持单次查询,不支持多次取数据的操作。 isql 显示不出来,isql 工具最大只查询 300 长度的数据,超过了该长度未正常显示。
|
5月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
170 4
|
9月前
|
小程序 API 数据库
【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)
【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)
149 0
|
6月前
|
云安全 存储 小程序
PHP微信小程序解决方案PhpMall
PHP微信小程序解决方案PhpMall
90 0
|
8月前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
257 0