最近在重构我们平台得前端页面以及逻辑,再此记录一下微信网页版授权获取用户资料得过程

  1. 第一步,安装
composer require "overtrue/laravel-wechat:~3.0"  //overtrue/laravel-wechat:~5.0适应于高版本laravel
  1. 第二步,在config/app.php中添加两行代码
providers下添加Overtrue\LaravelWeChat\ServiceProvider::class,aliases下添加'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class,
  1. 创建配置文件
php artisan vendor:publish

创建成功后进入config/wechat.php下配置公众号信息。如图:

可以在.env里去配置公众号信息

  1. 项目中使用,上代码
use EasyWeChat\Factory;
//1
public function index(Request $request){//通过路由进入首先判断session是否有值if(empty(session('userInfo'))){//没有值去授权获取资料$this->getUserInfo();}else{//有值就从session中获取值,进入页面$userinfo = session('userInfo');return view('index.HomeIndex',['data'=>$userinfo]);}     }
//3    获取codepublic static function getCode(){//获取公众号配置信息$config = config('wechat.official_account.default');$http = urlencode('http://xxxx.com/api/getUserInfo')//回调地址,处理获取微信用户信息$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$config['app_id'].'&redirect_uri='. $http.'&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect';//snsapi_userinfo:弹出授权页面,可通过openid拿到昵称、性别、所在地   snsapi_user:不弹出授权页面,直接跳转,只能获取用户openidheader('location:'. $url);}// 4 通过code获取用户信息public static function getCodeUser(){//这一步可以获取到微信用户信息$config = config('wechat.official_account.default');$app = Factory::officialAccount($config);$oauth = $app->oauth;$response = $oauth->user(); return $response;}//2 执行获取资料public function getUserInfo(){//这里是回调地址,如果有code。地址是:http://xxx.com/h5/?code=011NRLFa1aRx3A0Mx9Ia1LSDn13NRLFs&state=STATEif(empty($_GET['code'])){//code为空就去获取code,这一步会授权,在下面的方法成功执行后会再次回到此方法,所以要先判断code是否为空self::getCode();}else{//已经授权,回调会走此方法,下面方法会获取用户资料$userInfo = self::getCodeUser();$data = User::getUser($userInfo);//执行添加用户信息并返回return redirect("/api/Home-index");}}// 存在就修改,不存在添加(用户)public static function getUser($data){//获取本人信息,有就更新,没有就添加$info = User::where('openid',$data['id'])->first();if(empty($info)){//添加$userInfo['openid'] =$data['id'];$userInfo['avatar'] =$data['avatar'];$userInfo['name'] =$data['name'];User::create($userInfo);}else{//修改User::where('openid',$data['id'])->update(['avatar'=>$data['avatar'],'name'=>$data['name']]);}session(['userInfo'=>$info]);//存储到sessionreturn $data;}

因前端重构工程大,所以暂时搁置,代码没有测试完整,欢迎讨论。

laravel-admin微信网页授权获取用户信息过程相关推荐

  1. Spring Boot 微信-网页授权获取用户信息

    微信-验证服务器有效性 微信-网页授权获取用户信息 网页授权获取用户信息步骤 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需sc ...

  2. PHP 微信网页授权获取用户信息

    最近用到过微信用户授权获取用户信息的功能,在这里记录一下. 因为用户授权要用到认证过的服务号才有权限,而线上正在使用公众号,而开发就有些不方便了,这里可以申请一个微信公众测试号. 1.申请一个微信公众 ...

  3. 微信网页授权获取用户信息实战代码

    微信授权的整体思路: 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信 ...

  4. 微信用户绑定java实例_OAuth2.0微信网页授权获取用户信息实现全过程(JAVA版本)...

    一.前言 为什么需要OAuth2.0网页授权接口,主要是为了获取微信用户的基本信息(比如用户绑定,用户统计等等) 特别注意:只有认证的服务号有此接口权限 那么订阅号如何实现这个功能呢?可以通过另一个服 ...

  5. 连小白都能看懂的微信开发之 微信自定义菜单 + 获取网页授权 + 获取用户信息

    微信自定义菜单+获取网页授权+获取用户信息 今天项目需要一个需求,就是添加一个菜单接口,并且还可以获取用于的信息,从而根据用户的信息去做一些业务的查询.通过百度和自己查看文档大致的解决办法如下: 注意 ...

  6. 微信网页授权获取用户基本信息 --- 20/03/16

    ThinkPHP5实现微信网页授权获取用户基本信息 本次使用的appID与appSecret为公众号 一:准备工作 登录微信公众平台,左侧菜单下拉至开发选中基本配置 启用开发者密码(AppSecret ...

  7. PHP开发之-微信网页授权获取用户基本信息

    如何通过网页授权获取用户基本信息(国家,省,市,昵称)相关信息 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用户信息 ...

  8. PHP通过微信网页授权获取用户基本信息

    微信网页授权获取用户基本信息: <?php$appid = '你的appid'; $secret = '你的secret';if (isset($_GET['code'])) {$code = ...

  9. 支付宝 网页授权 获取用户信息

    ****** 支付宝 网页授权 获取用户信息(昵称,头像等)****** 最近有个项目 需要获取到支付宝的头像和昵称作为互动数据,作为php新人,对于看文档来说 很是痛苦,网上也没有很多关于支付宝网页 ...

最新文章

  1. 机器人组团到城市打工,第一站果然是赛博朋克城
  2. 零基础python必背代码-编程零基础应当如何开始学习 Python?
  3. 有关可变形部件模型(Deformable Part Model)的一些说明
  4. android notification 的总结分析
  5. c语输入单引号_C语言的printf不能用单引号?
  6. ASP.NET MVC V2 Preview 1 发布 期望VS有更好的表现
  7. Android的引用jar包
  8. 谁“玩死了”共享单车?
  9. mysql扩展文件_MySQL中的空间扩展
  10. 史上最细的FIFO最小深度计算,(大多数笔试题中都会涉及)
  11. 用户画像案例一:汽车精准营销
  12. Windwos Server 2012 R2 安装LLDP协议驱动程序
  13. 网口压线顺序_网线怎么接头 网线水晶头的接法和排序
  14. 救命稻草VirtualBox,失之交臂VMware—— 2者的guest OS对 恒通笔记本并口卡的支持
  15. 企业微信url及生成授权链接
  16. 如何在html中加入注释,HTML如何加脚注(注释)?
  17. Visual Studio 2017项目进行打包并附加.net框架打包,菜鸟级安装教程
  18. pycrypto 和 lua-resty-rsa 进行跨语言的RSA加密解密.md
  19. VMware Workstation 全屏的设置方法
  20. 平仓_敞口_外汇结售汇_小记

热门文章

  1. java小数转换成分数_如何将小数转换为分数?
  2. 编译原理课后习题答案清华大学出版社第二版
  3. Maya的一些实用插件——记录分享篇
  4. SparkCognition——11人工智能领域的思想领袖
  5. webgl图形平移、缩放、旋转
  6. kugou音乐api
  7. 计算机专业需要单核还是多核,CPU主频和核数哪个重要?买CPU是选多核还是高主频?...
  8. 【手把手带你刷好题】—— 48.二叉树的层序遍历(BFS)
  9. 【游戏开发实战】使用Unity制作像天天酷跑一样的跑酷游戏——第六篇:金币创建与吃金币
  10. iOS图层配合核心动画详解