Порядок оформления

Поиск вариантов перелета → Оформление бронирования → Расчет тарифа в бронировании → Инициация выписки билета и формирование платежной ссылки → Переход на платежную страницу 

User story

Сотрудник Аэрофлота оформляет перевозку с неподтвержденным местом на рейс S7 через  FlyID. 

Сценарий

Оформление билета с неподтвержденным местом:

  1. Вызов метода поиска авиаперелета searchFlightsJourney operation с указаниям всего маршрута и количества и типов пассажиров;

  2. Вызов метода формирования бронирования book operation с указанием данных по каждому пассажиру и выбранным вариантом перелета;

  3. Расчет и закрепление тарифа в бронировании reprice operation с указанием выбранного варианта перелета и тарифа;

  4. Получение ссылки на оплату на сайте S7 demandTickets operation 

Table of contents:



Шаг 1: Поиск вариантов перелета

Вызов метода поиска авиаперелета.

Данные на вход:


1. Офис оформления

Для тестовой среды - S70008031

/Envelope /Body /AirShoppingRQ /Party /Sender /AgentUserSender/PseudoCity

2. Валюта 

/Envelope /Body /AirShoppingRQ/Parameters /CurrCodes /CurrCode

Доступные значения - RUB

3. Тип пассажира

/Envelope /Body /AirShoppingRQ /Travelers /Traveler/AnonymousTraveler /PTC

Доступные значения:

  • ZEA — Сотрудник/Супруг/Пенсионер
  • ZEP - Родитель
  • ZES - Брат/сестра
  • ZEC — Ребенок (2-12) или младенец с местом
  • ZEI — Младенец на коленях (0-2)

4. Количество пассажиров каждого типа 

/Envelope /Body /AirShoppingRQ /Travelers /Traveler/AnonymousTraveler /PTC /@Quantity

Из расчета

  • ZEA/ZEP/ZES+ZEC <= 9
  • ZEI <= ZEA/ZEP/ZES

5. Маршрут 

Аэропорт вылета
/Envelope /Body /AirShoppingRQ /CoreQuery /OriginDestinations /OriginDestination/Departure /AirportCode

Аэропорт прилета
/Envelope /Body /AirShoppingRQ /CoreQuery /OriginDestinations /OriginDestination/Arrival
/AirportCode


6. Дата 

Дата вылета

/Envelope /Body /AirShoppingRQ /CoreQuery /OriginDestinations /OriginDestination/Departure/Date

Дата прилета

/Envelope /Body /AirShoppingRQ /CoreQuery /OriginDestinations /OriginDestination/Arrival /Date

Ответ содержит до 2 вариантов служебных тарифов (BUSINESSSA и ECONOMYSA ) для каждого варианта перелета.

Шаг 2: Бронирование

Вызов метода формирования бронирования

Данные на вход:


1. Офис оформления

/Envelope /Body /OrderCreateRQ /Party /Sender /AgentUserSender/PseudoCity

2. Данные пассажира

/Envelope /Body /OrderCreateRQ /Query /Passengers

Необходимо задать референцию для каждого пассажира Passenger@ObjectKey. Мы рекомендуем использовать ключ SH и порядковый номер.

3. Данные выбранного предложения авиаперелета

- Query/OrderItems/ShoppingResponse , где

- Offers /Offer /OfferID - константа, обязателен по схеме.

- Offers /Offer /OfferItems /OfferItem /Passengers /PassengerReference - список референций пассажиров, на которых оформляется бронирование.
Передавать в строку через пробел, без знаков препинания.

- Offers /Offer /OfferItems /OfferItem /ApplicableFlight /FlightReferences - список референций бронируемых сегментов (задаются ниже).
Передавать в строку через пробел, без знаков препинания.

- Offers /Offer /OfferItems /OfferItem /OfferItemID - константа, обязателен по схеме.

- Envelope /Body /OrderCreateRQ /Query /OrderItems /OfferItem /OfferItemType /DetailedFlightItem - детали предложения.

Необходимо задать референцию. для каждого сегмента SegmentKey, мы рекомендуем использовать ключ FL и порядковый номер сегмента.

Данные о перелете заполняются для каждого сегмента (Flight) из ответа поиска:



Envelope/Body/AirShoppingRS/DataLists/FlightSegmentList


Также для каждого сегмента заполняются данные об RBD на сегменте <ClassOfService>, также из ответа поиска:

 


Envelope/Body/AirShoppingRS/OffersGroup/AirlineOffers/AirlineOffer/PricedOffer/OfferPrice/RequestedDate/Associations/ApplicableFlight/FlightSegmentReference/ClassOfService/Code


(lightbulb) Сегменты (Flight) должны быть разнесены по соответствующим слайсам (OriginDestination):
  • один OriginDestination для One Way перевозки;
  • два для Round Trip перевозки.



Внимание! в ответе референция пассажира меняется

Шаг 3: Расчет и закрепление тарифа в бронировании

Данные на вход:


1. Офис оформления

/Envelope /Body /ItinReshopRQ/Party /Sender /AgentUserSender/PseudoCity

2. Код бронирования 

/Envelope /Body /ItinReshopRQ/Query /Reshop /Actions /BookingReferences/BookingReference/ID

Код бронирования содержится в ответе OrderViewRS

/Envelope /Body /OrderViewRS /Response /Order /BookingReferences /BookingReference/ID

3. Данные о маршруте

/Envelope /Body /ItinReshopRQ /Query /Reshop /Actions /OrderItems /OrderItem 
Заполняются также как в OrderCreateRQ.


4. Данные об RBD и коде тарифа (FareBasisCode/Code)  на сегменте 
/Envelope /Body /ItinReshopRQ /Query /Reshop /Actions /OrderItems /OrderItem /FlightItem /FareDetail /FareComponent

Заполняются из AirShoppingRS

RBD


Envelope/Body/AirShoppingRS/OffersGroup/AirlineOffers/AirlineOffer/PricedOffer/OfferPrice/RequestedDate/Associations/ApplicableFlight/FlightSegmentReference/ClassOfService/Code


Код тарифа (FareBasisCode/Code) 


Envelope/Body/AirShoppingRS/OffersGroup/AirlineOffers/AirlineOffer/PricedOffer/OfferPrice/RequestedDate/Associations/ApplicableFlight/FlightSegmentReference/ClassOfService/MarketingName



Шаг 4: Получение ссылки на оплату на сайте S7

Данные на вход:
1. Офис оформления

/Envelope /Body /AirDocIssueRQ/Party/Sender /AgentUserSender/PseudoCity

2. Данные о пассажирах

/Envelope /Body /AirDocIssueRQ/Query/TicketDocInfo /TravelerInfo

Данные передаются как ANY, формирование ссылки для билетов сразу на всех пассажиров. 

3. Код бронирования 

/Envelope /Body /AirDocIssueRQ/Query/TicketDocInfo /BookingReference /ID

Код бронирования содержится в ответе OrderViewRS


Envelope/Body/OrderViewRS/Response/Order/BookingReferences/BookingReference/ID


4. Данные об оплате

/Envelope /Body /AirDocIssueRQ/QueryTicketDocInfo /Payments


Всегда заполняются как в примере, не важны на данном этапе.