KountPaymentDataBuilder.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Gateway\Request;
  7. use Magento\Braintree\Gateway\Config\Config;
  8. use Magento\Braintree\Gateway\SubjectReader;
  9. use Magento\Braintree\Observer\DataAssignObserver;
  10. use Magento\Payment\Gateway\Request\BuilderInterface;
  11. /**
  12. * Class KountPaymentDataBuilder
  13. */
  14. class KountPaymentDataBuilder implements BuilderInterface
  15. {
  16. /**
  17. * Additional data for Advanced Fraud Tools
  18. */
  19. const DEVICE_DATA = 'deviceData';
  20. /**
  21. * @var Config
  22. */
  23. private $config;
  24. /**
  25. * @var SubjectReader
  26. */
  27. private $subjectReader;
  28. /**
  29. * Constructor
  30. *
  31. * @param Config $config
  32. * @param SubjectReader $subjectReader
  33. */
  34. public function __construct(Config $config, SubjectReader $subjectReader)
  35. {
  36. $this->config = $config;
  37. $this->subjectReader = $subjectReader;
  38. }
  39. /**
  40. * @inheritdoc
  41. */
  42. public function build(array $buildSubject)
  43. {
  44. $result = [];
  45. $paymentDO = $this->subjectReader->readPayment($buildSubject);
  46. $order = $paymentDO->getOrder();
  47. if (!$this->config->hasFraudProtection($order->getStoreId())) {
  48. return $result;
  49. }
  50. $payment = $paymentDO->getPayment();
  51. $data = $payment->getAdditionalInformation();
  52. if (isset($data[DataAssignObserver::DEVICE_DATA])) {
  53. $result[self::DEVICE_DATA] = $data[DataAssignObserver::DEVICE_DATA];
  54. }
  55. return $result;
  56. }
  57. }