由于在easywechat中没有提及在thinkphp中的使用,后来我在http://www.thinkphp.cn/topic/45416.html中找到了有人已经封装了一下,我把自己使用的过程写下来与大家共勉

在thinkphp中安装easywechat

1.使用composer下载

使用命令行进入thinkphp根目录

然后运行下面的命令:

  1. composer require hooklife/thinkphp5-wechat

然后发布配置文件到项目根目录

  1. php think wechat:config

然后你会看到application目录下多了一个extra文件夹,里面有一个wechat.php

这样就算是引入成功了

然后

填写配置文件需要填写的项

示例:

'debug' => true,
/**
* 账号基本信息,请从微信公众平台/开放平台获取
*/
'app_id' => '......', // AppID
'secret' => '......', // AppSecret
'token' => '......', // Token
'aes_key' => '',

'oauth' => [
'scopes' => ['snsapi_userinfo'],
'callback' => '回调地址',
],

然后,在原代码基础上创建一个控制器(与微信相关):Wechat1.php,

在里面定义一个变量app

$options = Config::get('wechat');
$app = new Application($options);

这样就能够使用app变量了,其他的用法参照文档https://www.easywechat.com/docs即可

配置和原来类似,我是在Wechat1.php中定义一个serve方法

public function serve(){
$server = self::$app->server;
$server->setMessageHandler(function ($message) {
  return '你好';
});
$server->serve()->send();
}

在微信公众号后台验证token的url写能够访问到这个serve方法的链接即可验证成功

下面重点说明我使用easywechat进行网页授权过程

在需要授权的控制器Personal.php中的写了

static $app;
public function _initialize()
{
if (empty(session('id'))){
self::$app = Wechat1::return_app();
$oauth = self::$app->oauth;
session('target_url',$_SERVER['PATH_INFO']);
if (empty(session('wechat_user'))){
$oauth->redirect()->send();
}else{
$user = session('wechat_user');
$open_id = $user['original']['openid'];

//查询数据库中用户的账号的openid中是否有值,有值说明用户的微信与账号绑定
$student_no = self::check_login($open_id);
if ($student_no!=0){
session('id',$student_no);
$this->redirect(session('target_url'));
}else{
$this->redirect('index/Index/login');
}

}
}
}

然后在Wechat1.php中写了一个授权回调的方法

public function oauth(){
$oauth = self::$app->oauth;
$user = $oauth->user();
session('wechat_user',$user->toArray());
$targetUrl = session('target_url');
$this->redirect($targetUrl);
}

注:上面的配置文件中的回调函数就写能够找到oauth方法的地址即可

这样就能够完成微信网页授权,授权过的微信的用户信息存在session中,之后用到该用户信息的时候,只需要从session中取即可

easywechat (在thinkphp5中使用easywechat完成微信网页认证)的更多相关文章

  1. ABP中module-zero快速集成微信用户认证

     https://personball.com/abp/2019/01/01/introduce-abp-module-zero-external-authenticate 

  2. Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息

    转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...

  3. 在后台业务管理系统中使用Autofac实现微信接口的处理

    在后台业务管理系统中使用Autofac实现微信接口的处理,我们只需要把相关使用到的DLL放到BIN目录里面即可,通过IOC控制反转方式实现对接口的调用.在实现在业务系统里面,我们本身程序可能已经依赖了 ...

  4. thinkphp5中使用phpmailer实现发送邮件功能(转载)

    一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...

  5. thinkphp5中使用PHPExcel(转载)

    thinkphp5中可以使用composer来获取第三方类库,使用起来特别方便,例如:可是使用composer下载PHPMailer,think-captcha(验证码)等等…… 接下来说一下怎么使用 ...

  6. thinkphp5中如何使用 usort

    thinkphp5中如何使用 usort 一.总结 一句话总结:其实比较函数加上命名空间就好啦,不然找不到 比较函数加命名空间 数组做usort的第二个参数 usort($question_list, ...

  7. thinkphp5中的配置如何使用

    thinkphp5中的配置如何使用 一.总结 一句话总结:先加载配置,然后读取配置即可 加载配置 读取配置 Config::load(APP_PATH.'fry_config.php');\\加载配置 ...

  8. thinkphp5中的一些关于命名空间的tisp

    1.thinkphp5中公共函数文件common中,不需要use,也可以直接使用vendor中的类文件. 2.在类前面的反斜杠作用是,直接使用最外层的命名空间,有时不想use某个X类,却想使用X类时, ...

  9. 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的

    微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的   最近公司在开发一个小程序红包系统,客户抢到红包需要提现.也就是通过小程序来给用户发红包. 小程序如何来发红包呢?于是我想 ...

随机推荐

  1. Ubuntu 18.04 安装Virtual Box or VMWare workstation Pro 14

    Linux相关的知识:https://www.cnblogs.com/dunitian/p/4822808.html#linux Virtual Box:sudo apt-get install vi ...

  2. Office Web Apps 2013 修改Excel在线查看文件大小限制

    前言 最近搭建了一个OWA 2013环境,帮客户实现在线查看Excel文档,不过,使用过程中出现了错误,文件大小超过10MB就无法预览了,查了好久,发现需要使用PowerShell命令进行修改. 1. ...

  3. socket.io的websocket示例

    写了一个简单的demo,直接上代码吧.用的时候注意一下版本号,可能 socket.io 的 API 有修改~ 效果图 index.html <!DOCTYPE <!DOCTYPE html ...

  4. Thymeleaf-语法整理

    Thymeleaf其他案例看其他网站 http://www.cnblogs.com/hjwublog/p/5051732.html http://blog.csdn.net/u012706811/ar ...

  5. Glide终于解决了同时绑定多个webp格式图片的问题

    前端时间,要给项目换个图片加载的库,使用Glide 3.7版本进行测试, 发现在快速滑动列表(每个item都会加载一个app的图标,采用webp格式,即同时加载多个webp格式)的时候,一屏至少有2- ...

  6. centos 环境搭建jenkins服务

    1.下载jenkins war包 https://jenkins.io/download/ 选择Generic Java package (.war)下载2.下载apache tomcat 8 htt ...

  7. blender split mesh

    https://www.youtube.com/watch?v=yFpxQxEWNc4

  8. [druid]大数据挑战——如何使用Druid实现数据聚合

    -- 知道你为什么惧组件很多的一些开源软件? 因为缺乏阅读能力. 最近我接手了druid+kafka+elk一套等日志系统. 但是我对druid很陌生, 周旋了几天, 官网文档快速开始照着做了下. 看 ...

  9. java 查看SOAP请求报文

    log.info("ESB 请求URL = " + cachedEndpoint.toString());//打印SOAP请求报文 add by LinJC on 20170120 ...

  10. 6. 从Encoder-Decoder(Seq2Seq)理解Attention的本质

    1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...