Технические требования к организации взаимодействия веб-систем Яндекса и Заказчика для предоставления Заказчиком Материалов
Это старая версия документа, которая прекратила свое действие 21.07.2017 г. Действующая версия размещена по адресу: https://yandex.ru/legal/airplane_timetable_requirements
1. Схема взаимодействия при получении Материалов
Общая схема работы:
1. Пользователь запрашивает у сервиса Яндекс.Авиабилеты варианты перелетов между двумя пунктами на выбранную дату.
2. Cервис Яндекс.Авиабилеты отправляет запрос (GET или POST) к веб-сайту Заказчика по адресу, передавая параметры:
2.1. departure – IATA либо Сирена -код пункта отправления;
2.2. arrival – IATA либо Сирена -код пункта прибытия;
2.3. date_forward – дата прямого вылета в формате YYYY-MM-DD;
2.4. date_backward – дата обратного вылета в формате YYYY-MM-DD, может отсутствовать;
2.5. class – класс обслуживания, например E - эконом или B – бизнес;
2.6. adult – количество взрослых пассажиров;
2.7. child – количество детей, может отсутствовать;
2.8. infant – количество младенцев без места, может отсутствовать;
3. Веб-сайт Заказчика возвращает XML следующего формата с информацией о местах и ценах.
Например:
<variant
url = "[адрес]" // url для перенаправления пользователя на веб-сайт Заказчика
>
<route_forward
route_code = "0123АБ" // номер рейса
company_code = "BL" // код авиакомпании
company_name = "Blah-air" // название авиакомпании
departure_airport_code = "DME" // код аэропорта вылета
arrival_airport_code = "SVO" // код аэропорта прибытия
departure_datetime = "2011-04-01 18:12" // дата-время отправления (локальное время)
arrival_datetime = "2011-04-01 21:20" // дата-время прибытия (локальное время)
route_time = "123" // время в пути в минутах
farecode="WFLOWCS" // код тарифа
tariff_adult = "80.00" // тариф для взрослого, если они присутствуют в запросе
tariff_child = "60.00" // тариф для детей, если они присутствуют в запросе
tariff_infant = "3.45" // тариф для младенца без места, если они присутствуют в запросе
/>
...
<route_backward
route_code = "0123АБ" // номер рейса
company_code = "BL" // код авиакомпании
company_name = "Blah-air" // название авиакомпании
departure_airport_code = "DME" // код аэропорта отправления
arrival_airport_code = "SVO" // код аэропорта прибытия
departure_datetime = "2011-04-01 18:12" // дата-время отправления (локальное время)
arrival_datetime = "2011-04-01 21:20" // дата-время прибытия (локальное время)
route_time = "123" // время в пути в минутах
farecode="WFLOWCS" // код тарифа
tariff_adult = "80.00" // тариф для взрослого, если они присутствуют в запросе
tariff_child = "60.00" // тариф для детей, если они присутствуют в запросе
tariff_infant = "3.45" // тариф для младенца без места, если они присутствуют в запросе
/>
...
<fare
value = "123.45" // цена (минимальная цена) в данном классе обслуживания
class = "E" // код класса обслуживания
luggage = «true|false» //включен ли провоз сдаваемого багажа в стоимость билета (по сегментам)
pieces of luggage=1//количество мест багажа, включенное в стоимость (по сегментам)
luggage_dimensions// размеры багажа (по сегментам)
length= 90//длина
width=28// ширина
height=40//высота
sum=158// сумма измерений сдаваемого багажа
luggage_weight=20// вес багажа
charter = «true|false» //признак чартерного тарифа
block = «true|false» //признак блочного тарифа
selfconnect= «true|false» //указание на выписку отдельных билетов для сегментов
currency = "RUB" // валюта
/>
</variant>
...
Вся информация о перелете, использованная в примере выше обязательна для ответа в соответствии с запрошенными типами пассажиров.
Стоимость отдельных сегментов перелета необходимо передавать во всех случаях, когда тариф это позволяет.
4. Блок variant повторяется для каждого предложения о бронировании в заданном классе обслуживания. В каждом блоке variant есть один или несколько подблоков route_forward и route_backward, содержащие информацию о сегментах перелёта туда и обратно соответственно.
5. Если обратная дата не указана, то возвращаются только предложения в одну сторону. При этом в блоках variant содержатся только подблоки route_forward.
6. Материалы Заказчика, поступившие после 20 секунд ожидания, либо после прерывания времени ожидания пользователем не будут размещены. Такие материалы, поступившие в период времени от 20 сек до 2 минут будут сохранены и отображены без повторного запроса к Заказчику до истечения времени актуальности кеша.
7. Заказчики, использующие GDS «Сирена-трэвел», должны отвечать на запросы с внутренними кодами, используемыми в данной GDS.
8. Заказчик обязуется использовать защищенный протокол передачи данных – https на своем сайте при переходе с сервиса Яндекс.Авиабилеты.
9. Заказчик обязуется информировать Яндекс о переходе на новый протокол предоставления информации не менее чем за 30 (тридцать) календарных дней до реализации перехода.
10. Отчет о количестве и общей стоимости приобретенных Пользователями авиабилетов в результате их перехода с веб-страниц сервиса Яндекс.Авиабилеты, предоставляемый Заказчиком согласно пункту 3.3.9. Договора, должен быть предоставлен в форматах xsl/xslx, либо csv.
11. Для ограничения запросов по направлениям можно подключить регионализацию. Для этого нужно прислать ссылку на csv-файл формата пары из IATA и/или Сирена кодов городов/аэропортов по одной в каждой строке через «;».
Каждая пара задает разрешение на опрос по направлению в обе стороны.
Например:
ATH;CMB
ATH;DXB
GBB;GOI
GPA;HAV
HER;KLX
KVD;LCA
LIS;LLK
LWN;MAD
MLE;NAP
СХТ;RHO
СХТ;СПТ
Данные забираются с периодичностью раз в сутки.
2. Схема взаимодействия при переходе к продаже
Переход с сервиса Яндекс.Авиабилеты на веб-сайт Заказчика осуществляется следующим образом:
1. Пользователь выбирает предложение и нажимает на ссылку (стоимость авиационного билета, указанную в валюте, переданной Заказчиком), на сервисе Яндекс. Авиабилеты.
2. Пользователь перенаправляется на веб-сайт Заказчика по адресу, полученному в ответе в поле url блока variant для данного предложения.
3. Пользователь на веб-сайте Заказчика начинает процесс бронирования:
3.1. на веб-сайте Заказчика должна осуществляться автоматическая проверка возможности забронировать предложение, которое пользователь выбрал на сервисе Яндекс.Авиабилеты (проверка должна осуществляться перед тем, как пользователь на веб-сайте Заказчика начинает процесс бронирования);
3.2. если выбранный Пользователем вариант бронирования не доступен, то пользователю должно показываться соответствующее информационное сообщение и должны предлагаться другие варианты, соответствующие параметрам поиска пользователя;
3.3. если выбранный Пользователем вариант бронирования доступен, то должна отображаться страница с подробной информацией о выбранном варианте бронирования и предложением ввести данные о пассажирах для бронирования. На странице также должны соблюдаться следующие условия:
Стоимость авиационного билета при оплате банковской картой в сети Интернет, отображаемая на странице, должна полностью соответствовать стоимости, предоставленной Заказчиком в Материалах, а также располагаться на видном месте и визуально отделена от других возможных предлагаемых Заказчиком вариантов.
- В описании выбранного варианта бронирования должна содержаться исчерпывающая информация о применимых к этому билету нормах провоза багажа и ручной клади. Эти данные должны быть доступны на этой же странице и не могут находиться в скрытых по умолчанию блоках.
3.4. В случае, если Заказчик наряду с авиационными билетами предлагает Пользователю на веб-сайте Заказчика дополнительные услуги, Заказчик обязуется предоставить Пользователю возможность выбрать такие дополнительные услуги на веб-сайте Заказчика самостоятельно. Все дополнительные услуги должны быть предложены до ввода данных банковской карты Пользователя. До согласия Пользователя дополнительные услуги не должны добавляться к стоимости авиационного билета.
4. В случае если Пользователь на веб-сайте Заказчика начинает процесс бронирования и по выбранному варианту требуется подтверждение от Заказчика, должны выполняться следующие требования:
Для авиационных билетов, требующих ручного подтверждения должен осуществляться автоматический ответ с указанием сроков окончательного подтверждения.
Срок окончательного ответа о наличии выбранного предложения и его стоимости должен составлять не более 1 рабочего дня.
Пользователь должен быть проинформирован в случае, если предложение не подтверждается.
5. Заказчик обязуется не передавать материалы в ответ на запрос сервис Яндекс.Авиабилеты в следующих случаях:
5.1. если параметры, описанные в настоящем документе, при получении Материалов, отображается на веб-сайте Заказчика не полностью;
5.2. если веб-сайт Заказчика по адресу, полученному в ответе согласно п. 2. Схемы взаимодействия при переходе к продаже не загружается и выдает сообщения об ошибке;
5.3. при любых технических и иных проблемах, не позволяющих Пользователю перейти на страницу с подробной информации о выбранном варианте (согласно п.3.3 настоящего документа) и завершить процесс покупки на веб-сайте Заказчика.
6. В случае обнаружения технических проблем Заказчик обязан немедленно известить представителей сервиса Яндекс.Авиабилеты по почте avia-info@yandex-team.ru. При поступлении запроса от Яндекс.Авиабилетов Заказчик обязуется в течение трех часов ответить на обращение и в кратчайшие сроки предоставить всю техническую информацию, необходимую для диагностики и решения проблем.
7. Далее процесс покупки должен продолжаться согласно технологии, принятой на веб-сайте Заказчика.
_____________________________
Дата публикации 01.03.2017 г.
Дата вступления в силу: 01.03.2017 г.
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/11112016
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/06102016
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/25072016
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/05042016
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/25012016
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/15122015
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/25052015