123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Paypal\Model\Payflow\Service\Response;
- use Magento\Framework\DataObject;
- use Magento\Payment\Model\Method\Logger;
- use Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface;
- use Magento\Framework\Session\Generic;
- use Magento\Paypal\Model\Payflowpro;
- use Magento\Quote\Api\CartRepositoryInterface;
- use Magento\Paypal\Model\Payflow\Transparent;
- use Magento\Quote\Api\PaymentMethodManagementInterface;
- use Magento\Quote\Model\Quote\Payment;
- use Magento\Sales\Api\Data\OrderPaymentInterface;
- /**
- * Class Transaction
- */
- class Transaction
- {
- /**
- * @var Generic
- */
- protected $sessionTransparent;
- /**
- * @var CartRepositoryInterface
- */
- protected $quoteRepository;
- /**
- * @var Transparent
- */
- protected $transparent;
- /**
- * @var PaymentMethodManagementInterface
- */
- private $paymentManagement;
- /**
- * @var HandlerInterface
- */
- private $errorHandler;
- /**
- * @var Logger
- */
- private $logger;
- /**
- * @param Generic $sessionTransparent
- * @param CartRepositoryInterface $quoteRepository
- * @param Transparent $transparent
- * @param PaymentMethodManagementInterface $paymentManagement
- * @param HandlerInterface $errorHandler
- * @param Logger $logger
- */
- public function __construct(
- Generic $sessionTransparent,
- CartRepositoryInterface $quoteRepository,
- Transparent $transparent,
- PaymentMethodManagementInterface $paymentManagement,
- HandlerInterface $errorHandler,
- Logger $logger
- ) {
- $this->sessionTransparent = $sessionTransparent;
- $this->quoteRepository = $quoteRepository;
- $this->transparent = $transparent;
- $this->paymentManagement = $paymentManagement;
- $this->errorHandler = $errorHandler;
- $this->logger = $logger;
- }
- /**
- * Returns gateway response data object.
- *
- * @param array $gatewayTransactionResponse
- * @return DataObject
- */
- public function getResponseObject($gatewayTransactionResponse)
- {
- $response = new DataObject();
- $response = $this->transparent->mapGatewayResponse((array) $gatewayTransactionResponse, $response);
- $this->logger->debug(
- (array) $gatewayTransactionResponse,
- (array) $this->transparent->getDebugReplacePrivateDataKeys(),
- (bool) $this->transparent->getDebugFlag()
- );
- return $response;
- }
- /**
- * Saves payment information in quote.
- *
- * @param DataObject $response
- * @return void
- * @throws \InvalidArgumentException
- */
- public function savePaymentInQuote($response)
- {
- $quote = $this->quoteRepository->get($this->sessionTransparent->getQuoteId());
- $payment = $this->paymentManagement->get($quote->getId());
- if (!$payment instanceof Payment) {
- throw new \InvalidArgumentException("Variable must contain instance of \\Quote\\Payment.");
- }
- $payment->setData(OrderPaymentInterface::CC_TYPE, $response->getData(OrderPaymentInterface::CC_TYPE));
- $payment->setAdditionalInformation(Payflowpro::PNREF, $response->getData(Payflowpro::PNREF));
- $this->errorHandler->handle($payment, $response);
- $this->paymentManagement->set($quote->getId(), $payment);
- }
- }
|