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 相关文章推荐
3.从实例开始
Oct 09 PHP
支持oicq头像的留言簿(二)
Oct 09 PHP
检测png图片是否完整的php代码
Sep 06 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
php一个找二层目录的小东东
Aug 02 PHP
php中如何防止表单的重复提交
Aug 02 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
PHP设计模式之工厂模式与单例模式
Sep 28 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
thinkPHP5框架中widget的功能与用法详解
Jun 11 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 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的ASP防火墙
2006/10/09 PHP
PHP5 安装方法
2007/01/15 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
PDO实现学生管理系统
2020/03/21 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
Python制作数据导入导出工具
2015/07/31 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
django框架两个使用模板实例
2019/12/11 Python
Python urllib.request对象案例解析
2020/05/11 Python
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
竞选班长演讲稿
2013/12/30 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
员工生日活动方案
2014/08/24 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