public static function handle()
{
$api = self::getApi();
$url = (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//验证token
if (!$api->checkSignature()) {
Log::error('signature error. url:' . $url);
return 'signature error';
}
//公众号接入(微信平台修改服务器配置)
if (isset($_GET['echostr'])) {
Log::debug('echostr. url:' . $url);
self::getDispatcher()->dispatch('echostr', new WechatEvent($api));
return $_GET['echostr'];
}
$message = $api->getMessage();
//事件名称与Message类中的常量对应
$eventName = $message->MsgType;
if ($message->MsgType === 'event') {
$eventName = $eventName . '.' . $message->Event;
}
//派发事件
Log::debug('dispatch event:' . $eventName);
$event = self::getDispatcher()->dispatch($eventName, new WechatEvent($api));
$reply = $event->getResponse();
return (string) $api->buildReply($reply);
}
$event->stopPropagation(); }, 1); */ Kernel::register(Receive::TYPE_EVENT_SUBSCRIBE, function (WechatEvent $event) { $event->setResponse('你关注或是不关注,我都在这里,不悲不喜~~'); $event->stopPropagation(); }); Kernel::register(Receive::TYPE_EVENT_UNSUBSCRIBE, function (WechatEvent $event) { $openid = $event->getMessage()->FromUserName; Log::debug($openid . '取消了关注'); }); Kernel::register(Receive::TYPE_SHORT_VIDEO, function (WechatEvent $event) { $event->setResponse('收到小视频'); $event->stopPropagation(); }); Kernel::register(Receive::TYPE_VIDEO, function (WechatEvent $event) { $event->setResponse('收到视频'); $event->stopPropagation(); }); Kernel::register(Receive::TYPE_EVENT_CLICK, function (WechatEvent $event) { $event->setResponse('点菜单' . $event->getMessage()->EventKey); $event->stopPropagation(); }); Kernel::register(Receive::TYPE_EVENT_SCAN, function (WechatEvent $event) { Log::debug('扫码', (array) $event->getMessage()); $event->setResponse('扫码'); $event->stopPropagation(); }); //处理微信服务器的请求 $response = Kernel::handle(); echo $response;