function let(ContainerInterface $container, HttpRequestVerifierInterface $httpRequestVerifier, TokenInterface $token, Request $request, CartProviderInterface $cartProvider, RegistryInterface $payum, GatewayInterface $gateway, EventDispatcherInterface $eventDispatcher, DoctrinRegistryInterface $doctrine, ObjectManager $objectManager, Session $session, FlashBagInterface $flashBag, TranslatorInterface $translator)
 {
     $session->getFlashBag()->willReturn($flashBag);
     $doctrine->getManager()->willReturn($objectManager);
     $token->getGatewayName()->willReturn('aGatewayName');
     $payum->getGateway('aGatewayName')->willReturn($gateway);
     $httpRequestVerifier->verify($request)->willReturn($token);
     $httpRequestVerifier->invalidate($token)->willReturn(null);
     $container->get('payum.security.http_request_verifier')->willReturn($httpRequestVerifier);
     $container->get('sylius.cart_provider')->willReturn($cartProvider);
     $container->get('payum')->willReturn($payum);
     $container->get('event_dispatcher')->willReturn($eventDispatcher);
     $container->get('session')->willReturn($session);
     $container->get('doctrine')->willReturn($doctrine);
     $container->has('doctrine')->willReturn(true);
     $container->get('translator')->willReturn($translator);
     $this->setName('purchase');
     $this->setContainer($container);
 }
 /**
  * {@inheritDoc}
  *
  * @param Capture $request
  */
 public function execute($request)
 {
     if (false == $this->supports($request)) {
         throw RequestNotSupportedException::createActionNotSupported($this, $request);
     }
     /** @var Cart $cart */
     $cart = $request->getModel();
     $cartStorage = $this->payum->getStorage($cart);
     $paymentStorage = $this->payum->getStorage('Acme\\PaymentBundle\\Model\\PaymentDetails');
     /** @var $payment PaymentDetails */
     $payment = $paymentStorage->create();
     $payment['PAYMENTREQUEST_0_CURRENCYCODE'] = $cart->getCurrency();
     $payment['PAYMENTREQUEST_0_AMT'] = $cart->getPrice();
     $payment['RETURNURL'] = $request->getToken()->getTargetUrl();
     $payment['CANCELURL'] = $request->getToken()->getTargetUrl();
     $paymentStorage->update($payment);
     $cart->setDetails($payment);
     $cartStorage->update($cart);
     $request->setModel($payment);
     $this->gateway->execute($request);
 }
Exemple #3
0
 function let(ContainerInterface $container, HttpRequestVerifierInterface $httpRequestVerifier, TokenInterface $token, Request $request, RequestStack $requestStack, CartProviderInterface $cartProvider, RegistryInterface $payum, PaymentInterface $payment, EventDispatcherInterface $eventDispatcher, DoctrinRegistryInterface $doctrine, ObjectManager $objectManager, Session $session, FlashBagInterface $flashBag, TranslatorInterface $translator, FactoryInterface $factory)
 {
     $requestStack->getCurrentRequest()->willReturn($request);
     $session->getFlashBag()->willReturn($flashBag);
     $doctrine->getManager()->willReturn($objectManager);
     $token->getPaymentName()->willReturn('aPaymentName');
     $payum->getPayment('aPaymentName')->willReturn($payment);
     $httpRequestVerifier->verify($request)->willReturn($token);
     $httpRequestVerifier->invalidate($token)->willReturn(null);
     $container->get('payum.security.http_request_verifier')->willReturn($httpRequestVerifier);
     $container->get('request')->willReturn($request);
     $container->get('request_stack')->willReturn($requestStack);
     $container->get('sylius.cart_provider')->willReturn($cartProvider);
     $container->get('payum')->willReturn($payum);
     $container->get('event_dispatcher')->willReturn($eventDispatcher);
     $container->get('session')->willReturn($session);
     $container->get('doctrine')->willReturn($doctrine);
     $container->has('doctrine')->willReturn(true);
     $container->get('translator')->willReturn($translator);
     $container->get('sm.factory')->willReturn($factory);
     $this->setName('purchase');
     $this->setContainer($container);
 }
 /**
  * @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);
 }
Exemple #5
0
 /**
  * {@inheritDoc}
  */
 public function getStorages()
 {
     return $this->registry->getStorages();
 }
 /**
  * @param Request $request
  *
  * @return Payment
  */
 protected function findRequestedPayment(Request $request)
 {
     // TODO: add validation that id is not empty and model actually exists.
     $storage = $this->payum->getStorage(Payment::class);
     return $storage->find($request->attributes->get('id'));
 }
 /**
  * @param Request $request
  *
  * @return Payment
  */
 protected function findRequestedPayment(Request $request)
 {
     $token = $this->httpRequestVerifier->verify($request);
     $storage = $this->registry->getStorage('Payum\\Server\\Model\\Payment');
     return $storage->find($token->getDetails());
 }
 /**
  * @return GatewayInterface[]
  */
 private function getRegisteredGateways()
 {
     return $this->payumRegistry->getGateways();
 }