custom/plugins/RpayPayments/src/Components/Checkout/Subscriber/CheckoutSubscriber.php line 37

Open in your IDE?
  1. <?php
  2. /*
  3.  * Copyright (c) Ratepay GmbH
  4.  *
  5.  * For the full copyright and license information, please view the LICENSE
  6.  * file that was distributed with this source code.
  7.  */
  8. namespace Ratepay\RpayPayments\Components\Checkout\Subscriber;
  9. use Ratepay\RpayPayments\Components\Checkout\Service\ExtensionService;
  10. use Ratepay\RpayPayments\Util\MethodHelper;
  11. use Shopware\Core\Framework\Struct\ArrayStruct;
  12. use Shopware\Storefront\Page\Checkout\Confirm\CheckoutConfirmPageLoadedEvent;
  13. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  14. class CheckoutSubscriber implements EventSubscriberInterface
  15. {
  16.     protected ExtensionService $extensionService;
  17.     public function __construct(ExtensionService $extensionService)
  18.     {
  19.         $this->extensionService $extensionService;
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             CheckoutConfirmPageLoadedEvent::class => ['addRatepayTemplateData'310],
  25.         ];
  26.     }
  27.     /**
  28.      * @codeCoverageIgnore
  29.      */
  30.     public function addRatepayTemplateData(CheckoutConfirmPageLoadedEvent $event): void
  31.     {
  32.         $paymentMethod $event->getSalesChannelContext()->getPaymentMethod();
  33.         if (MethodHelper::isRatepayMethod($paymentMethod->getHandlerIdentifier()) &&
  34.             $event->getPage()->getPaymentMethods()->has($paymentMethod->getId())
  35.         ) {
  36.             $extension $event->getPage()->getExtension(ExtensionService::PAYMENT_PAGE_EXTENSION_NAME) ?? new ArrayStruct();
  37.             $paymentDataExtension $this->extensionService->buildPaymentDataExtension($event->getSalesChannelContext());
  38.             if ($paymentDataExtension) {
  39.                 $extension->assign($paymentDataExtension->getVars());
  40.             }
  41.             $event->getPage()->addExtension(ExtensionService::PAYMENT_PAGE_EXTENSION_NAME$extension);
  42.         }
  43.     }
  44. }