/** * @param Order $order * @return TokenInterface */ protected function createPaypalToken(Order $order) { $payment = $this->createPayment($order); $payment['INVNUM'] = $payment->getNumber(); $payment['PAYMENTREQUEST_0_CURRENCYCODE'] = $payment->getCurrencyCode(); $payment['PAYMENTREQUEST_0_AMT'] = $payment->getTotalAmount(); $this->registry->getStorage(Payment::class)->update($payment); return $this->tokenFactory->createCaptureToken('paypal', $payment, 'payment_done'); }
/** * @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))); }