You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »


  • Нас всё устраивает и мы хотим выходить в prod, что нужно сделать?

Прекрасно, выполнить следующие шаги Prod NDC API

  • Какие типы пассажиров используются? 

Мы используем три типа пассажиров: ADT - старше 12-ти лет, CHD - младше 12-ти лет, но старше 2-х лет, INF - до 2-х лет.

  • Какой тип оплаты используется?

Все оплаты происходят только через Invoice. Отметим, что обработка платежей происходит не на нашей стороне.

   Invoice

<ns3:Type>
<ns3:Code>MS</ns3:Code>
</ns3:Type>
<ns3:Other>
<ns3:Remarks>
<ns3:Remark>IN*A*AGENT_NAME</ns3:Remark>
</ns3:Remarks>
</ns3:Other>

где MS — константа, IN*A*AGENT_NAME — реквизиты агента

  • Каким образом можно получить информацию о комиссиях на направлениях, как управлять агентскими сборами?

По данной информации стоит обратиться в Департамент продаж (ДП)

  • Напомните точки доступа приложения.

QA —  https://qa-gaia.s7.ru/agent-api/gaia

PROD — https://api.s7.ru/agent-api/gaia

  • Реализован ли в сервисе метод Multi-City?

Нет

  • Очень интересует. Делаем поиск рейсов, например, на 1 июня. Попадут ли в выдачу рейсы, которые прибывают в аэропорт назначения уже на следующий день, т.е. 2 июня?

Да, такую ситуацию мы учитываем.

  • Как выглядит алгоритм выписки билета, какого сценария придерживаться?

Создаём бронирование (OrderCreateRQ) > Уточняем цену (ItinReshopRQ) > Выписываем билет (AirDocIssueRQ)

  • Есть ли возможность поиска социальных категорий пассажиров – пенсионеры, молодежь, моряки, студенты и т.д.?

Социальных категорий нет. Используем три типа пассажиров:

  1. ADT (взрослый) старше 12 лет;
  2. CHD (ребёнок) от 2-х лет, но не старше 12;
  3. INF (младенец) до 2-х лет.
  • Можно ли получить отображение терминального текста актуальных данных PNR? Или только строить шаблон из ответа XML?

Терминальный текст не реализован.

  • Есть ли возможность  добавить информацию о визе и месте пребывания? (DOCO DOCA)

Данный функционал не реализован

  • Нужен доступ к WSDL-схеме сервиса. В документе приведена ссылка https://qa-gaia.s7.ru/agent-api/wsdl/0.21?wsdl
    Но по ней получаем ошибку HTTP 400 No required SSL certificate was sent. Скорее всего это означает, что доступ закрыт.

Доступ предоставляется агентам владеющим: basic-auth, сертификатом. Не имея таковых – агенты получают ошибку доступа. Прошу попросить представителей Портбилета оформить в jira задачи на выдачу сертификата, basic-auth.

  • Нужен доступ к тестовому сервису: адрес, логин, пароль и/или прочие параметры.

Подробности по созданию можно найти здесь: создание запроса на сертификат

  • В документации не описана возможность получения маршрутной сетки.

Запроса на предоставление маршутной сети S7 – нет.

  • Все ли тарифы S7 брендированные? Если нет, то может возникнуть проблема с получением всех тарифов для небрендированных тарифов, в документации это не описано.

Тарифы брендированные.

  • В документе описано войдирование, но ничего нет про возвраты. Так же нет ничего про очереди.

На текущий момент возвраты, очереди не реализованы в API.

  • При попытке послать запрос на API, через SOAPUI, получаем в ответ 'Unknown operation.'

Подозреваю, что не прописана версия в http header. Указывали версию? Первичная настройка инструмента SoapUI


  • Что означает блок Penalties в AirShoppingRQ? Какие типы бывают?

Данный блок описывает штрафы соответствующие определённому FareGroup. Штрафы имеют несколько типов: ADE (After departure), PDE (Prior to departure) - это штрафы, если человек обратится после вылета или до, NS (noshow) - неявка на рейс. 

  • В чём отличие BFAirShoppingRQSlice0 от BFAirShoppingRQSlice1 и AirShopping?

