TokenUiComponentProvider.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Paypal\Model\Payflow\Ui\Adminhtml;
  7. use Magento\Framework\View\Element\Template;
  8. use Magento\Vault\Api\Data\PaymentTokenInterface;
  9. use Magento\Vault\Model\Ui\TokenUiComponentInterfaceFactory;
  10. use Magento\Vault\Model\Ui\TokenUiComponentProviderInterface;
  11. /**
  12. * Class TokenProvider
  13. */
  14. class TokenUiComponentProvider implements TokenUiComponentProviderInterface
  15. {
  16. /**
  17. * @var TokenUiComponentInterfaceFactory
  18. */
  19. private $componentFactory;
  20. /**
  21. * @param TokenUiComponentInterfaceFactory $componentFactory
  22. */
  23. public function __construct(
  24. TokenUiComponentInterfaceFactory $componentFactory
  25. ) {
  26. $this->componentFactory = $componentFactory;
  27. }
  28. /**
  29. * @inheritdoc
  30. */
  31. public function getComponentForToken(PaymentTokenInterface $paymentToken)
  32. {
  33. $data = json_decode($paymentToken->getTokenDetails() ?: '{}', true);
  34. $component = $this->componentFactory->create(
  35. [
  36. 'config' => [
  37. TokenUiComponentProviderInterface::COMPONENT_DETAILS => $data,
  38. TokenUiComponentProviderInterface::COMPONENT_PUBLIC_HASH => $paymentToken->getPublicHash(),
  39. 'template' => 'Magento_Paypal::payflowpro/vault.phtml'
  40. ],
  41. 'name' => Template::class
  42. ]
  43. );
  44. return $component;
  45. }
  46. }