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 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
php array_intersect()函数使用代码
Jan 14 PHP
php 执行系统命令的方法
Jul 07 PHP
LotusPhp笔记之:Logger组件的使用方法
May 06 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
php中关于换行的实例写法
Sep 26 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
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php实现的简单日志写入函数
2015/03/31 PHP
php微信开发自定义菜单
2016/08/27 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
艺术学院毕业生自我评价
2014/03/02 职场文书
教师远程培训感言
2014/03/06 职场文书
师德师风建设方案
2014/05/08 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
个人委托书范本
2014/09/13 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
导游词之南京中山陵
2019/11/27 职场文书
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技