/** * event类型消息解析, 根据不同事件类型自定义回复消息 * *@param Message $message 消息对象 * * @return Response */ private static function event($event) { $orgId = $event->ToUserName; $openId = $event->FromUserName; $app = WechatApp::getAppByOrgId($orgId); if (!isset($app)) { SysLog::error(__FILE__, __METHOD__, __LINE__, 'get wechat app failed'); return false; } $replyArr = Command::getReplyDefine($app, $event->MsgType, $event->Event); if (!$replyArr) { SysLog::error(__FILE__, __METHOD__, __LINE__, 'get event reply define array failed'); return false; } return ReplyHandler::handle($app, $openId, $replyArr); }
/** * Download image/voice/video file from wechat server. * */ public function download() { $suffix = ''; $filename = ''; $app = WechatApp::getAppByOrgId($this->message->ToUserName); if (isset($app)) { if ($this->message->MsgType == 'image') { $suffix = '.jpg'; } if ($this->message->MsgType == 'voice') { $suffix = '.amr'; } if ($this->message->MsgType == 'shortvideo' || $this->message->MsgType == 'video') { $suffix = '.mp4'; } $media = new Media($app->app_id, $app->app_secret); try { $filename = $media->download($this->message->MediaId, $this->message->MediaId . $suffix); Log::info('file' . $this->message->MediaId . $suffix . 'has been downloaded success!'); } catch (\Exception $e) { Log::error('download file' . $this->message->MediaId . $suffix . ' failed:' . $e->getMessage()); } } }