php版微信公众平台之微信网页登陆授权示例


Posted in PHP onSeptember 23, 2016

本文实例讲述了php版微信公众平台之微信网页登陆授权。分享给大家供大家参考,具体如下:

微信公众平台实现微信网页登陆授权开发其实是非常的简单了,因为官方的参考程序了,下面小编就看了一站长根据官方参考做的一个网页登陆授权例子,大家可看看.

文件1:index.php

//换成自己的接口信息
$appid = 'XXXXX';
header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri=127.0.0.1/oauth.php&response_type=code&scope=snsapi_userinfo&state=123&connect_redirect=1#wechat_redirect');

参数 是否必须 说明
appid 公众号的唯一标识
redirect_uri 授权后重定向的回调链接地址,请使用urlencode对链接进行处理
response_type 返回类型,请填写code
scope 应用授权作用域,snsapi_base(不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo(弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)
state 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值
#wechat_redirect 无论直接打开还是做页面302重定向时候,必须带此参数

文件二:oauth.php,代码如下:

<?php
$code = $_GET['code'];
$state = $_GET['state'];
//换成自己的接口信息
$appid = 'XXXXX';
$appsecret = 'XXXXX';
if (emptyempty($code)) $this->error('授权失败');
$token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
$token = json_decode(file_get_contents($token_url));
if (isset($token->errcode)) {
 echo '<h1>错误:</h1>'.$token->errcode;
 echo '<br/><h2>错误信息:</h2>'.$token->errmsg;
 exit;
}
$access_token_url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$token->refresh_token;
//转成对象
$access_token = json_decode(file_get_contents($access_token_url));
if (isset($access_token->errcode)) {
 echo '<h1>错误:</h1>'.$access_token->errcode;
 echo '<br/><h2>错误信息:</h2>'.$access_token->errmsg;
 exit;
}
$user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token->access_token.'&openid='.$access_token->openid.'&lang=zh_CN'; //开源软件:phpfensi.com
//转成对象
$user_info = json_decode(file_get_contents($user_info_url));
if (isset($user_info->errcode)) {
 echo '<h1>错误:</h1>'.$user_info->errcode;
 echo '<br/><h2>错误信息:</h2>'.$user_info->errmsg;
 exit;
}
//打印用户信息
echo '<pre>';
print_r($user_info);
echo '</pre>';
?>

参数 描述
openid 用户的唯一标识
nickname 用户昵称
sex 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
province 用户个人资料填写的省份
city 普通用户个人资料填写的城市
country 国家,如中国为CN
headimgurl 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空.
privilege 用户特权信息,json数组,如微信沃卡用户为(chinaunicom)
unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)

到此网页登陆授权开发功能就作完了,如果想要获取用户基本信息我们需要看另一个例子,在官方有说明大家可自行搜索哦.

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 PHP
深入PHP异步执行的详解
Jun 03 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
thinkPHP学习笔记之安装配置篇
Mar 05 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
PHP常见漏洞攻击分析
Feb 21 PHP
通过php动态传数据到highcharts
Apr 05 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 #PHP
php利用递归实现删除文件目录的方法
Sep 23 #PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 #PHP
php分页原理 分页代码 分页类制作教程
Sep 23 #PHP
php使用glob函数遍历文件和目录详解
Sep 23 #PHP
php版微信发红包接口用法示例
Sep 23 #PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 #PHP
You might like
php中autoload的用法总结
2013/11/08 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
读jQuery之五(取DOM元素)
2011/06/20 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
python字典排序实例详解
2015/05/20 Python
python将unicode转为str的方法
2017/06/21 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
python实现大转盘抽奖效果
2019/01/22 Python
python requests使用socks5的例子
2019/07/25 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
大学生个人自荐信
2014/02/24 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
结婚主持人致辞
2015/07/28 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL