configHelper = $configHelper; $this->curl = $curl; $this->serializer = $serializer; } public function execute() { $params = $this->getRequest()->getParams(); $protocol = !empty($params['use_ssl']) ? 'https://' : 'http://'; $baseUrl = $this->configHelper->getIpApiUrl(Config::DEFAULT_IP, false); $url = $protocol . $baseUrl . "?access_key={$params['access_key']}"; $this->curl->get($url); $response = $this->serializer->unserialize($this->curl->getBody()); $resultData = ['success' => false]; if (isset($response['success'])) { if (isset($response['error']['info'])) { if (isset($response['error']['code']) && $response['error']['code'] !== 101) { $resultData['success'] = true; } else { $resultData['message'] = $response['error']['info']; } } } else if (isset($response['ip']) && $response['ip'] === Config::DEFAULT_IP) { $resultData['success'] = true; } /** @var \Magento\Framework\Controller\Result\Json $result */ $result = $this->resultFactory->create('json'); return $result->setData($resultData); } }