AirShopping выполняет поиск предложений с минимальной стоимостью (Y - эконом, C - бизнес). BFAirShoppingRQ это уже поиск предложений для тарифной сетки: basicEconomy, flexEconomy, basicBusiness, flexBusiness. Slice0 показывает варианты для полёта туда, а Slice1 - обратно.

  • Пытаюсь выполнить запрос на любой метод и получаю в ответ ошибку: <ns3:Error Type="101" ShortText="032 - SI" Code="101"/>  Что не так?

Проверьте верность реквизитов доступа к сервису NDC API в блоке Party к выбранной площадке (QA, Prod).

  • В запросе AirShopping, когда указываю пассажиров в разделе Travalers, если нет пассажиров определённой категории (например, INF или CHD) — то полностью блок не указываем, или допустимо же указать там Quantity = 0?

Поддерживаем два решения. Можно не указывать вообще или поставить 0.

  • Есть ли возможность поиска с опцией +- 1 день?

Поиск с опцией на диапазон дат не реализован, но планируется (подробности будут после разработки). Но если зададим поиск,
например, на 25/03 по маршруту DME-OVB, то в поисковой выдаче будут присутствовать рейсы, которые уже закончатся 26/03  – это мы учитываем.

  • Есть ли возможность поиска сложного маршрута, или только OW и RT ?

Есть

  • В вашем API поиск и продажа возможна только на чистые рейсы S7 ? Или возможно на кодшеринговые рейсы S7 тоже?

Рейсы S7, GH и codeshare. Появление интерлайнов планируем выкатить в prod/qa в скором времени, проинформируем дополнительно об этом.

  • Можно ли указать в запросе необходимость поиска только прямых перелетов? Я попробовал указать circuityLimit = 0.0, но получил ошибку, что значение должно быть больше 0.

В circuityLimit нельзя установить значение равное 0, стоит просто его убрать, если не желаете применять. На своей стороне мы определили оптимальные значения circuityLimit и durationLimit, которые соответствует выдаче, как на сайте s7.ru.\

Да, мы можем регулировать выдачу прямые рейсы или нет — отвечает значение DirectPreferences: Exclude - прямые + трансферы, Preferred - только прямые.

  • При запросе разных типов пассажира, коды тарифов (fare basis) в ответе указаны для взрослого. У других типов пассажиров обычно есть суффиксы (/CH25, /IN00, ...) и мы их отображаем. Можно ли их как-то получить?

Упоминаемые Вами суффиксы пассажиров разных типов мы не указываем на ответе AirShoppingRS. Эти данные можно найти в ответе запроса ItinReshopRQ.
Например, выдержка для CHD: <ns3:TicketDesig Application="CH">25</ns3:TicketDesig>

  • Тип самолета (тег Equipment). В ответе есть поле AircraftCode со значением ref, причем это значение совпадает для разных типов самолетов. Это издержки тестовой среды? В боевой будет передаваться код? Можно ли получить справочник по всем типам самолетов, чтобы мы проверили, что коды совпадают с теми, что мы используем и при необходимости добавили новые?

Указывайте всегда на QA/ PROD <ns3:AircraftCode>ref</ns3:AircraftCode>. ref — заглушка.

  • Штрафы (тег Penalty). В тестовом запросе пришло два элемента Detail, один с Type=PDE, другой без Type. Расскажите, пожалуйста, подробнее об этом блоке.

Штрафы имеют несколько типов: ADE (After departure), PDE (Prior to departure) - это штрафы, если пассажир обратится после вылета или до, NS (no-show) - неявка на рейс. Возвраты в API ещё не реализованы, а правила можно посмотреть в ответе запроса FareRulesRQ.

  • Технические остановки. Бывают ли у S7 технические остановки (например дозаправка) без смены номера рейса? Если да, то предоставьте пожалуйста пример, как это выглядит в протоколе.

На сколько помню, то у нас сейчас таких рейсов на текущий момент нет. Но этот момент мы должен быть учтён в рамках flightinfo.

  • Можно ли как-то получить информацию о предоставляемом питании (есть/нет, тип (легкий перекус, горячий обед и т.д.), платно/бесплатно)?

