Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
3 / 3 / 2
Регистрация: 28.03.2015
Сообщений: 61
1

API ФНС для проверки самозанятых

18.12.2020, 08:53. Показов 6088. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени!
Иногда работа приносит сюрпризы, особенно работая в ЦЗН, пришло нам письмо что мол надо проверять безработных на факт самозанятости, 10-20-50 человек без проблем, но когда это надо часто делать и в количестве 700+, то пальчики устают...

Пытаюсь освоить rest api фнс:
Страница на сайте nalog.ru тут можно сделать единичный запрос
Описание API

Эндпоинт: https://statusnpd.nalog.ru/api... yer_status

Для получения сведений, необходимо передать такой запрос в POST:
Код
{
"inn": "525741209968",
"requestDate": "2019-01-11"
}
На github выложили функцию которая делает запрос на сегодняшнее число, по итогу вместе с ним получилось следующее:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require_once __DIR__ . '/lib/simplexlsx.class.php'; 
 
function checkStatus($inn, $date = null)
{
    if (!$date) {
        $date = new DateTime("now");;
    }
    $dateStr = $date->format("Y-m-d");
    $url = "https://statusnpd.nalog.ru/api/v1/tracker/taxpayer_status";
    $data = array(
        "inn" => $inn,
        "requestDate" => $dateStr
    );
    $options = array(
        'http' => array(
            'method'  => 'POST',
            'header'  => array(
                'Content-type: application/json',
            ),
            'content' => json_encode($data)
        ),
    );
 
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    return json_decode($result);
}
 
// Чтение инн из xlsx таблицы
$xlsx = new SimpleXLSX(__DIR__ . '/test.xlsx');
$sheet = $xlsx->rows(2);
foreach ($sheet as $index => $row) {
    if ($index < 1) { //Начинать со второй строчки
        continue;
    }
    //print_r($row[3].'<br>');
    
    $request = checkStatus($row[3]);
    sleep(30); //Задержка перед следующим запросом
    print_r($request);
    
}
Скорее всего скрипт корявый, но он есть и даже работает, правда тратить сильно много времени из-за ограничения API ФНС, а это не более 2 запросов в минуту с одного IP адреса.
Получается на 800+ запросов, потребуется 7+ часов, а это к сожалению слишком долго, выход только один, использовать прокси, но к сожалению как я не пытался поиграться с curl, у меня ничего не получилось, хотя вроде даже есть примеры и в том числе брать из файла список прокси.


Получение рандомного адреса:порта из файла
PHP
1
2
3
4
5
6
$lines = file(__DIR__ . '/proxy.txt'); //Здесь прокси списком в массив кидаем
$rmax=count($lines); //берем длину массива
$proxyn=rand(0, $rmax); //чтоб рандомно выбрать элемент массива генерим число
$pro=$lines[$proxyn]; //В переменную кидаем элемент массива
$pro=preg_replace('/\s/', '', $pro); //Удаляем всю нечисть из строки, типа пробелов и переносов строки
print_r($pro); //Проверяем что в переменной есть
Помогите пожалста с curl,ом, молю!

Если спросите почему именно php, ну потому что есть хотя бы базовые знания работы с ним.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2020, 08:53
Ответы с готовыми решениями:

API интернет словаря или алгоритм проверки для слова на возможность существования
Доброго времени суток :) Пишу курсовой на тему автоматической смены раскладки (при наборе русского...

Технический писатель в в Филиал ФКУ Налог-Сервис ФНС России по ЦОД (от 80 т.р. на руки)
В Филиал ФКУ Налог-Сервис ФНС России по ЦОД в г.Москве, в связи с расширением проектного...

Random.org API получение кнопки проверки
Кто работал с этим API? Не могу разобраться, как сделать кнопку проверки Использую библиотеку с...

Создать скрипты для обновления системы, проверки её на вирусы, дефрагментации диска и проверки его на ошибки
Требуется создать батники, которые бы осуществляли запуск 1)обновления системы 2)проверку на...

6
324 / 225 / 90
Регистрация: 22.04.2017
Сообщений: 1,113
19.12.2020, 14:30 2
smile7k, Это публичный API. Если вы официальный центр занятости, то может попросить у них личный доступ и там, возможно, не такие ограничения на запросы.
0
3 / 3 / 2
Регистрация: 28.03.2015
Сообщений: 61
20.12.2020, 11:10  [ТС] 3
HotReboot, центр официальный, но к сожалению только отделение, нас посылают лесом, мол мы не главное подразделение, а главное нас отшивает, мол не придумывайте, а работайте давайте, не для того мы вам денежку платим, вот и приходится придумывать и выкручиваться своими силами, ну делать нечего будем дальше пытаться автоматизировать процесс...
0
0 / 0 / 0
Регистрация: 08.11.2022
Сообщений: 1
08.11.2022, 22:27 4
Здравствуйте, скажите, пожалуйста, решили ли вы этот вопрос?
0
3 / 3 / 2
Регистрация: 28.03.2015
Сообщений: 61
12.11.2022, 09:54  [ТС] 5
Цитата Сообщение от vimor Посмотреть сообщение
решили ли вы этот вопрос
Привет, не совсем, просто выставил ограничение 1 запрос раз в 35 секунд, ну и допилил php под работы с xlsx в рамках выгрузок нашего ПО, curl для меня остался необузанным, да и в общем не сильно это безопасно через чужие сети прогонять ПД.

Просто с вечера готовлю выгрузку, с утра ставлю на отдельном компе проверку, к вечеру просматриваю результат.
0
0 / 0 / 0
Регистрация: 22.04.2024
Сообщений: 1
Вчера, 13:05 6
Добрый день. У меня есть решение, которое позволяет получать порядка 20 ответов фнс в минуту.
0
Модератор
Эксперт JSЭксперт HTML/CSS
2686 / 1758 / 760
Регистрация: 13.03.2010
Сообщений: 5,843
Вчера, 13:32 7
22042024, мы очень рады, приведите его в теме.
0
Вчера, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Вчера, 13:32
Помогаю со студенческими работами здесь

Почему не работает скрипт проверки домена через api reg.ru на perl?
Есть скрипт проверки доменов на занятость. Он использует модуль Regru::API. Работает на Windows. ...

Написать пакетный файл для запуска утилиты проверки диска и вывода в файл статистики проверки
Написать пакетный файл для запуска утилиты проверки диска и вывода в файл статистики проверки

Клиент для сайта если есть JS API и Flash API
Возможно ли и какими способами можно сделать клиент для сайта если у сайта есть JS API и Flash API ?

Функции для работы с Google Drive API v3 через REST API в C++ Builder
Выкладываю функции для работы с Google Drive API v3 через REST API в C++ Builder, так-как в...

Не могу настроить webhook для бота WhatsApp использую API с сайта api-messenger.com
Ситуация следующая. На сайте сказано: При сохранении адреса, система проверят адрес, создавая...

Как верно использовать JavaScript native Fetch API вместо jQuery для опроса данных из API
Я разбираюсь в js, и на данный момент понял что метод из js Fetch может сам отправлять запросы на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru