src/Service/PaymentSystem/Listener/TwocheckoutListener.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Service\PaymentSystem\Listener;
  3. use App\Controller\Merchant\Payment\Common\AbstractNotificationController;
  4. use App\DTO\PaymentSystem\Config\TwocheckoutPaymentSystemConfigDTO;
  5. use App\Service\App\Merchant\Payment\Contract\IGetPaymentInfoByReferenceIdService;
  6. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  7. use App\Core\Exception\NotFoundException;
  8. class TwocheckoutListener
  9. {
  10.     /**
  11.      * @var IGetPaymentInfoByReferenceIdService
  12.      */
  13.     private IGetPaymentInfoByReferenceIdService $paymentInfoByReferenceIdService;
  14.     /**
  15.      * TwocheckoutListener constructor.
  16.      * @param IGetPaymentInfoByReferenceIdService $paymentInfoByReferenceIdService
  17.      */
  18.     public function __construct(IGetPaymentInfoByReferenceIdService $paymentInfoByReferenceIdService)
  19.     {
  20.         $this->paymentInfoByReferenceIdService $paymentInfoByReferenceIdService;
  21.     }
  22.     /**
  23.      * @param ControllerEvent $event
  24.      * @throws NotFoundException
  25.      */
  26.     public function onKernelController(ControllerEvent $event)
  27.     {
  28.         $controller $event->getController();
  29.         if (is_array($controller)) {
  30.             $controller $controller[0];
  31.         }
  32.         if (!($controller instanceof AbstractNotificationController)) {
  33.             return;
  34.         }
  35.         if ($event->getRequest()->get('paymentSystem') !== TwocheckoutPaymentSystemConfigDTO::PAYMENT_SYSTEM_KEY) {
  36.             return;
  37.         }
  38.         $ref $event->getRequest()->get('merchant_order_id');
  39.         if (!$ref) {
  40.             return;
  41.         }
  42.         $payment $this->paymentInfoByReferenceIdService->perform($ref);
  43.         if ($payment) {
  44.             $event->getRequest()->attributes->set('orderId'$payment->getId());
  45.         }
  46.     }
  47. }