Информация о типе питания есть в ответе запроса flightinfo.

  • Можно ли получать тайм-лимит для выписки на этом этапе?

Тайм-лимит для выписки мы не предоставляем на этапе шоппинга, только после создания брони.


  • Какие типы документов поддерживаются?

Номер документа в бронировании указывать можно какой угодно. Но тип документа – всегда PP. Например для младенца будет PP VIIMU123456 – свидетельство о рождении.

  • Можно ли указать второй email, моб.телефон?

EmailContact - методом book допускается указание одного адреса. В дальнейшем есть возможность редактировать контакты существующего бронирования используя метод changeBook. Например добавить произвольное кол-во email контактов.
PhoneContact - для CountryCode и AreaCode максимальное количество символов = 15, логика позволяет использовать буквенные символы. Методом book допускается указание произвольного кол-во телефонных контактов.

  • Тайм-лимит вводится вручную? 

Можно установить вручную или автоматически.

  • При выполнении запроса OrderChangeRQ получаем ошибку <ns3:Error Type="LOC" Tag="Property change_book_request can not be empty" RecordID="CHNG_BOOK_RQ_IS_EMPTY"/>

Вводите символы, которые не поддерживаются, например:  ; : * ' " ^ { } [ ] < > & # ! ` = %

Хотим обратить ваше внимание:

На этапах создания брони (OrderCreateRQ), репрайса (ItinReshopRQ) полётные сегменты стоит распределить по блокам OriginDestination по соответствующим направлениям, т.е. рейсы туда вставляем в один OrginDestination, а рейсы обратно в другой блок OriginDestination.

Например, RT DME-SIP:

                   <ns3:OriginDestination>
                    <ns3:OriginDestinationKey>OD1</ns3:OriginDestinationKey>
                    <ns3:Flight>
                      <ns3:SegmentKey>FL1</ns3:SegmentKey>
                      <ns3:Departure>
                        <ns3:AirportCode>DME</ns3:AirportCode>
                        <ns3:Date>2016-10-04</ns3:Date>
                        <ns3:Time>08:50</ns3:Time>
                      </ns3:Departure>
                      <ns3:Arrival>
                        <ns3:AirportCode>SIP</ns3:AirportCode>
                        <ns3:Date>2016-10-04</ns3:Date>
                        <ns3:Time>11:20</ns3:Time>
                      </ns3:Arrival>
                      <ns3:MarketingCarrier>
                        <ns3:AirlineID>S7</ns3:AirlineID>
                        <ns3:FlightNumber>263</ns3:FlightNumber>
                      </ns3:MarketingCarrier>
                      <ns3:OperatingCarrier>
                        <ns3:AirlineID>S7</ns3:AirlineID>
						 </ns3:OperatingCarrier>
                      <ns3:ClassOfService>
                        <ns3:Code>W</ns3:Code>
                        <ns3:MarketingName></ns3:MarketingName>
                      </ns3:ClassOfService>
                    </ns3:Flight>
                    </ns3:OriginDestination>
                    <ns3:OriginDestination>
                    <ns3:Flight>
                      <ns3:SegmentKey>FL2</ns3:SegmentKey>
                      <ns3:Departure>
                        <ns3:AirportCode>SIP</ns3:AirportCode>
                        <ns3:Date>2016-10-06</ns3:Date>
                        <ns3:Time>12:10</ns3:Time>
                      </ns3:Departure>
                      <ns3:Arrival>
                        <ns3:AirportCode>DME</ns3:AirportCode>
                        <ns3:Date>2016-10-06</ns3:Date>
                        <ns3:Time>14:45</ns3:Time>
                      </ns3:Arrival>
                      <ns3:MarketingCarrier>
                        <ns3:AirlineID>S7</ns3:AirlineID>
                        <ns3:FlightNumber>264</ns3:FlightNumber>
                      </ns3:MarketingCarrier>
                      <ns3:OperatingCarrier>
                        <ns3:AirlineID>S7</ns3:AirlineID>
                      </ns3:OperatingCarrier>
                      <ns3:ClassOfService>
                        <ns3:Code>S</ns3:Code>
                        <ns3:MarketingName></ns3:MarketingName>
                      </ns3:ClassOfService>
                    </ns3:Flight>
                  </ns3:OriginDestination>
  • Обязательно ли внесение отчества при создании бронирования? Какие элементы внесения данных пассажира обязательны?

