2019-04-26
Natan

ajax запрос

Сначала создадим HTML-форму (файл index.php), подключим jQuery:

<?php
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>AJAX запрос</title>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
req (ИНН или ОГРН): <input type="text" id="req" value="1187232012549"><br>
<button id="btn">Запрос</button><br>
Результат:<br><span id="result"></span><br>
</body>
</html>
?>

Форма выглядит примерно так:

req (ИНН или ОГРН):

Результат:

Предварительно подготовим php-код (файл ajax_quest.php) для извлечения результатов API-ФНС с использованием метода egr.
Входящим параметром будет параметр $_GET['req'] - ИНН или ОГРН нужной нам компании. А на выходе - результат запроса egr.
Также в код необходимо вставить ваш ключ API в переменную $key.

<?php
$key='Здесь введите ваш ключ';
$data_json = json_encode(file_get_contents("https://api-fns.ru/api/egr?req=".$_GET['req']."&key=".$key), JSON_UNESCAPED_UNICODE);
echo $data_json;
?>

Далее, вернемся к index.php.
Вместо XMLHttpRequest будет использовать более современный метод fetch.
Javascript код для обработки ajax запросов вставим внутрь тэга body:

<?php
<script>
let btn = document.getElementById("btn");
btn.addEventListener("click", () => {
	/*** Fetch JSON GET ***/
	let req = $('#req').val();
	fetch("ajax_quest.php?req=" + req, {
		headers: {"Content-type": "application/json"}
	})
	.then(response => {
		if (response.status !== 200) {
			return Promise.reject();
		}
		return response.json();
	})
	.then(i => {
		$('#result').html('');
		var json = jQuery.parseJSON(i);
		if (json.items[0].ЮЛ) {
			$('#result').append('ИНН: ' + json.items[0].ЮЛ.ИНН);
			$('#result').append('<br>ОГРН: ' + json.items[0].ЮЛ.ОГРН);
			$('#result').append('<br>ДатаРег: ' + json.items[0].ЮЛ.ДатаРег);
			$('#result').append('<br>Статус: ' + json.items[0].ЮЛ.Статус);
		}
		else if (json.items[0].ИП) {
			$('#result').append('ИННФЛ: ' + json.items[0].ИП.ИННФЛ);
			$('#result').append('<br>ОГРНИП: ' + json.items[0].ИП.ОГРНИП);
			$('#result').append('<br>ДатаРег: ' + json.items[0].ИП.ДатаРег);
			$('#result').append('<br>Статус: ' + json.items[0].ИП.Статус);
		}
		console.log(i)
	})
	.catch(() => console.log('ошибка'));
});
</script>
?>

Здесь мы на кнопку btn назначили событие по нажатии кнопки click.
Затем проверяем, успешно ли выполнился запрос (ожидаем 200 статус).
Конечный результат, полученный php-скриптом ajax_quest.php, парсим как JSON (jQuery.parseJSON) и помещаем в контейнер result некоторые полученные поля: ИНН, ОГРН, Дату регистрации, Статус.
При этом проверяем вернулось ли нам юр.лицо или физ.лицо.
Ну и в конце в лог консоли выводим полный результат.

Скачайте полные скрипты вышеприведенного примера, поместите их в одну папку, в файле ajax_quest.php вставьте ваш ключ API-ФНС в переменную $key, используйте скрипты для интеграции API в ваших информационных системах.