PHP微信公众平台开发高级篇--网页授权接口

网页授权接口类型

  • snsapi_base
  • snsapi_userinfo

一、基础授权

test.php

<?php
/**
 * 网页授权接口
 * 步骤:
 * 1.填写授权回调页面域名,真实环境路径:开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息
 * 2.用户同意沙授权,获取code
 * 3.通过code换取网页授权access_token,与普通access_token是不同的
 * 4.刷新access_token(如果需要)
 * 5.拉取用户信息(需scope为snsapi_userinfo)
 *
 * 网页授权的两种scope的区别:
 * 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的“用户的openid”的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
 * 2.以snsapi_userinfo为scope发起的网页授权,是用来获取“用户的基本信息”的。但这种授权“需要用户手动同意”,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
 * PS:设置好网页授权的回调域名,需要关闭服务,重启
 * 测试时建议将请求域名通过草料生成二维码
 */
//获取用户的openid
//1.获取code
$appid = 'wxc7991ed87e25dc13';
$redirect_uri = 'http://wx.smallzhou.cn/userInfo.php';//获取code后的跳转地址
$scope = 'snsapi_base';
$state = 'jason';//自定义参数
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=".$scope."&state=".$state."#wechat_redirect";
//跳转
header('location:'.$url);

userInfo.php

<?php
    /**
     * Created by PhpStorm.
     * User: user
     * Date: 2018/7/17
     * Time: 17:04
     */
    //2.获取网页授权access_token
    $appid = 'wxc7991ed87e25dc13';
    $secret = "3c1be9b400aae7042afb78dbd577f206";
    $code = $_GET['code'];
    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$secret."&code=".$code."&grant_type=authorization_code";
    //拉取用户的openid
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    $outPut = curl_exec($ch);
    curl_close($ch);
    $arr = json_decode($outPut,true);
    var_dump($arr);
    /*
     access_token:11_PNpVvZCVroQw9HlvB22yma63dgPE0F1KVWgOXZwi8_uZRAdEhp-230kC34VMn3Zbg_8yzOmtqi7hvJ-If0MF5MVPvwhBpXUTjcdf3FySy78
     expires_in:7200
     refresh_token:11_pBaJpvxE6qV93a2vFJv6E2G1VWYOcb4NvLHLLscFLtMa5jGvoA6y8Z2CmFvsuLV3epEgW52rbwKp4aZuC4Gc0QXVr_ebSa6n5VyoJLPslfg
     openid:oL-zT1Hkbx6Zza5Ny4ZZJr3Ze1-U
     scope:snsapi_base
     */

二、高级授权

test.php

<?php
/**
 * 网页授权接口
 * 步骤:
 * 1.填写授权回调页面域名,真实环境路径:开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息
 * 2.用户同意沙授权,获取code
 * 3.通过code换取网页授权access_token,与普通access_token是不同的
 * 4.刷新access_token(如果需要)
 * 5.拉取用户信息(需scope为snsapi_userinfo)
 *
 * 网页授权的两种scope的区别:
 * 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的“用户的openid”的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
 * 2.以snsapi_userinfo为scope发起的网页授权,是用来获取“用户的基本信息”的。但这种授权“需要用户手动同意”,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
 * PS:设置好网页授权的回调域名,需要关闭服务,重启
 * 测试时建议将请求域名通过草料生成二维码
 */
//获取用户基本信息
//1.获取code
$appid = 'wxc7991ed87e25dc13';
$redirect_uri = 'http://wx.smallzhou.cn/userInfo.php';//获取code后的跳转地址
$scope = 'snsapi_userinfo';
$state = 'jason1';//自定义参数
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=".$scope."&state=".$state."#wechat_redirect";
//跳转
header('location:'.$url);

userInfo.php

<?php
    /**
     * Created by PhpStorm.
     * User: user
     * Date: 2018/7/17
     * Time: 17:04
     */
    //2.获取网页授权access_token
    $appid = 'wxc7991ed87e25dc13';
    $secret = "3c1be9b400aae7042afb78dbd577f206";
    $code = $_GET['code'];
    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$secret."&code=".$code."&grant_type=authorization_code";
    //3.拉取用户的openid
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    $outPut = curl_exec($ch);
    curl_close($ch);
    $arr = json_decode($outPut,true);
    /*
     access_token:11_PNpVvZCVroQw9HlvB22yma63dgPE0F1KVWgOXZwi8_uZRAdEhp-230kC34VMn3Zbg_8yzOmtqi7hvJ-If0MF5MVPvwhBpXUTjcdf3FySy78
     expires_in:7200
     refresh_token:11_pBaJpvxE6qV93a2vFJv6E2G1VWYOcb4NvLHLLscFLtMa5jGvoA6y8Z2CmFvsuLV3epEgW52rbwKp4aZuC4Gc0QXVr_ebSa6n5VyoJLPslfg
     openid:oL-zT1Hkbx6Zza5Ny4ZZJr3Ze1-U
     scope:snsapi_base
     */
    //4.获取用户基本信息
    $access_token = $arr['access_token'];
    $openid = $arr['openid'];
    $getUserInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
    $ch1 = curl_init();
    curl_setopt($ch1,CURLOPT_URL,$getUserInfoUrl);
    curl_setopt($ch1,CURLOPT_RETURNTRANSFER,1);
    $userInfo = curl_exec($ch1);
    curl_close($ch1);
    print_r($userInfo);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微信OAuth2网页授权登陆接口,微信OAuth2网页授权登陆接口,在你的网站上放上可以扫码登陆,会不会吸引更多用户去注册,现在你只需要简单的配制一下就可以轻松实现,还不快点拿走,微信扫码登陆接口开发你只要需要把配制文件中的APPid、KEY等修改为你自己中你申请的时的就可以,傻瓜式操作,无论你是技术大神还是刚入门的小白,只需修改一下配制文件,便可帮助你实现各种网站登陆。 使用方法 1. 配置网页授权域名 登录微信公众平台后台,在左侧目录底部找到“开发”-“接口权限”,点击进入并在接口列表中找到“网页授权获取用户基本信息”,点击右侧“修改”,在授权回调域名中填自己的域名,例如 www.abc.com,注意此处是域名,不是网址,所以不带http,也不带/等。 2. 修改参数配置 在左侧目录底部找到“开发”-“基本配置”,找到APPID和APPSECRET两个参数的值,其中APPSECRET的值默认是隐藏的,需要微信扫描验证才得显示。 使用Notepad++等编辑器打开,weixin.class.php文件,修改其中的APPID和APPSECRET参数,并保存。 define('APPID', "111111"); define('APPSECRET', "111111"); 3. 上传代码 将Demo代码上传到上述域名网站目录,比如上传到根目录的oauth2目录,这样,该Demo的访问路径将是 http://www.abc.com/oauth2/index.php 4. 访问体验 将上述目录在微信中打开,就可以体验微信的OAuth2.0网页授权过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JasonHome

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值