php版微信公众平台之微信网页登陆授权示例

5年以前  |  阅读数:1086 次  |  编程语言:PHP 

本文实例讲述了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.'〈=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编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例