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 相关文章推荐
Discuz 模板引擎的封装类代码
Jul 18 PHP
PHP chmod 函数与批量修改文件目录权限
May 10 PHP
一个简单且很好用的php分页类
Oct 26 PHP
PHP字符串的连接的简单实例
Dec 30 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
php随机取mysql记录方法小结
Dec 27 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
PHP getName()函数讲解
Feb 03 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
PHP CURL中传递cookie的方法步骤
May 09 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 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的一些基础知识分享
2011/07/27 PHP
php权重计算方法代码分享
2014/01/09 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
java script编程起步(第三课)
2007/01/10 Javascript
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
Python松散正则表达式用法分析
2016/04/29 Python
解决python报错MemoryError的问题
2018/06/26 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
如何将json数据转换为python数据
2020/09/04 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
thinkphp5 路由分发原理
2021/03/18 PHP
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
法国房车租赁网站:Yescapa
2019/08/26 全球购物
几个Shell Script面试题
2014/04/18 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
护理学专业推荐信
2013/12/03 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
董事长助理岗位职责
2014/02/18 职场文书
数字化校园建设方案
2014/05/03 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
优秀应届生求职信
2014/06/16 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android