Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
OTPRequest.php
Go to the documentation of this file.
1 <?php
7 
13 use Psr\Log\LoggerInterface;
14 
24 {
30  private $analyticsToken;
31 
35  private $httpClient;
36 
40  private $logger;
41 
45  private $config;
46 
50  private $responseResolver;
51 
58  private $otpUrlConfigPath = 'analytics/url/otp';
59 
67  public function __construct(
68  AnalyticsToken $analyticsToken,
69  Http\ClientInterface $httpClient,
70  ScopeConfigInterface $config,
71  ResponseResolver $responseResolver,
72  LoggerInterface $logger
73  ) {
74  $this->analyticsToken = $analyticsToken;
75  $this->httpClient = $httpClient;
76  $this->config = $config;
77  $this->responseResolver = $responseResolver;
78  $this->logger = $logger;
79  }
80 
88  public function call()
89  {
90  $result = false;
91 
92  if ($this->analyticsToken->isTokenExist()) {
93  $response = $this->httpClient->request(
94  ZendClient::POST,
95  $this->config->getValue($this->otpUrlConfigPath),
96  [
97  "access-token" => $this->analyticsToken->getToken(),
98  "url" => $this->config->getValue(Store::XML_PATH_SECURE_BASE_URL),
99  ]
100  );
101 
102  $result = $this->responseResolver->getResult($response);
103  if (!$result) {
104  $this->logger->warning(
105  sprintf(
106  'Obtaining of an OTP from the MBI service has been failed: %s. Content-Type: %s',
107  !empty($response->getBody()) ? $response->getBody() : 'Response body is empty',
108  $response->getHeader('Content-Type')
109  )
110  );
111  }
112  }
113 
114  return $result;
115  }
116 }
$response
Definition: 404.php:11
$config
Definition: fraud_order.php:17
$logger
__construct(AnalyticsToken $analyticsToken, Http\ClientInterface $httpClient, ScopeConfigInterface $config, ResponseResolver $responseResolver, LoggerInterface $logger)
Definition: OTPRequest.php:67