thinkphp使用easywechat完成微信网页认证

知识技术 2022-05-04 10:39 979
转载请务必注明: 来源:《建站管家》https://www.df81.com/news/354.html

thinkphp中安装easywechat

1.使用composer下载

使用命令行进入thinkphp根目录

然后运行下面的命令:

composer require hooklife/thinkphp5-wechat


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

php think wechat:config


然后你会看到application目录下多了一个extra文件夹,里面有一个wechat.php,如果报错了,请参考 https://www.ailoli.org/archives/72/,这样就算是引入成功了

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

示例:

'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::returnapp();oauth = self::app−>oauth;session(′targeturl′,_SERVER['PATH_INFO']);
if (empty(session('wechat_user'))){
$oauth->redirect()->send();
}else{
user=session(′wechatuser′);open_id = $user['original']['openid'];

//查询数据库中用户的账号的openid中是否有值,有值说明用户的微信与账号绑定
studentno=self::checklogin(open_id);
if ($student_no!=0){
session('id',studentno);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中取即可


点赞 (0)

收藏 (0)

本站部分信息来源网络,如有侵权,请联系QQ:1062129401删除。

上一篇: 《建站管家》二次开发文档

下一篇: Thinkphp中数据按分类嵌套循环实现方法

请先登录后,再发表评论 ~ ~
发表评论
发表评论
发表帖子
广告位招租( ¥5 / 天 )
点击咨询
相关帖子

如果要判断文件是否存在,用函数 is_file(),如果要判断目录是否存在,用函数 is_dir()
用宝塔安装TP程序后,网站前台可以访问,后台无法访问,不是程序问题,而是web服务器环境配置问题(PHP配置),出现这种问题,一般是windows主机安装宝塔造成的,linux安装宝塔不会出现此错误
广告位招租( ¥3 / 天 )
点击咨询
广告位招租( ¥2 / 天 )
点击咨询
广告位招租( ¥1 / 天 )
点击咨询
最新帖子

小朋友,你爸爸是谁啊?这很单纯的,就像我们碰到别人会问:你吃过饭了吗?类似;许多人初次相识,经常会问:你是做什么的啊?你做什么,好像决定你收入的高低,你,资产的范围
1、升级框架到ThinkPHP8.0.3【要求PHP8.1+环境,推荐PHP8.1】 2、启用/禁用调试模式等小细节改进
后台点击生成站点地图 一直转圈圈没有反应,
在线客服