예제 #1
0
 /**
  * @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');
 }
예제 #2
0
 /**
  * @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)));
 }