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 相关文章推荐
PHP编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
PHP数据类型的总结分析
Jun 13 PHP
AJAX的跨域访问-两种有效的解决方法介绍
Jun 22 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
实现php删除链表中重复的结点
Sep 27 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 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 操作excel文件的方法小结
2009/12/31 PHP
php跨站攻击实例分析
2014/10/28 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
限制文本框输入N个字符的js代码
2010/05/13 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
Python 操作 MySQL数据库
2020/09/18 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
节能减排倡议书
2014/04/15 职场文书
电教室标语
2014/06/20 职场文书
面试感谢信范文
2015/01/22 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
教师教育心得体会
2016/01/19 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python