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); }
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); }
/** * {@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(); }