Skip to content
easywechat for thinkphp support
Branch: master
Clone or download
Latest commit ef37f42 Feb 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src update helper Feb 12, 2019
.gitignore add some May 23, 2018
README.md update config Feb 12, 2019
composer.json add auto config Feb 12, 2019

README.md

thinkphp-wechat

FOSSA Status

微信SDK For ThinkPHP 5.1+ 基于overtrue/wechat

框架要求

ThinkPHP5.1+(中间件要求支持ThinkPHP5.1.6+)

安装

composer require naixiaoxin/think-wechat 

配置

  1. 修改配置文件 修改项目根目录下config/wechat.php中对应的参数

  2. 每个模块基本都支持多账号,默认为 default。

使用

接受普通消息

新建一个Controller,我这边用的是Note

<?php

namespace app\wechat\controller;


use think\Controller;

class Note extends Controller
{

    public function index()
    {
        //    先初始化微信
        $app = app('wechat.official_account');
        $app->server->push(function($message){
            return 'hello,world';
        });
        $app->server->serve()->send();
    }
}

获得SDK实例

使用facade

use Naixiaoxin\ThinkWechat\Facade;

$officialAccount = Facade::officialAccount();  // 公众号
$work = Facade::work(); // 企业微信
$payment = Facade::payment(); // 微信支付
$openPlatform = Facade::openPlatform(); // 开放平台
$miniProgram = Facade::miniProgram(); // 小程序  

以上均支持传入自定义账号:例如

$officialAccount = Facade::officialAccount('test'); // 公众号

以上均支持传入自定义账号+配置(注:这里的config和配置文件中账号的格式相同):例如

$officialAccount = Facade::officialAccount('',$config); // 公众号

Oauth登录中间件(ThinkPHP5.1.6+)

使用中间件情况下,config的oauth.callback可以随便写~,反正是直接获取了当前URL

\think\facade\Route::rule('user','usere')->middleware(\Naixiaoxin\ThinkWechat\Middleware\OauthMiddleware::class);

上面的路由定义了 /user 是需要微信授权的,那么在这条路由的回调 或 控制器对应的方法里, 你就可以从 session('wechat.oauth_user.default') 拿到已经授权的用户信息了。

关于ThinkPHP5.1的中间件使用方法不在叙述,详情可以查看官方文档

中间件参数说明

由于ThinkPHP中间件只支持一个参数,所以以:做分割

支持传入account账号别名以及scope类型

若不传入account,会使用default账号

若不传入scope,会使用配置文件中的oauth.scope

支持一下两种方式

default:snsapi_base
snsapi_base

HOOK

你可以监听相应的事件,并对事件发生后执行相应的操作。

  • OAuth授权 wechat_oauth
// 该事件有以下属性
$params['user']; // 同 session('wechat.oauth_user.default') 一样
$params['is_new']; // 是不是新的会话(第一次创建 session 时为 true)

更多 SDK 的具体使用请参考:https://easywechat.com

参考项目

License

MIT

FOSSA Status

You can’t perform that action at this time.