Автоматизация массовой проверки действительности российских паспортов
Добрый день, коллеги. По работе пришлось заняться решением интересной задачи — автоматизацией процесса массовой проверки действующих клиентов. В процессе разработки пришлось столкнуться с рядом подводных камней, поэтому решил написать статью на эту тему. Если вы работаете с физическими лицами и выстраиваете с ними долгосрочные отношения, например, в сфере финансов, лизинга, аренды и т.п., вам, наверняка, будет интересен данный пост. Если у вас в штате несколько сотен сотрудников, и актуальность информации об их паспортных данных крайне важна, вам, вероятно, также может быть полезна эта статья.
- Описание
- Подробнее
Описание
Предыстория данной задачи такая. Одна коллега вышла замуж. Как это заведено в нашем обществе, взяла фамилию мужа и ожидала получения нового паспорта. В одно прекрасное утро ей приходит смс от банка, клиентом которого она является, мол ваш паспорт недействителен, свяжитесь с нами. Она сначала напряглась, но разобравшись, поняла, что новый паспорт готов, а старый попал в Список недействительных паспортов. Тут же возникло рац.предложение: если Тинькофф так умеет, давайте внедрим у себя нечто подобное.
Точечная проверка при заключении договоров с новыми клиентами у нас налажена, есть сервис ФМС/МВД для этих целей, ранее я даже выкладывал обработку для выполнения этой проверки прямо из 1С, которую можно встраивать в типовые конфигурации, но для массовой проверки этот инструмент не подходит, т.к. при проверке каждого паспорта необходимо вводить капчу. К слову, упомянутый выше сервис не всегда корректно работает. Время от времени он выдаёт ошибочные результаты, согласно которым все проверяемые паспорта действительны.
Другое дело — Список недействительных (утраченных (похищенных), оформленных на утраченных (похищенных) бланках паспорта гражданина Российской Федерации, выданных в нарушение установленного порядка, а также признанных недействительными) паспортов, ссылка на который также расположена на странице сервиса проверки. Он ежедневно пополняется, его можно встроить в свою информационную систему, регулярно обновляя, после чего безо всяких ограничений использовать для автоматизированных проверок. Немного поразмыслив, решили поступить именно таким образом.
Первым делом большую задачу было решено разбить на несколько частей поменьше:
- Скачать список из интернета и разархивировать;
- Загрузить csv-файл в Базу данных;
- Собственно, сама проверка действующих клиентов и рассылка результатов на эл.почту ответственных сотрудников.
Для выполнения данных задач по расписанию была реализована внешняя обработка с 3 командами, каждой из которых на выходных было назначено своё время выполнения. Обсудим решение каждой из подзадач чуть подробнее.
