public function createAction($content) { $form = $this->formFactory->create('payum_gateway_config', null, ['data_class' => GatewayConfig::class, 'csrf_protection' => false]); $form->submit($content); if ($form->isValid()) { /** @var GatewayConfigInterface $gatewayConfig */ $gatewayConfig = $form->getData(); $this->gatewayConfigStorage->update($gatewayConfig); $getUrl = $this->urlGenerator->generate('gateway_get', array('name' => $gatewayConfig->getGatewayName()), $absolute = true); return new JsonResponse(array('gateway' => $this->gatewayConfigToJsonConverter->convert($gatewayConfig)), 201, array('Location' => $getUrl)); } return new JsonResponse($this->formToJsonConverter->convertInvalid($form), 400); }
/** * @param Request $request * * @return JsonResponse */ public function createAction($content, Request $request) { $this->forward400Unless('json' == $request->getContentType() || 'form' == $request->getContentType()); $rawToken = ArrayObject::ensureArrayObject($content); $form = $this->formFactory->create(CreateTokenType::class); $form->submit((array) $rawToken); if (false == $form->isValid()) { return new JsonResponse($this->formToJsonConverter->convertInvalid($form), 400); } $data = $form->getData(); /** @var Payment $payment */ $this->forward400Unless($payment = $this->payum->getStorage(Payment::class)->find($data['paymentId'])); if ($data['type'] == 'capture') { $token = $this->payum->getTokenFactory()->createCaptureToken('', $payment, $data['afterUrl'], ['payum_token' => null, 'paymentId' => $payment->getId()]); } else { if ($data['type'] == 'authorize') { $token = $this->payum->getTokenFactory()->createAuthorizeToken('', $payment, $data['afterUrl'], ['payum_token' => null, 'paymentId' => $payment->getId()]); } else { $this->forward400(sprintf('The token type %s is not supported', $data['type'])); } } return new JsonResponse(['token' => $this->tokenToJsonConverter->convert($token)], 201); }
/** * @param Request $request * * @return JsonResponse */ public function updateAction($content, Request $request) { $this->forward400Unless('json' == $request->getContentType()); $this->forward404Unless($payment = $this->findRequestedPayment($request)); $rawPayment = ArrayObject::ensureArrayObject($content); $form = $this->formFactory->create(UpdatePaymentType::class, $payment); $form->submit((array) $rawPayment); if (false == $form->isValid()) { return new JsonResponse($this->formToJsonConverter->convertInvalid($form), 400); } /** @var Payment $payment */ $payment = $form->getData(); $storage = $this->payum->getStorage($payment); $storage->update($payment); return new JsonResponse(array('payment' => $this->paymentToJsonConverter->convert($payment))); }
/** * @param Request $request * * @return JsonResponse */ public function updateAction($content, Request $request) { $payment = $this->findRequestedPayment($request); $rawPayment = ArrayObject::ensureArrayObject($content); $form = $this->formFactory->create('update_payment', $payment); $form->submit((array) $rawPayment); if (false == $form->isValid()) { return new JsonResponse($this->formToJsonConverter->convertInvalid($form), 400); } /** @var Payment $payment */ $payment = $form->getData(); $payment->setAfterUrl($payment->getAfterUrl() ?: $request->getSchemeAndHttpHost()); $payment->setDetails([]); $storage = $this->registry->getStorage($payment); $storage->update($payment); $token = $this->tokenFactory->createAuthorizeToken($payment->getGatewayName(), $payment, $payment->getAfterUrl()); $payment->addLink('authorize', $token->getTargetUrl()); $token = $this->tokenFactory->createCaptureToken($payment->getGatewayName(), $payment, $payment->getAfterUrl()); $payment->addLink('capture', $token->getTargetUrl()); $token = $this->tokenFactory->createNotifyToken($payment->getGatewayName(), $payment); $payment->addLink('notify', $token->getTargetUrl()); $storage->update($payment); return new JsonResponse(array('payment' => $this->paymentToJsonConverter->convert($payment))); }