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的类树(支持无限分类)
Oct 09 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
php 魔术方法使用说明
Oct 20 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
6个超实用的PHP代码片段
Aug 10 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
PHP array_shift()用法实例分析
Jan 07 PHP
php字符串倒叙
Apr 01 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调用mysql数据 dbclass类
2011/05/07 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
php框架知识点的整理和补充
2021/03/01 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
Python中str is not callable问题详解及解决办法
2017/02/10 Python
python re模块findall()函数实例解析
2018/01/19 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
python3 线性回归验证方法
2019/07/09 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
python实现银行管理系统
2019/10/25 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
Python更新所有已安装包的操作
2020/02/13 Python
用python批量下载apk
2020/12/29 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
小学校园广播稿(3篇)
2014/09/19 职场文书
鲁迅故里导游词
2015/02/05 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
导游词之阆中古城
2019/12/23 职场文书
Python中Permission denied的解决方案
2021/04/02 Python