Fingerprint.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Signifyd\Block;
  7. use Magento\Framework\View\Element\Template;
  8. use Magento\Framework\View\Element\Template\Context;
  9. use Magento\Signifyd\Model\Config;
  10. use Magento\Signifyd\Model\QuoteSession\QuoteSessionInterface;
  11. use Magento\Signifyd\Model\SignifydOrderSessionId;
  12. /**
  13. * Provides data for Signifyd device fingerprinting script.
  14. *
  15. * Signifyd’s device fingerprinting solution uniquely tracks and identifies devices
  16. * used to transact on your site, increasing your protection from fraud.
  17. *
  18. * @api
  19. * @see https://www.signifyd.com/docs/api/#/reference/device-fingerprint/create-a-case
  20. * @since 100.2.0
  21. */
  22. class Fingerprint extends Template
  23. {
  24. /**
  25. * @var SignifydOrderSessionId
  26. */
  27. private $signifydOrderSessionId;
  28. /**
  29. * @var Config
  30. */
  31. private $config;
  32. /**
  33. * @var QuoteSessionInterface
  34. */
  35. private $quoteSession;
  36. /**
  37. * @var string
  38. * @since 100.2.0
  39. */
  40. protected $_template = 'Magento_Signifyd::fingerprint.phtml';
  41. /**
  42. * @param Context $context
  43. * @param Config $config
  44. * @param SignifydOrderSessionId $signifydOrderSessionId
  45. * @param QuoteSessionInterface $quoteSession
  46. * @param array $data
  47. */
  48. public function __construct(
  49. Context $context,
  50. Config $config,
  51. SignifydOrderSessionId $signifydOrderSessionId,
  52. QuoteSessionInterface $quoteSession,
  53. array $data = []
  54. ) {
  55. parent::__construct($context, $data);
  56. $this->signifydOrderSessionId = $signifydOrderSessionId;
  57. $this->config = $config;
  58. $this->quoteSession = $quoteSession;
  59. }
  60. /**
  61. * Returns a unique Signifyd order session id.
  62. *
  63. * @return string
  64. * @since 100.2.0
  65. */
  66. public function getSignifydOrderSessionId()
  67. {
  68. $quoteId = $this->quoteSession->getQuote()->getId();
  69. return $this->signifydOrderSessionId->get($quoteId);
  70. }
  71. /**
  72. * Checks if module is enabled.
  73. *
  74. * @return boolean
  75. * @since 100.2.0
  76. */
  77. public function isModuleActive()
  78. {
  79. $storeId = $this->quoteSession->getQuote()->getStoreId();
  80. return $this->config->isActive($storeId);
  81. }
  82. }