Интеграция портала туроператора с ГИС «Электронная путевка»
Собрали отдельный сервис, через который заказы портала уходят в государственную систему учета путевок: своя очередь отправки, защищенный контур до государственного сервиса и перестроенные под его требования данные о туристах.

- выпуск сервиса на прод
- 2024
- рядом с порталом, а не внутри него
- Отдельный сервис
- период отправки накопленных заказов
- 30 минут
- информационной системы для подключения
- Аттестация
Задача
Туроператор обязан передавать сведения о проданных путевках в государственную систему. Портал работает на давнем ядре, из которого подключиться к ней нельзя.
Что сделали
Отдельный сервис с внутренней очередью отправки, защищенный контур до государственной системы и доработку портала под состав данных, которых система требует.
Чем закончилось
Сервис выпущен на прод в 2024 году, заказы уходят сами; портал при этом остался на своем ядре и не переписывался.
С чем пришли
Заказчик — туроператор и экскурсионное бюро, чей портал мы ведем с 2014 года: многодневные туры, ежедневные экскурсии, кабинеты агентств и менеджеров. Интеграция с государственной системой — отдельная работа рядом с этим порталом.
Туроператор обязан передавать сведения о реализованных турпродуктах в государственную информационную систему. Для компании с потоком заказов ручная отправка — не вариант: это отдельная работа на каждую путевку и постоянный риск разойтись с фактическими данными.
Портал живет на давнем ядре, которое переписывать под эту задачу никто не собирался: оно работает, на нем висят продажи, кабинеты агентств и отчетность. Подключаться к государственной системе из него нельзя — ни по требованиям к среде, ни по возможностям платформы.
- Останавливать работающий портал было нельзя: интеграция обязана встать рядом с ним, а не вместо него.
- Подключение идет только через защищенный контур — со своим программным обеспечением, отдельным сервером-шлюзом и требованиями к разграничению доступа.
- Часть сведений, которых требует система, портал раньше просто не собирал: их пришлось начать собирать, не сломав уже оформленные заказы.
Что сделали
Разобрали требования
До разработки прошли состав данных путевки и туриста, требования к среде и к порядку подключения: что система принимает, в каком виде и что для этого нужно на стороне оператора.
Собрали отдельный сервис
Интеграция вынесена из портала в собственный сервис на современном стеке: он принимает путевки во внутреннюю очередь, отправляет их в государственную систему и отдает порталу ее справочники.
Связали с порталом
Заказы копятся в собственной очереди портала и уходят в сервис по расписанию — оформление при этом не ждет внешнюю систему.
Перестроили данные о туристах
Состав сведений задан системой, и портал доучивался их собирать — не сломав тысячи уже оформленных заказов.
Подготовили контур
Настроили защищенное соединение, сервер-шлюз и разграничение доступов — без этого информационную систему не аттестуют, а без аттестации не подключат.
Функциональные решения
ФИО тремя полями
Фамилия, имя и отчество хранятся раздельно, а уже оформленные заказы переведены в новый вид скриптом, а не руками менеджеров.
Гражданство по справочнику
У иностранного туриста страна выбирается подсказками из справочника государственной системы — произвольную строку ввести нельзя, иначе путевку не примут.
Документы по правилам тура
Тип документа ограничен направлением: для зарубежного тура — только заграничный, со сроком действия дальше даты окончания поездки.
Проживание по туристам
Услуги проживания настраиваются в датах тура и указываются индивидуально по каждому туристу в заказе.
Тип питания
Еще один обязательный для системы признак путевки, которого на портале раньше не было.
Очередь отправки
Путевки принимаются во внутреннюю очередь и уходят из нее: портал не ждет ответа государственной системы и не встает, если она недоступна.
Статус у каждого заказа
К отправке, отправлено, ошибка — видно, что ушло, а что нет, без разбора журналов.
Повтор при ошибке
Заказ, отмененный системой из-за ошибки, отправляется заново после исправления, а не теряется.
Письмо о сбое
Об ошибках работы сервис сообщает почтой: интеграция без присмотра молча копит непереданные путевки.
Справочники по запросу
Сервис запрашивает справочники государственной системы и отдает их порталу — тот не ходит во внешний контур сам.
Технические решения
Сервис рядом, а не внутри
Главное решение проекта: интеграция не встроена в портал, а вынесена в отдельный сервис на своем стеке. Портал остался на давнем ядре и не переписывался, а требования государственной системы к среде выполняет сервис. Обновлять и чинить их можно порознь.
Очередь на стороне портала
Портал не обращается к сервису в момент оформления. При создании и изменении заказа запись падает в собственную таблицу очереди со статусом «к отправке», а отдельный процесс раз в полчаса забирает накопленное и передает дальше. Покупатель не ждет внешнюю систему, а сбой в ней не мешает оформить заказ.
Справочники внутрь
Значения справочников хранятся на портале локально и обновляются по расписанию. Поэтому подсказка в форме заказа берется из своей базы, а не из внешнего запроса на каждое нажатие клавиши.
Защищенный контур
Соединение идет через защищенные туннели и отдельный сервер-шлюз, который мы помогли настроить и поставить под наблюдение. Разграничение прав менеджеров и администраторов пришлось делать на работающем портале, где роли за десять лет успели перемешаться.
Свой тип данных под чужой формат
Самая объемная часть работы пришлась не на обмен, а на данные. Услуги проживания система требует структурой, которой на платформе просто нет, — пришлось завести собственный составной тип свойства: с редактированием в административной части, множественными значениями и хранением в общем виде. Уже оформленные заказы переведены в новый формат скриптом.
Сервис
PHPSymfonyОчередь сообщенийComposerGit
Портал
1С-БитриксPHPMySQL
Интеграции
ГИС «Электронная путевка»ViPNet PKI
После выпуска сервис прошел рефакторинг и с тех пор ведется вместе с порталом: состав путевки уточнялся не раз, добавлялись типы питания и документов, менялись правила отправки. Портал, ради которого все и затевалось, остался на своем ядре — интеграция ни разу не потребовала его трогать.
Похожие работы
Все работы
Я Туроператор
Поддержка и развитие сайта туроператора и экскурсионного бюро.
Порталы МФЦ
Государственные и муниципальные услуги для физических, юридических лиц и ИП.
Lestate
Поддержка и развитие b2b-портала дистрибьютора.- 160+проектов с 2009 года
Смотреть все работы
Интернет-магазины, порталы, корпоративные сайты и внутренние системы — от разработки с нуля до многолетнего развития.
