getResponse(); } #[TranslatedRoute(path: '/#account#/#age_verify_url:AgeVerify#/#bank_id_url:AgeVerify#', name: 'ageVerifyBankId')] public function bankIdAction(Request $request) { $url = $this->bankIdUtil->getRedirectUrl(); return new RedirectResponse($url); } #[TranslatedRoute(path: '/#account#/#age_verify_url:AgeVerify#/#package_url:AgeVerify#', name: 'ageVerifyPackage')] public function packageOrderAction(Request $request, PackageOrderView $view) { $userId = $this->userContext->getActiveId(); if ($this->ageVerifyUtil->isLegalAged($userId)) { throw new RedirectException(path('ageVerify')); } if ($request->isMethod('POST')) { if ($order = $view->submitForm()) { return new RedirectResponse(path('kupshop_content_orders_order', ['id' => $order->id, 'cf' => $order->getSecurityCode(), 'status' => 1])); } } return $view->getResponse(); } #[TranslatedRoute(path: '/#account#/#age_verify_url:AgeVerify#/#adulto_url:AgeVerify#', name: 'ageVerifyAdulto')] public function adultoOrderAction(Request $request, AdultoView $view): Response { $userId = $this->userContext->getActiveId(); if ($this->ageVerifyUtil->isLegalAged($userId)) { throw new RedirectException(path('ageVerify')); } if ($request->isMethod('POST')) { if ($errorMsg = $view->submitForm()['error'] ?? null) { addUserMessage($errorMsg); } return new RedirectResponse(path('ageVerify')); } return $view->getResponse(); } #[Route('/_bankid')] public function webhookBankIdAction(Request $request) { $code = $request->get('code'); $this->bankIdUtil->fetchData($code); return new RedirectResponse(path('ageVerify')); } #[TranslatedRoute(path: '/#age_verify_url:AgeVerify#/#veriface_url:AgeVerify#', name: 'ageVerifyVeriface')] public function verifaceAction(VerifaceUtil $verifaceUtil, SessionInterface $session, Request $request) { if ($request->get('source') == 'cart') { $session->set('redirectToCart', $request->headers->get('referer')); } return new RedirectResponse($verifaceUtil->getRedirectUrl()); } #[Route('/_veriface')] public function webhookVerifaceAction(VerifaceUtil $verifaceUtil, Request $request, SessionInterface $session) { $verifaceUtil->saveData($request->get('sessionId')); if ($redirect = $session->remove('redirectToCart')) { return new RedirectResponse($redirect); } return new RedirectResponse(path('ageVerify')); } #[Route('/_veriface_notification', methods: ['POST'])] public function verifaceNotificationAction(VerifaceUtil $verifaceUtil, Request $request) { $data = json_decode($request->getContent() ?? '', true); $sessionId = $data['sessionId']; $email = $data['referenceId']; // Řeším jen v případě, kdy je status konečný - https://docs.veriface.eu/sk/docs/verification-statuses if (in_array($data['status'], ['VERIFIED', 'REFUSED', 'VERIFIED_WARNING', 'CANCELLED', 'VERIFIED_MANUAL', 'REFUSED_MANUAL', 'EXPIRED', 'ERROR'])) { $verifaceUtil->saveData($sessionId, \User::createFromLogin($email)); } return new Response('OK'); } }