Easywechat对接

一、微信Oauth认证流程

  • 微信授权文档

授权码
https://open.weixin.qq.com/connect/oauth2/authorize?
appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE
#wechat_redirect

参数介绍:
appid:公众号的唯一标识 : 之前在测试平台申请的测试appid
redirect_uri: 授权后重定向回调地址:这个地址就是之前填写的域名下的具体项目的访问方法
response_type:参数就是code
scope:作用域
snsapi_base : 不弹出授权界面,直接跳转只能获取用户的openid
snsapi_userinfo:弹出授权界面,可以拿到用户的详细信息
我们填写 snsapi_userinfo
state: 不用在意系统自动带上的(微信自动生成一个字符串128字节的判断用
户的操作以及连接的有效性)
#wechat_redirect: 没有解释就是需要带上

  • 工作原理
    Easywechat对接_第1张图片

二、Easywechat

  • github地址
  • easywechat官方文档
  1. 安装发布
# Laravel >= 5.8
composer require "overtrue/laravel-wechat:~5.0"
# 发布
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
  1. 路由打印
#打印出所绑定的所有服务
Route::get('/',function(){
	return app()->getBindings();
})
  1. 配置.env配置
#easywechat配置
WECHAT_OFFICIAL_ACCOUNT_APPID=	#微信appID
WECHAT_OFFICIAL_ACCOUNT_SECRET=	#微信appsecret
WECHAT_OFFICIAL_ACCOUNT_TOKEN=	#自定义 例如:hahah
WECHAT_OFFICIAL_ACCOUNT_OAUTH_CALLBACK=	#认证成功后回调地址
  1. 使用
//添加中间件的配置在 app/Http/Kernel.php 中添加路由中间件
protected $routeMiddleware = [
    // ...
    'wechat.oauth' => \Overtrue\LaravelWeChat\Middleware\OAuthAuthenticate::class,
];
Route::get('user', function(){
      $user = session('wechat.oauth_user.default'); // 拿到授权用户资料
      dd($user);
})->middleware('wechat.oauth');

注意:

  1. easywechat的数据通过session进行存储,而laravel的中间件中只有web默认执行StartSession中间件,所以进行api开发时需要开启session中间件
    Easywechat对接_第2张图片
    开启后在路由中进行使用
    Easywechat对接_第3张图片
  2. 本地ssl判别证书太旧,导致链接报错ssl证书不正确。
    2.1 下载最新的cacert.pem
    2.2 放在【:path\to\php\extras\ssl\cacert.pem】也就是php路径下的【extras\ssl\】文件夹里面。
    2.3 打开【php.ini】文件,找到最后面的【curl.cainfo = 】修改为【curl.cainfo =“E:\xampp\php\extras\ssl\cacert.pem”】,保存即可。

你可能感兴趣的:(laravel)