Мой опыт⁚ генератор корректных ИНН для постмана
Привет! Меня зовут Алекс. Недавно я столкнулся с задачей разработки генератора корректных ИНН для использования в приложении Postman. В этой статье я хотел бы поделиться своим опытом и рассказать о том, как я решил эту задачу, учитывая алгоритм ключевания ИНН.
ИНН (Идентификационный номер налогоплательщика) – это уникальный номер, присваиваемый налоговыми органами для идентификации физических и юридических лиц. Каждый ИНН состоит из 10 или 12 цифр, и его корректность можно проверить с помощью алгоритма ключевания.
Для начала, мне нужно было понять, как работает алгоритм ключевания ИНН. В общем виде этот алгоритм выглядит так⁚
- Умножение каждой цифры ИНН на соответствующий коэффициент.
- Вычисление суммы произведений.
- Остаток от деления суммы на 11.
- Сравнение остатка с 10-й цифрой ИНН. Если они совпадают, ИНН является корректным.
Теперь, имея алгоритм ключевания ИНН, я приступил к созданию генератора для Postman. Я использовал JavaScript для написания скрипта в Postman, который будет генерировать корректные ИНН для тестирования моего API.
Вот код моего скрипта⁚
const generateINN (length) > {
let inn '';
if (length 10) {
// Генерация ИНН для физических лиц
inn Math.floor(Math.random * 9) 1; // Первая цифра не может быть нулем
for (let i 1; i < length; i ) {
inn Math.floor(Math.random * 10);
}
const controlDigit calculateControlDigit(inn);
inn controlDigit;
} else if (length 12) {
// Генерация ИНН для юридических лиц
for (let i 0; i < length ⎯ 1; i ) {
inn Math.floor(Math.random * 10);
}
const controlDigit calculateControlDigit(inn);
inn controlDigit;
}
return inn;
}
const calculateControlDigit (inn) > {
const coefficientsFor10Digits [2, 4, 10, 3, 5, 9, 4, 6, 8, 0];
const coefficientsFor12Digits [7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];
const length inn.length;
const coefficients length 10 ? coefficientsFor10Digits ⁚ coefficientsFor12Digits;
let sum 0;
for (let i 0; i < length ⎯ 1; i ) {
sum coefficients[i] * parseInt(inn[i]);
}
const remainder sum % 11;
const controlDigit remainder 10 ? 0 ⁚ remainder;
return controlDigit;
}
const inn generateINN(10);
pm.environment.set('inn', inn);
Этот скрипт позволяет генерировать корректные ИНН для физических и юридических лиц. Я передаю требуемую длину ИНН в функцию generateINN
, и она возвращает сгенерированный номер.
Я также добавил функцию calculateControlDigit
, которая вычисляет контрольную цифру на основе алгоритма ключевания ИНН.
После генерации ИНН я использую метод pm.environment.set
для сохранения полученного значения в переменную среды Postman. Теперь я могу использовать эту переменную в других запросах для тестирования API.
Это был мой опыт разработки генератора корректных ИНН для постмана. Я искренне надеюсь, что мой опыт будет полезен и поможет вам в разработке генератора ИНН для ваших нужд. Удачи!