Генерация корректного ИНН с помощью pre-request script в Postman
Привет, я Максим, и сегодня я расскажу вам о том, как создать pre-request script для генерации корректного ИНН в Postman. ИНН (Идентификационный Номер Налогоплательщика) ─ это уникальный номер, присваиваемый налоговыми органами для идентификации физических и юридических лиц.
Алгоритм ключевания ИНН
Перед тем, как начать создавать pre-request script, важно понять алгоритм ключевания ИНН для обоих вариантов ⎼ 10 и 12 значных ИНН.
1. 10-значный ИНН⁚
- Первые 9 цифр индивидуального ИНН генерируются произвольно.
- Последняя цифра вычисляется по следующему алгоритму⁚
- Умножаем каждую цифру индивидуального ИНН на определенные коэффициенты⁚ 2, 4, 10, 3, 5, 9, 4, 6, 8.
- Суммируем все полученные произведения.
- Вычисляем остаток от деления полученной суммы на 11.
- Если остаток равен 10, то последняя цифра исходного индивидуального ИНН должна быть равна нулю, иначе последняя цифра вычисляется как остаток от деления на 10.
2. 12-значный ИНН⁚
- Первые 10 цифр индивидуального ИНН генерируются произвольно.
- Последние две цифры вычисляются по следующему алгоритму⁚
- Умножаем каждую цифру индивидуального ИНН на определенные коэффициенты⁚ 7, 2, 4, 10, 3, 5, 9, 4, 6, 8.
- Суммируем все полученные произведения.
- Вычисляем остаток от деления полученной суммы на 11.
- Если остаток равен 10, то предпоследняя цифра равна нулю. В этом случае повторяем процесс для первых 11 цифр, используя коэффициенты⁚ 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8.
- Если остаток от деления равен 10, то последняя цифра исходного ИНН должна быть равна нулю, иначе последняя цифра вычисляется как остаток от деления на 10.
Создание pre-request script в Postman
Теперь, когда мы знаем алгоритмы ключевания ИНН для 10 и 12 значных номеров, давайте создадим pre-request script для генерации корректного ИНН в Postman.
Для начала, откройте вашу коллекцию запросов в Postman и выберите нужный запрос, для которого хотите сгенерировать ИНН.
Во вкладке ″Pre-request Script″ добавьте следующий код⁚
const innDigits (length) > { let digits ''; for(let i 0; i < length ⎼ 1; i ) { digits Math.floor(Math.random * 10); } return digits; }; const innCheckDigit (inn) > { const coefficients length 10 ? [2, 4, 10, 3, 5, 9, 4, 6, 8] ⁚ [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]; let sum 0; for(let i 0; i < inn.length ⎼ 1; i ) { sum parseInt(inn.charAt(i)) * coefficients[i]; } let checkDigit sum % 11; if(checkDigit 10) { if(length 10) { checkDigit 0; } else { checkDigit innCheckDigit(inn.substring(0, 11)); } } if(length 12) { let secondCheckDigit innCheckDigit(inn.substring(0, 11) checkDigit); return checkDigit.toString secondCheckDigit.toString; } return inn checkDigit.toString; }; const length 10; // Измените на 12, если вам нужен 12-значный ИНН const inn innDigits(length); pm.variables.set(″inn″, innCheckDigit(inn));
После этого можно использовать переменную {{inn}} в вашем запросе для использования сгенерированного ИНН. Например, вы можете указать ИНН в параметре запроса или теле запроса.
Теперь вы знаете, как создать pre-request script в Postman для генерации корректного ИНН в соответствии с алгоритмом ключевания для 10 и 12 значных номеров. Это может быть полезно, например, при тестировании API, требующего правильного формата ИНН. Не забудьте изменить значение переменной length на 12, если вам нужен 12-значный ИНН.