1、获取code

2、通过授权回调地址的code获取用户access_token和open_id

3、通过access_token和open_id 获取用户基本信息

class wx_user
{
public static function getUserAccessToken($code, $app_id )
{
$component_appid = \Yii::$app->params['app_id'];
$component_access_token = wx_auth::getComponentAccessToken();
$url = 'https://api.weixin.qq.com/sns/oauth2/component/access_token?appid='.$app_id.'&code='.$code.'&grant_type=authorization_code&component_appid='.$component_appid.'&component_access_token='.$component_access_token;
return wx_tools::getCurl($url); }
// 刷新account_token // 通过网页授权access_token获取用户基本信息 public static function getUserInfo($access_token, $openid)
{ $url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
return wx_tools::getCurl($url);
}
}

action请求

 /**
*用户授权
* @return \yii\web\Response
*/
public function actionAuthUser()
{
$request = \Yii::$app->request;
$app_id =\Yii::$app->params['hywx_test']['app_id'];
$redirect_uri = \Yii::$app->request->hostInfo . \Yii::$app->request->scriptUrl . '/wx-auth/user-redirect';
$component_appid = \Yii::$app->params['app_id'];
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $app_id . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=snsapi_base&state=STATE&component_appid=' . $component_appid . '#wechat_redirect';
return $this->redirect($url);
} /**
* 用户授权回调地址
*/
public function actionUserRedirect()
{
$request = \Yii::$app->request;
$code = $request->get('code');
$state = explode(',', $request->get('state'));
$league_id = $state[0];
$type = $state[1];
$app_id = $request->get('appid');
$res = json_decode(wx_user::getUserAccessToken($code, $app_id));
$userInfo = wx_user::getUserInfo($res->access_token, $res->openid);
$item = json_decode($userInfo);
}

PHP 微信三方平台代公众号发起网页授权 获取用户信息的更多相关文章

  1. 微信第三方平台代公众号发起网页授权 48001 api unauthorized 问题

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&gr ...

  2. 微信支持的Authorization code授权模式(公众号开发)(开放平台资料中心中的代公众号发起网页授权)

    链接:https://blog.csdn.net/ASZJBGD/article/details/82838356 主要流程分为两步: 1.获取code 2.通过code换取accesstoken 流 ...

  3. 微信 公众号 小程序 授权 unionid 用户信息 实验总结

    -*-*-*-*-*-*-*-*-*--*-*-*-1.小程序通过code获取用户openid的接口,如果用户曾经授权并未过期,或者用户关注过同主体的公众号,会带回unionID,但没有用户头像等信息 ...

  4. 微信公众号订阅号以及服务号通过网页授权获取用户openid方法

    微信官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 官方流程 网页授权流程分为四步: 1.引导用户 ...

  5. 微信 OAuth2 网页授权获取用户信息

    文档:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html !!! 微信跟用户没有关系类接口采用了OAUTH2 [ ...

  6. php微信网页授权获取用户信息

    配置回调域名: 1. 引导用户进入授权页面同意授权,获取code 2. 通过code换取网页授权access_token(与基础支持中的access_token不同) 3. 如果需要,开发者可以刷新网 ...

  7. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  8. 微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  9. 【微信公众号开发】【8】网页授权获取用户基本信息(OAuth 2.0)

    前言: 1,在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名. 请注意,这 ...

  10. C#微信公众号开发--网页授权(oauth2.0)获取用户基本信息二

    前言 这一篇实现snsapi_userinfo,写这篇时其实我是有疑惑的,因为我并没有调试成功,但是我反复检查程序和思路是没有问题的,因为我使用的测试公众号,群里一个伙计说他之前调试时用的也是测试公众 ...

随机推荐

  1. python 读取ini文件内容

    1 import configparser 2 cfgini = "D:\\123.ini" 3 conf = configparser.ConfigParser() 4 conf ...

  2. WPF Binding表达式

    前言: WPF BindingBinding表达式的使用,可以很方便的绑定参数和更新界面数据. 1.界面添加控件,并设置对应属性的Binding表达式,例如: <Window x:Class=& ...

  3. iOS界面横屏竖屏随意切换

    转https://www.jianshu.com/p/ea1682e80003 先讲需求: APP中所有界面支持竖屏,只有在一个界面,点击一个btn之后变成横屏,再点就是竖屏.在网上找了一些方法,发现 ...

  4. JAVA框架入门理解

    一:关于java开发的框架我们可以先从java web开发框架的变迁来给大家简单叙述一下: 1 SSH --Struts+Spring+Hibernate 2 Spring +SpringMVC + ...

  5. react 获取文件流导出功能

    记录一下: 根据后台接口返回的文件流,前端实现导出下载,使用(react+ts) 1.请求方法 (这里写法绕开拦截器) // 导出日志 export async function exportLog( ...

  6. 【PTA】1049 Counting Ones

    The task is simple: given any positive integer N, you are supposed to count the total number of 1's ...

  7. Jmeter二、开始使用

    一.最简单的性能测试脚本 testplan→ thread group→HTTP request→view results tree.jmx后缀文件,xml文件校验 二.使用过程中其他需要注意的 1. ...

  8. JAVA实现中英文混合文字友好截取功能

    package com.xxx.utils; import com.google.common.collect.Lists; import java.util.List; /** * 字符工具类 */ ...

  9. 2.javaOOP_Part2继承

  10. OSIDP-线程-04

    进程和线程 进程具有两个相互独立的特点: 1.资源所有权:进程包括存放进程映像的虚拟地址空间,具有对资源的控制权. 2.调度/执行:进程具有运行状态和优先级,是可被 OS 调度和分派的实体. 通常将分 ...