| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- <?php
 
- /**
 
-  * This file is part of the Klarna Order Management module
 
-  *
 
-  * (c) Klarna Bank AB (publ)
 
-  *
 
-  * For the full copyright and license information, please view the NOTICE
 
-  * and LICENSE files that were distributed with this source code.
 
-  */
 
- namespace Klarna\Ordermanagement\Gateway\Command;
 
- use Magento\Payment\Gateway\Command;
 
- /**
 
-  * Class FetchTransactionInfo
 
-  *
 
-  * @package Klarna\Ordermanagement\Gateway\Command
 
-  */
 
- class FetchTransactionInfo extends AbstractCommand
 
- {
 
-     const PENDING = 0;
 
-     const ACCEPT  = 1;
 
-     const DENY    = -1;
 
-     /**
 
-      * FetchTransactionInfo command
 
-      *
 
-      * @param array $commandSubject
 
-      *
 
-      * @return null|Command\ResultInterface
 
-      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
 
-      */
 
-     public function execute(array $commandSubject)
 
-     {
 
-         /** @var \Magento\Payment\Model\InfoInterface $payment */
 
-         $payment = $commandSubject['payment']->getPayment();
 
-         $order = $payment->getOrder();
 
-         $store = $order->getStore();
 
-         if ($this->helper->getVersionConfig($store)->isPaymentReview()) {
 
-             $klarnaOrder = $this->klarnaOrderRepository->getByOrder($order);
 
-             $transactionId = $klarnaOrder->getReservationId();
 
-             $orderStatus = $this->getOmApi($order)->getFraudStatus($transactionId);
 
-             if ($orderStatus === self::ACCEPT) {
 
-                 $payment->setIsTransactionApproved(true);
 
-             } elseif ($orderStatus === self::DENY) {
 
-                 $payment->setIsTransactionDenied(true);
 
-                 $payment->getAuthorizationTransaction()->closeAuthorization();
 
-             }
 
-         }
 
-         return null;
 
-     }
 
- }
 
 
  |