public function prepareSecureFlow(PayIn $payIn, SecureFlowSession $session, Response $response) { $session->setPayInId($payIn->Id); $this->storageService->set(self::SESSION_PREFIX . $session->getPayInId(), $session); if ('CREATED' == $payIn->Status && $payIn->ExecutionDetails instanceof PayInExecutionDetails) { $response->setStatusCode(302); $response->headers->set('Location', $payIn->ExecutionDetails->SecureModeRedirectURL); } return $this; }
/** * To prepare the request, call mangopay to retrieve url and token to submit the card registration form * and register registration session's data in the storage, then prepare the url of return. * * * @param UserInterface $user * @param string $cardType * @param null|CardRegistrationSession $session * * @return CardRegistrationResult */ public function prepare(UserInterface $user, CardRegistrationSession $session, $cardType = 'CB_VISA_MASTERCARD') { if (empty($user->getMangoPayId())) { throw new BadMangoEntityException('Error, the user has not a valid mango pay id'); } $apiResult = $this->getCardRegistrationData($user, $cardType); $session->setCardRegistrationId($apiResult->Id)->setUser($user); $sessionId = $session->getSessionId(); $this->storageService->set(self::SESSION_PREFIX . $sessionId, $session); $result = new CardRegistrationResult($user); $result->setAccessKeyRef($apiResult->AccessKey); $result->setData($apiResult->PreregistrationData); $result->setCardRegistrationUrl($apiResult->CardRegistrationURL); $result->setId($apiResult->Id); $result->setReturnUrl($this->router->generate($this->returnRouteName, ['registrationSessionId' => $sessionId], UrlGeneratorInterface::ABSOLUTE_URL)); return $result; }