-
Notifications
You must be signed in to change notification settings - Fork 43
event_system
刘广财 edited this page Apr 4, 2018
·
1 revision
微信中有很多种事件,比如收接文字事件,关注事件,扫码关注事件等,每一种事件都可以被监听,SDK 中默认包含以下 13 种事件(当然,也可以扩展自定义事件):
事件 | 类型 | 说明 |
---|---|---|
Itxiao6\Wechat\Event\Event\Text | 消息事件 | 文本消息事件 |
Itxiao6\Wechat\Event\Event\Image | 消息事件 | 图片消息事件 |
Itxiao6\Wechat\Event\Event\Voice | 消息事件 | 语音消息事件 |
Itxiao6\Wechat\Event\Event\ShortVideo | 消息事件 | 小视频消息事件 |
Itxiao6\Wechat\Event\Event\Location | 消息事件 | 地理位置消息事件 |
Itxiao6\Wechat\Event\Event\Link | 消息事件 | 链接消息事件 |
Itxiao6\Wechat\Event\Event\Subscribe | 事件推送 | 关注事件 |
Itxiao6\Wechat\Event\Event\Unsubscribe | 事件推送 | 取消关注事件 |
Itxiao6\Wechat\Event\Event\ScanSubscribe | 事件推送 | 扫描二维码关注事件 |
Itxiao6\Wechat\Event\Event\ScanSubscribed | 事件推送 | 扫描二维码时已关注,直接进入会话事件 |
Itxiao6\Wechat\Event\Event\UserLocation | 事件推送 | 上报地理位置事件 |
Itxiao6\Wechat\Event\Event\MenuClick | 事件推送 | 自定义菜单点击拉取消息事件 |
Itxiao6\Wechat\Event\Event\MenuView | 事件推送 | 自定义菜单跳转链接事件 |
要监听一个事件,只需注册事件的命名空间至监听器即可,第二个参数接收一个 callable 或 closure 类型:
use Itxiao6\Wechat\Event\EventListener;
$listener = new EventListener();
$listener->addListener('Thenbsp\\Wechat\\Event\\Event\\Text', callable $callable);
或者使用短语法:
use Itxiao6\Wechat\Event\Event\Text;
$listener->addListener(Text::class, callable $callable);
也可以链式调用:
use Itxiao6\Wechat\Event\Event\Text;
use Itxiao6\Wechat\Event\Event\Image;
use Itxiao6\Wechat\Event\Event\Voice;
$listener
->addListener(Text::class, callable $callable)
->addListener(Image::class, callable $callable)
->addListener(Voice::class, callable $callable);
use Itxiao6\Wechat\Event\EventHandler;
$handler = new EventHandler();
$handler->handle($listener);
use Symfony\Component\HttpFoundation\Request;
// 指定 Request 对象
$handler->setRequest(Request::createFromGlobals());
// 获取事件中的 Request 对象
$request = $handler->getRequest();
$content = $request->getContent();
// 将 Request 同容输出到日志
$logger->debug($content);
- 基础支持
- 网页授权
- 用户管理
- 自定义菜单
- 微信支付
- 消息管理
- 事件