Отчество необязательно. Необходимы: фамилия и имя, контакты пассажира, полётный сегмент.

  • Соответствует ли установление автоматического тайм лимита при создании брони правилам применения тарифа авиакомпании?
    Не получится ли, что срок выкупа билета истечет раньше, чем установленный автоматический тайм лимит?

Автоматический тайм-лимит присутствует.

  • Для чего нужен ручной тайм лимит?

Более ручной тайм-лимит можно не использовать. Автоматический полностью соответствует актуальным правилам тайм-лимита и исключает ситуацию из вашего 6 вопроса.

  • Нужно ли менять установленный автоматический тайм лимит в зависимости от ремарок авиакомпании о сроках выкупа (SSR). Есть ли такое понятие в NDC?

Установки автоматического тайм-лимита происходит согласно правилам, которые используется при покупке на сайте.

  • Если необходимость корректировать тайм лимит в зависимости от полученной ремарки авиакомпании имеет место, то какой метод это позволяет?

Такой метод не предусмотрен.

  • В каком формате вносятся паспортные данные пассажира? (DOCS? FOID ?)

Присутствуют SSR DOCS, FOID. Ниже пример из терминала при открытии, созданной брони через API.

  • Почему во внесении данных о пассажирах есть обязательное поле – даты выдачи документа, а в отображении PNR данного поля нет. Или оно не обязательное?

Это поле можно не указывать. Бронь сформируется без него.

  • Почему нет паспортных данных по младенцу?

У младенца нет паспорта, однако есть свидетельство о рождении. Данные свидетельства так же вносятся в запросе OrderCreate в блоке <ns3:PassengerDocument>

  • Гражданство – это <ns3:CountryOfResidence>? А национальность? - <ns3:BirthCountry>? Или это одно и тоже? В чем разница?

  <ns3:BirthCountry> </ns3:BirthCountry> — код страны выдачи документа; <ns3:CountryOfResidence> </ns3:CountryOfResidence> — гражданство.

  • Почему нет ассоциации младенца с взрослым?

Ассоциация младенца со взрослым происходит. Привожу текст из документации:


  • Будет ли отображаться информация о EMD, если EMD будет выписано?

Да, информация о EMD будет указана аналогично EMD.

  • Правильно ли я поняла: когда мы через API вносим паспортные данные, то они вносятся в PNR в 2х форматах автоматически: SRDOCR и SRFOID ? При изменении данных обновление информации также производится в обоих ремарках?

Всё верно. В инициирующем запросе на формирование брони (OrderCreateRQ) агент указывает только паспортные данные. SSRCode="DOCS" и SSRCode="FOID" самостоятельно агент не указывает – это наша забота.

  • Какие коды SSR реализованы? Можете прислать список?

SSR DOCS, FOID, CHLD (ребёнок от 2 до 12 лет), INFT (ребёнок до 2 лет), FQTV (информация по мильной программе постоянного пассажира), TKNE (номер ETK), XBAG (сверхнормативный багаж), EXST (доп.место)

  • DOCA и DOCO - это одни из кодов SSR, которые есть согласно вашего ответа в п.14. Если не реализованы эти коды, то как агенты добавляют данную информацию? или S7 не летает по маршрутам, где требуется внесение данных визы и места пребывания?

Опишу подробнее, в созданном PNR можем корректировать SSR, а именно: контакты (телефон, емайл), паспортные данные (DOCS) и FOID, FQTV.
Что касается DOCA/DOCO, то действует принцип, как при покупке билета через сайт. Информация о визе указывается на этапе регистрации на рейс при полётах в Германию, Испанию, США, т.е. на этапах создания брони, выписки билета мы не требуем данные визы. Такой же принцип используется на API.

  • Установление автоматического тайм лимита гарантирует автоматическое снятие брони системой в указанное в тайм лимите время? Не будет заморозки мест?

