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 相关文章推荐
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
php中转义mysql语句的实现代码
Jun 24 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
php获取系统变量方法小结
May 29 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 PHP
Cookie跨域问题解决方案代码示例
Nov 24 PHP
Yii 实现数据加密和解密
Mar 09 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python 支付整合开发包的实现
2019/01/23 Python
python3转换code128条形码的方法
2019/04/17 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
Python文件操作方法详解
2020/02/09 Python
Python如何根据时间序列数据作图
2020/05/12 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
python中实现栈的三种方法
2020/12/19 Python
python requests库的使用
2021/01/06 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
店长岗位职责
2013/11/21 职场文书
夜不归宿检讨书
2014/02/25 职场文书
商业房地产广告语
2014/03/13 职场文书
给公司的建议书范文
2014/05/13 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
服务标语口号
2014/07/01 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
python开发人人对战的五子棋小游戏
2022/05/02 Python
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis