crypt->decryptBase64($id, null, true); $repo = new UploadRepo(); $file = $repo->findById($id); if ($file) { $service = new StorageService(); $location = $service->getFileUrl($file->path); $this->response->redirect($location, true); } else { $this->response->setStatusCode(404); return $this->response; } } /** * @Get("/share", name="home.share") */ public function shareAction() { $id = $this->request->getQuery('id', 'int', 0); $type = $this->request->getQuery('type', 'string', 'course'); $referer = $this->request->getQuery('referer', 'int', 0); $service = new ShareUrlService(); $location = $service->handle($id, $type, $referer); return $this->response->redirect($location, true); } /** * @Get("/qrcode", name="home.qrcode") */ public function qrcodeAction() { $text = $this->request->getQuery('text', 'string'); $size = $this->request->getQuery('size', 'int', 320); $text = urldecode($text); $qrCode = new QrCode($text); $qrCode->setSize($size); $qrCode->getContentType(); echo $qrCode->writeString(); exit; } /** * @Post("/token/refresh", name="home.refresh_token") */ public function refreshTokenAction() { $this->checkCsrfToken(); $service = new CsrfTokenService(); $token = $service->getToken(); return $this->jsonSuccess(['token' => $token]); } /** * @Get("/alipay/callback", name="home.alipay_callback") */ public function alipayCallbackAction() { return $this->response->redirect('/h5/#/pages/me/index', true); } /** * @Get("/wxpay/callback", name="home.wxpay_callback") */ public function wxpayCallbackAction() { return $this->response->redirect('/h5/#/pages/me/index', true); } /** * @Post("/alipay/notify", name="home.alipay_notify") */ public function alipayNotifyAction() { $service = new AlipayService(); $response = $service->notify(); if (!$response) exit; $response->send(); exit; } /** * @Post("/wxpay/notify", name="home.wxpay_notify") */ public function wxpayNotifyAction() { $service = new WxpayService(); $response = $service->notify(); if (!$response) exit; $response->send(); exit; } /** * @Post("/live/notify", name="home.live_notify") */ public function liveNotifyAction() { $service = new LiveNotifyService(); if ($service->handle()) { return $this->jsonSuccess(); } else { $this->response->setStatusCode(403); } } }