Да, гарантирует и заморозки не будет.

  • VOID билета разрешен как обычно до 23.59 текущих суток выписки? По какой тайм зоне?

Тайм-зона — GMT +0

  • При запросе дополнительного сервиса – багаж (BaggageCharges) система выдает только сверхнормативный багаж, который платный? Или есть еще другие опции?
    Нужен ли ввод какого-то свободного текста, чтоб забронировать багаж? (например, вес и размеры) или такие данные уже заложены автоматически.

BaggageCharges — предоставляет дополнительный багаж по определенному перелету. Да, он платный и ввод свободного текста не нужен.


  • Стоп. А если я захочу выбрать себе места на рейсе, но уже оформил бронь? Как быть?

Для внесения доп.услуг в существующий PNR - используем запрос OrderChange. На текущий момент запрос позволяет добавить места, ремарки в бронь, а со временем реализуем такую же возможность и для багажа.

  • Возможно ли бронирование дополнительных сервисов в PNR с выписанными ранее билетами?

Да, возможно. Добавление мест, багажа.

  • Можно ли корректировать паспортные данные в созданной брони?

Поддерживается изменение паспортных данных и FOID


  • ETK и EMD. В чём отличие? 

ETK - электронный билет. EMD (Electronic Miscellaneous Document) - квитанция разных сборов (выбор места, до.багаж). Стоит отметить, что запросах на зачитку/войдирование Type"Code" для ETK - 702, а для EMD - Y.

  • Билет выписывается на каждый сегмент забронированного полёта?

Нет. ETK (электронный билет) оформляется на все сегменты маршрута. Но выписывается ETK на каждого пассажира, указанного в брони.

  • Подскажите, а реализован ли возврат ETK, EMD?

На текущий момент — нет.

  • Если в PNR есть забронированные доп. сервисы, то выписка билетов обязательна одновременно с выпиской EMD? Или EMD может быть выписано до/после выписки билета?

После выписки ETK.

  • Подскажите, пожалуйста, а как нам можно получить терминальный вид квитанции EMD или данные о выписанном EMD для построения своего шаблона?

Выдача терминальнго вида квитанции EMD не реализована в API. Данные о выписанном бланке EMD можно посмотреть с помощью метода AirDocDisplayRQ.

  • Так а все таки поле «Text – свободный текст» обязательно в форме оплаты или нет? Если вы просите указывать там номер договора, то какой формат поля?

Да, необходимо указывать.
Это поле с ремаркой, соответствует типу RMK в Gabriel, т.е. пробелы можно вводить, а такие знаки, как ; : * ' " ^ { } [ ] < > & # ! ` = % уже нельзя.


  • Пытаемся завойдировать билет, но ничего не выходит! Что не так?

(warning) Правило: какой валидатор выписывает билет, тот же валидатор и войдирует. 

Проверьте, что валидаторы одинаковые.

  • Есть какие-то особенности при войдировании ETK, EMD?
  1. ETK, EMD могут быть войдированы до конца текущих суток, когда они были выписаны.  
  2. Войдировать может только тот валидатор, которым была произведена выписка ETK, EMD.
  3. В запросе AirDocVoidRQ стоит обратить внимание на код:

<ns3:Type>
<ns3:Code>702</ns3:Code>  ——> для войдирования ETK
</ns3:Type>

<ns3:Type>
<ns3:Code>Y</ns3:Code>     ——> для войдирования EMD
</ns3:Type>

  • VOID билета разрешен как обычно до 23.59 текущих суток выписки? Есть ли еще какие-нибудь ограничения на VOID?

Более ограничений нет, кроме обычного — войдирование производится до 23-59 (GMT +0) текущих суток выписки.

  • По поводу VOID – а если вылет в день выписки? За сколько часов до вылета можно VOID сделать. Или можно даже и после вылета до 23.59, если билет не использован.

Главное не допустить NO SHOW – ситуация, когда пассажир не явился на рейс, не поставив в известность а/к. Если предупредили, места сняли — войдировать легально после вылета до 23:59, но желательно лучше выполнить до вылета.

  • No labels