Веб-служба бронирования: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
== Запросы ==  
+
= Запросы =  
  
 
*Запрос на бронирование
 
*Запрос на бронирование
Строка 5: Строка 5:
 
*Бронирование через TravellerId
 
*Бронирование через TravellerId
  
== Запрос на бронирование ==
+
= Общий формат запроса / ответа =
  
 
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр - «FlightId» - Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
 
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр - «FlightId» - Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
Строка 213: Строка 213:
 
</div>
 
</div>
  
== Односторонний перелет: Москва - Санкт-Петербург ==
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 +
==== Запрос ====
 +
<div class="mw-collapsible-content">
 +
 
 +
</div>
 +
</div>
 +
 
 +
= Примеры использования =
 +
 
 +
== Односторонний перелет ==
  
'''REQUEST'''
 
<pre>soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://localhost/nemoflights/?version%3D1.0%26for%3DBookFlight">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:BookFlight>
 
        <RequestBin>
 
            <Request>
 
              <BookFlight>
 
                  <!--@FlightId - Id перелёта в системе Немо, обязательный-->
 
  <FlightId>534733</FlightId>
 
                  <!--Валидирующий перевозчик (тот кто выписывает билет), необязательный-->
 
  <ValidatingCompany>SU</ValidatingCompany>
 
                  <!--Код класс перелёта, один для каждого сегмента в перелёте, необязательный-->
 
  <BookingCodes>
 
                    <!--@Code - код класса перелёта, обязательный-->
 
<!--@SegNumber - номер сегмента в перелёте (начинаются с 1), обязательный-->
 
<BookingCode Code="Q" SegNumber="1"/>
 
                  </BookingCodes>
 
                  <!--Код валюты, необязательный-->
 
  <CurrencyCode>RUB</CurrencyCode> 
 
                  <!--Оплатить не позже, формат: ГГГГ-ММ-ДДTЧЧ:мм:СС, необязательный-->
 
  <TicketTimeLimit>2011-06-20 00:00:00</TicketTimeLimit>
 
                  <!--Информация об агенстве, обязательный-->
 
  <!--@Name - название агентства, обязательный-->
 
                  <Agency Name="">
 
<!--Телефон агентсва, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий,
 
A - агенство-->
 
                    <Telephone Type="">
 
                        <!--Номер телефона, обязательный-->
 
                        <PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->                       
 
<CountryAccessCode></CountryAccessCode>
 
                        <!--Код региона/города, необязательный-->
 
                        <AreaCityCode></AreaCityCode>
 
                    </Telephone>
 
<!--Адресс агенства. Обязательный.-->
 
<!--@ City - Город. Обязательный.-->
 
<!--@StreetAddress - Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
 
<!--@PostalCode - Почтовый индекс. Необязательный.-->
 
<!--@CountryCode - Код страны (RU, UA и т.п.). Необязательный.-->
 
                    <Address City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                  </Agency>
 
  <!--Список пассажиров, обязательный-->
 
                  <Travellers>
 
                    <!--Информация о пассажире, обязательный-->
 
<!--@Type - тип пассажира, обязательный, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом-->
 
<!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
 
<!--@Num - порядковый номер пассажира, начинается с 1, обязательный-->
 
<!--@TravellerId - id номер пассажира из БД, необязательный-->
 
                    <Traveller Type="ADT" IsContact="true"  Num="1" TravellerId="">
 
<!--Код типа питания, необязательный, возможные значения:
 
NONE - отсутствует
 
AVML - Азиатская вегетарианская кухня
 
BLML - Блюда щадящей диеты
 
CHML - Детское питание
 
CHPC - Детский холодный завтрак
 
СНСС - Детский горячий завтрак
 
CHHC - Детский ланч, ветчина и сыр
 
PBJS - Детский ланч, ореховое масло
 
CHMC - Детский обед макароны с сыром
 
DBML - Диабетическое питание
 
FPML - Фрукты
 
GFML - Питание без клейковины
 
HFML - Питание богатое клетчаткой
 
HNML - Индусская кухня
 
BBML - Питание для младенцев
 
KSML - Кошерная кухня
 
SMKB - Кошерный завтрак
 
SMKL - Кошерный ланч
 
SMKD - Кошерный обед
 
LPML - Малобелковое питание
 
LCML - Низкокалорийное питание
 
LFML - Низкохолестериновое питание
 
PRML - Низкопуриновое питание
 
LSML - Малосоленое питание
 
MOML - Мюсли
 
NLML - Безмолочные продукты
 
ORML - Восточная кухня
 
RVML - Сырые овощи
 
SFML - Морепродукты
 
SPML - Особое питание
 
VLML - Вегетарианское, молоко и яйца
 
VGML - Строго вегетарианское питание
 
VJML - Джайнизское вегетарианское
 
VOML - Восточное вегетарианское питание-->
 
                        <Meal></Meal>
 
                        <!--Персональные данные, обязательный-->
 
<!--@DateOfBirth - дата рождения в формате yyyy-mm-dd (например 2000-12-31), обязательный-->
 
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
 
<!--@Gender - пол пассажира, обязательный, возможные значения:
 
M - мужской(Male)
 
F - женский(Female)-->
 
                        <PersonalInfo DateOfBirth="1975-05-15" Nationality="RU" Gender="M">
 
                          <!--Имя пассажира, обязательный-->
 
<FirstName>Ivan</FirstName>
 
<!--Фамилия пассажира, обязательный-->
 
<LastName>Ivanov</LastName>
 
<!--Отчество пассажира, обязательный-->
 
                            <MiddleName></MiddleName>
 
                        </PersonalInfo>
 
                        <!--Карточка часто летающего пассажира, необязательный -->
 
<!--@OpCode - код авиакомпании, обязательный-->
 
<!--@Number - номер карточки, обязательный-->
 
                        <LoyaltyCard OpCode="" Number=""/>
 
                        <!--Контактная информация, необязательный-->
 
                        <ContactInfo>
 
                          <!--Контактный email, необязательный-->
 
                          <EmailID></EmailID>
 
                          <!--Контактный телефон, необязательный-->
 
  <!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий-->
 
                          <Telephone Type="">
 
                              <!--Номер телефона, обязательный-->
 
                              <PhoneNumber></PhoneNumber>
 
                              <!--Код страны, необязательный-->
 
                              <CountryAccessCode></CountryAccessCode>
 
                              <!--Код региона/города, необязательный-->
 
                              <AreaCityCode></AreaCityCode>
 
                          </Telephone>
 
                        </ContactInfo>
 
                        <!--Паспортные данные, обязательный-->
 
<!--@DocType - тип документа, обязательный, возможные значения:
 
Р - Паспорт
 
A – Паспорт иностранца
 
С - Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
М - Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
V – Документ для пересечения границы-->
 
<!--@DocNum - номер документа, обязательный-->
 
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
 
<!--@DocElapsedTime - Срок истечения срока действия паспорта в yyyy-mm-dd (например 2000-12-31), обязательный-->
 
                        <DocumentInfo DocType="P" DocNum="1234123456" CountryCode="RU" DocElapsedTime="2025-06-15"/>
 
                        <!--информация о визе, необязательная.(Заполняется через SSR DOCO)
 
@Num - номер визы, обязательный
 
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
 
@IssueCountry - страна выдачи визы, обязательный
 
@IssuePlace - место выдачи визы, обязательный
 
@BirthCountry - страна рождения(IATA код страны), необязательный
 
@BirthCity - город рождения(название), необязательный
 
-->
 
                        <VisaInfo Num="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity="" IssueDate=""/>
 
                        <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
 
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
 
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
 
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
                        <ArrAddress City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                        <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
                        <PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
                        <!--Список форматов строк паспортных данных, необязательный-->
 
                        <DocStringFormats>
 
                          <!--Формат паспортной строки, обязательный, возможные значения:
 
DOCS - строка формата DOCS,
 
FOID - строка формата FOID-->
 
                          <DocStringFormat></DocStringFormat>
 
                        </DocStringFormats>
 
                    </Traveller>
 
                  </Travellers>
 
                  <!--Номер очереди, в которую необходимо поместить бронирование. Строка, необязательный-->
 
                  <QueueNum></QueueNum>
 
              </BookFlight>
 
            </Request>
 
            <!--Авторизация, обязательный-->
 
<!--@ClientId, идентификатор клиента, обязательный-->
 
<!--@APIKey, API ключ клиента, обязательный-->
 
<!--@Language, код языка, обязательный-->
 
<!--@Currency код валюты, обязательный-->
 
            <Source>
 
              <ClientId>102</ClientId>
 
              <APIKey>7F48365D42B73307C99C12A578E92B36</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
            </Source></pre>
 
  
'''RESPONSE'''
 
<div><pre>
 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://localhost/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
      <ns1:BookFlightResponse>
 
        <ResponseBin>
 
            <Response>
 
<!--Ответ, обязательный-->
 
<!--@ID - Id брони в системе немо, целое число, обязательный-->
 
<!--@Status - Индикатор состояния брони, обязательный, возможные значения:
 
booked - забронировано,
 
canceled - бронь отменена,
 
ticket - выписана
 
UNDEFINED - статус не определён
 
-->
 
<!--@Code - Код брони в системе бронирования/поиска (sabre, sirena и т.д.), строка, обязательный-->
 
              <BookFlight ID="21282" Status="booked" Code="QSSRL0">
 
  <!--Положение брони в очереди, необязательный-->
 
  <!--@Number - номер брони в очереди, обязательный-->
 
                  <QueryPlace xsi:nil="true"/>
 
  <!--@FlightId ид перелёта в системе Немо, обязательный-->
 
                  <Flight FlightId="535464">
 
<!--Веб-сервис из которого получен перелёт, обязательный-->
 
                    <WebService>GALILEO</WebService>
 
<!--Код авиакомпании - валидирующего перевозчика, IATA, обязательный-->
 
                    <ValCompany>S7</ValCompany>
 
                    <URL>http%3A%2F%2Flocalhost%2F%3Fgo%3Dbooking%2Finfo%26uid%3D26664%26flight%3D535464</URL>
 
                    <Segments>
 
<!--SegNum - Номер сегмента в перелёте, обязательный-->
 
                        <Segment SegNum="1">
 
  <!--Аэропорт отправления. Обязательный-->
 
                          <DepAirp CodeType="IATA">DME</DepAirp>
 
  <!--Терминал пункта отправления, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
 
                          <DepTerminal xsi:nil="true"/>
 
  <!--Аэропорт прибытия. Обязательный-->
 
                          <ArrAirp CodeType="IATA">LED</ArrAirp>
 
  <!--Терминал пункта прибытия, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
 
                          <ArrTerminal>1</ArrTerminal>
 
  <!--Авиакомпания перевозчик. Обязательный-->
 
                          <OpAirline>S7</OpAirline>
 
  <!--Авиакомпания, продающая перелёт. Обязательный-->
 
                          <MarkAirline>S7</MarkAirline>
 
  <!--Номер рейса. Обязательный-->
 
                          <FlightNumber>39</FlightNumber>
 
  <!--Тип воздушного судна, код. Обязательный-->
 
                          <AircraftType>320</AircraftType>
 
  <!--Дата и время отправления, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
 
                          <DepDateTime>2011-06-15T12:15:00</DepDateTime>
 
  <!--Дата и время прибытия, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
 
                          <ArrDateTime>2011-06-15T13:45:00</ArrDateTime>
 
  <!--Количество остановок. Обязательный-->
 
                          <StopNum>0</StopNum>
 
  <!--Код класса бронирования. Обязательный-->
 
                          <BookingCodes>
 
                              <BookingCode>O</BookingCode>
 
                          </BookingCodes>
 
  <!--Время перелёта, в минутах. Обязательный-->
 
                          <FlightTime>90</FlightTime>
 
  <!--Временные зоны точки отправления и прибытия. Необязательный-->
 
  <!--@departure временная зона аэропорта отправления, обязательный-->
 
  <!--@arrival - временная зона аэропорта прибытия, обязательный-->
 
                          <TimeZone xsi:nil="true"/>
 
  <!--Признак электронного билета. Значения: true или false. Обязательный-->
 
                          <ETicket>true</ETicket>
 
                        </Segment>
 
                    </Segments>
 
<!--информация о стоимости, может встречаться более 1 раза, обязательный-->
 
<!--@Refundable возвратный/невозвратный, true/false. Если пустое, то не известно, необязательный-->
 
                    <PricingInfo Refundable="true">
 
<!--Типы пассажиров с ценами, таксами и тп, может встречаться более 1 раза, необязательный-->
 
<!--@Type тип пассажира, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом, обязательный-->
 
<!--@Quantity Количество пассажиров данного типа, обязательный-->
 
                        <PassengerFare Type="ADT" Quantity="1">
 
  <!--Базовая стоимость, в базовой валюте, обязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                          <BaseFare Currency="RUB" Amount="3300"/>
 
  <!--Базовая стоимость, в эквивалентной валюте(валюте продажи), обязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                          <EquiveFare Currency="RUB" Amount="3300"/>
 
  <!--Суммарная стоимость в эквивалентной валюте, необязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                          <TotalFare Currency="RUB" Amount="3710"/>
 
  <!--Массив такс, необязательный-->
 
                          <Taxes>
 
  <!--Одна такса, обязательный-->
 
  <!--@CurCode код валюты, обязательный-->
 
  <!--@TaxCode код таксы, обязательный-->
 
  <!--@Amount сумма таксы, обязательный-->
 
                              <Tax CurCode="RUB" TaxCode="RU" Amount="41"/>
 
                              <Tax CurCode="RUB" TaxCode="YQ" Amount="369"/>
 
                          </Taxes>
 
  <!--Массив тарифов, необязательный-->
 
                          <Tariffs>
 
  <!--Тариф, обязательный-->
 
  <!--@Code код тарифа, обязательный-->
 
  <!--@SegNum номер сегмента, к которому применён тариф, обязательный-->
 
                              <Tariff Code="OPOOW" SegNum="1"/>
 
                          </Tariffs>
 
  <!--Строка расчёта цены, необязательный-->
 
                          <FareCalc xsi:nil="true"/>
 
  <!--Дата и время таймлимита по выписке в формате ГГГГ-MM-DDTЧЧ:ММ:СС, обязательный-->
 
                          <LastTicketDateTime>2011-05-27T23:59:00</LastTicketDateTime>
 
                        </PassengerFare>
 
                    </PricingInfo>
 
<!--Комиссии, обязательный-->
 
<!--@Currency, код валюты, обязательный-->
 
                    <Commission Currency="RUB">382.2</Commission>
 
<!--Сборы, обязательный-->
 
<!--@Currency, код валюты, обязательный-->
 
                    <Charges Currency="RUB">112</Charges>
 
                  </Flight>
 
  <!--Информация об агенстве, обязательный-->
 
  <!--@Name - название агентства, обязательный-->               
 
<Agency Name="">
 
<!--Телефон агентсва, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий,
 
A - агенство-->
 
<Telephone Type="">
 
<!--Номер телефона, обязательный-->
 
<PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->
 
<CountryAccessCode></CountryAccessCode>
 
<!--Код региона/города, необязательный-->
 
<AreaCityCode></AreaCityCode>
 
</Telephone>
 
<!--Адресс агенства. Обязательный.-->
 
<Address>
 
<!--Город. Обязательный.-->
 
<City></City>
 
<!--Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
 
<StreetAddress></StreetAddress>
 
<!--Почтовый индекс. Необязательный.-->
 
<PostalCode></PostalCode>
 
<!--Код страны (RU, UA и т.п.). Необязательный.-->
 
<CountryCode></CountryCode>
 
</Address>
 
</Agency>
 
                  <!--Маршрут квитанция, необязательный-->
 
  <!--@Encoding - кодировка, обязательный-->
 
  <!--@Format - формат, обязательный-->
 
  <ItinReceipts Encoding="" Format="">
 
                  <FareStored xsi:nil="true"/>
 
  <!--Список пассажиров, обязательный-->
 
                  <Travellers>
 
  <!--@Type тип пассажира, обязательный, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом-->
 
  <!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
 
  <!--@Num - порядковый номер пассажира , начинается с 1, обязательный-->
 
  <!--@LinkedTo - номер взрослого, к которому привязан младенец/ребёнок, необязательный-->
 
                    <Traveller Type="ADT" IsContact="true" Num="1">
 
<!--Тип питания, обязательный, возможные значения:
 
UNDEFINED - неизвестно
 
N - Нет питания
 
P - Алкогольные напитки в продаже
 
B - Завтрак
 
O - Холодная еда
 
C - Бесплатные алкогольные напитки
 
K - Континтальный завтрак
 
D - Обед
 
F - Еда в продаже
 
G - Еда/напитки в продаже
 
H - Горячая еда
 
L - Ланч
 
M - Еда
 
R - Освежающие еда/напитки бесплатно
 
V - Освежающие еда/напитки за отдельную плату
 
S - Закуска
 
-->
 
                        <Meal xsi:nil="true"/>
 
<!--Билет, необязательный-->
 
<!--@TickectNum - номер билета, обязательный-->
 
<Ticket TickectNum="" />
 
                        <Seats>
 
<!--Место пассажира в самолёте, обязательный-->
 
<!--@Number - номер места, обязательный-->
 
<!--@Characteristic - Характеристика места в соответствии со стандартом EDIFACT, необязательный-->
 
<!--@SmokingPreference - статус курения на этом месте, если Y - место для курящих, если N - место для некурящих, необязательный-->
 
<!--@SegmentNumber - номер сегмента в перелёте, обязательный-->
 
<Seat Number="" Characteristic="" SmokingPreference="" SegmentNumber=""/>
 
</Seats>
 
<!--Персональные данные, обязательный-->
 
<!--@DateOfBirth - дата рождения в формате dd.mm.yyyy (например 31.12.2000), обязательный-->
 
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
 
<!--@Gender - пол пассажира, обязательный, возможные значения:
 
M - мужской(Male)
 
F - женский(Female)-->
 
                        <PersonalInfo DateOfBirth="15.05.1975" Nationality="RU" Gender="M">
 
<!--Имя пассажира, обязательный-->
 
                          <FirstName>HKSFG</FirstName>
 
  <!--Фамилия пассажира, обязательный-->
 
                          <LastName>DFGDG</LastName>
 
  <!--Отчество пассажира, обязательный-->
 
                          <MiddleName>SHHHHHHH</MiddleName>
 
                        </PersonalInfo>
 
                        <!--Карточка часто летающего пассажира, необязательный -->
 
<!--@OpCode -  код авиакомпании, обязательный-->
 
<!--@Number - номер карточки, обязательный -->
 
<LoyaltyCard OpCode="" Number=""/>
 
                        <ContactInfo>
 
<!--Контактный email, необязательный-->
 
<EmailID></EmailID>
 
<!--Контактный телефон, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий-->
 
<Telephone Type="">
 
<!--Номер телефона, обязательный-->
 
<PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->
 
<CountryAccessCode></CountryAccessCode>
 
<!--Код региона/города, необязательный-->
 
<AreaCityCode></AreaCityCode>
 
</Telephone>
 
</ContactInfo>
 
<!--Паспортные данные, обязательный-->
 
<!--@DocType - тип документа, обязательный, возможные значения:
 
Р - Паспорт
 
A – Паспорт иностранца
 
С - Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
М - Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
V – Документ для пересечения границы-->
 
<!--@DocNum - номер документа, обязательный-->
 
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
 
<!--@DocElapsedTime - Срок истечения срока действия паспорта в dd.mm.yyyy (например 31.12.2000), обязательный-->
 
                        <DocumentInfo DocType="P" DocNum="1234123456" CountryCode="RU" DocElapsedTime="15.06.2025"/>
 
<!--информация о визе, необязательная.(Заполняется через SSR DOCO)
 
@Num - номер визы, обязательный
 
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
 
@IssueCountry - страна выдачи визы, обязательный
 
@IssuePlace - место выдачи визы, обязательный
 
@BirthCountry - страна рождения(IATA код страны), необязательный
 
@BirthCity - город рождения(название), необязательный
 
-->
 
<VisaInfo Num="" IssueDate="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity=""/>
 
                        <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
 
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
 
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
 
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
<ArrAddress CountryCode="" State="" PostalCode="" City="" StreetAddress=""/>
 
                        <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
<PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
                        <DocStringFormats>
 
<!--Формат паспортной строки, обязательный, возможные значения:
 
DOCS - строка формата DOCS,
 
FOID - строка формата FOID-->
 
<DocStringFormat></DocStringFormat>
 
</DocStringFormats>
 
                    </Traveller>
 
                  </Travellers>
 
              </BookFlight>
 
              <Requisites/>
 
              <RequestType xsi:nil="true"/>
 
              <UserID xsi:nil="true"/>
 
              <Errors xsi:nil="true"/>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:BookFlightResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope></pre></div>
 
  
== Перелет Москва - Санкт-Петербург ==
+
== Перелет туда-обратно ==
  
'''REQUEST'''
 
<pre><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://localhost/nemoflights/?version%3D1.0%26for%3DBookFlight">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:BookFlight>
 
        <RequestBin>
 
            <Request>
 
              <BookFlight>
 
                  <!--@FlightId ид перелёта в системе Немо, обязательный-->
 
  <FlightId>534339</FlightId>
 
                  <!--Валидирующий перевозчик (тот кто выписывает билет), необязательный-->
 
  <ValidatingCompany>SU</ValidatingCompany>
 
                  <!--Код класс перелёта, один для каждого сегмента в перелёте, необязательный-->
 
  <BookingCodes>
 
                    <!--@Code - код класса перелёта, обязательный-->
 
<!--@SegNumber - номер сегмента в перелёте (начинаются с 1), обязательный-->
 
<BookingCode Code="Q" SegNumber="1"/>
 
                  </BookingCodes>
 
                  <!--Код валюты, необязательный-->
 
  <CurrencyCode>RUB</CurrencyCode>   
 
                  <!--Оплатить не позже, формат: ГГГГ-ММ-ДДTЧЧ:мм:СС, необязательный-->
 
  <TicketTimeLimit>2011-06-20 00:00:00</TicketTimeLimit>
 
                  <!--Информация об агенстве, обязательный-->
 
  <!--@Name - название агентства, обязательный-->
 
                  <Agency Name="">
 
<!--Телефон агентсва, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий,
 
A - агенство-->
 
                    <Telephone Type="">
 
                        <!--Номер телефона, обязательный-->
 
                        <PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->                       
 
<CountryAccessCode></CountryAccessCode>
 
                        <!--Код региона/города, необязательный-->
 
                        <AreaCityCode></AreaCityCode>
 
                    </Telephone>
 
<!--Адресс агенства. Обязательный.-->
 
<!--@ City - Город. Обязательный.-->
 
<!--@StreetAddress - Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
 
<!--@PostalCode - Почтовый индекс. Необязательный.-->
 
<!--@CountryCode - Код страны (RU, UA и т.п.). Необязательный.-->
 
                    <Address City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                  </Agency>
 
  <!--Список пассажиров, обязательный-->
 
                  <Travellers>
 
                    <Travellers>
 
<!--Информация о пассажире, обязательный-->
 
<!--@Type - тип пассажира, обязательный, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом-->
 
<!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
 
<!--@Num - порядковый номер пассажира, начинается с 1, обязательный-->
 
<!--@TravellerId - id пользователя в БД, необязательный-->
 
<Traveller Type="ADT" IsContact="true"  Num="1" TravellerId="32738"/>
 
<!--Код типа питания, необязательный, возможные значения:
 
NONE - отсутствует
 
AVML - Азиатская вегетарианская кухня
 
BLML - Блюда щадящей диеты
 
CHML - Детское питание
 
CHPC - Детский холодный завтрак
 
СНСС - Детский горячий завтрак
 
CHHC - Детский ланч, ветчина и сыр
 
PBJS - Детский ланч, ореховое масло
 
CHMC - Детский обед макароны с сыром
 
DBML - Диабетическое питание
 
FPML - Фрукты
 
GFML - Питание без клейковины
 
HFML - Питание богатое клетчаткой
 
HNML - Индусская кухня
 
BBML - Питание для младенцев
 
KSML - Кошерная кухня
 
SMKB - Кошерный завтрак
 
SMKL - Кошерный ланч
 
SMKD - Кошерный обед
 
LPML - Малобелковое питание
 
LCML - Низкокалорийное питание
 
LFML - Низкохолестериновое питание
 
PRML - Низкопуриновое питание
 
LSML - Малосоленое питание
 
MOML - Мюсли
 
NLML - Безмолочные продукты
 
ORML - Восточная кухня
 
RVML - Сырые овощи
 
SFML - Морепродукты
 
SPML - Особое питание
 
VLML - Вегетарианское, молоко и яйца
 
VGML - Строго вегетарианское питание
 
VJML - Джайнизское вегетарианское
 
VOML - Восточное вегетарианское питание-->
 
                        <Meal></Meal>
 
                        <!--Персональные данные, обязательный-->
 
<!--@DateOfBirth - дата рождения в формате yyyy-mm-dd (например 2000-12-31), обязательный-->
 
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
 
<!--@Gender - пол пассажира, обязательный, возможные значения:
 
M - мужской(Male)
 
F - женский(Female)-->
 
                        <PersonalInfo DateOfBirth="1975-05-15" Nationality="RU" Gender="M">
 
                          <!--Имя пассажира, обязательный-->
 
<FirstName>Ivan</FirstName>
 
<!--Фамилия пассажира, обязательный-->
 
<LastName>Ivanov</LastName>
 
<!--Отчество пассажира, обязательный-->
 
                            <MiddleName></MiddleName>
 
                        </PersonalInfo>
 
                        <!--Карточка часто летающего пассажира, необязательный -->
 
<!--@OpCode - код авиакомпании, обязательный-->
 
<!--@Number - номер карточки, обязательный-->
 
                        <LoyaltyCard OpCode="" Number=""/>
 
                        <!--Контактная информация, необязательный-->
 
                        <ContactInfo>
 
                          <!--Контактный email, необязательный-->
 
                          <EmailID></EmailID>
 
                          <!--Контактный телефон, необязательный-->
 
  <!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий-->
 
                          <Telephone Type="">
 
                              <!--Номер телефона, обязательный-->
 
                              <PhoneNumber></PhoneNumber>
 
                              <!--Код страны, необязательный-->
 
                              <CountryAccessCode></CountryAccessCode>
 
                              <!--Код региона/города, необязательный-->
 
                              <AreaCityCode></AreaCityCode>
 
                          </Telephone>
 
                        </ContactInfo>
 
                        <!--Паспортные данные, обязательный-->
 
<!--@DocType - тип документа, обязательный, возможные значения:
 
Р - Паспорт
 
A – Паспорт иностранца
 
С - Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
М - Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
V – Документ для пересечения границы-->
 
<!--@DocNum - номер документа, обязательный-->
 
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
 
<!--@DocElapsedTime - Срок истечения срока действия паспорта в yyyy-mm-dd (например 2000-12-31), обязательный-->
 
                        <DocumentInfo DocType="P" DocNum="1234123456" CountryCode="RU" DocElapsedTime="2025-06-15"/>
 
                        <!--информация о визе, необязательная.(Заполняется через SSR DOCO)
 
@Num - номер визы, обязательный
 
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
 
@IssueCountry - страна выдачи визы, обязательный
 
@IssuePlace - место выдачи визы, обязательный
 
@BirthCountry - страна рождения(IATA код страны), необязательный
 
@BirthCity - город рождения(название), необязательный
 
-->
 
                        <VisaInfo Num="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity="" IssueDate=""/>
 
                        <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
 
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
 
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
 
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
                        <ArrAddress City="" State="" StreetAddress="" PostalCode="" CountryCode=""/>
 
                        <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
                        <PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
                        <!--Список форматов строк паспортных данных, необязательный-->
 
                        <DocStringFormats>
 
                          <!--Формат паспортной строки, обязательный, возможные значения:
 
DOCS - строка формата DOCS,
 
FOID - строка формата FOID-->
 
                          <DocStringFormat></DocStringFormat>
 
                        </DocStringFormats>
 
                    </Traveller>
 
                  </Travellers>
 
                  <!--Номер очереди, в которую необходимо поместить бронирование. Строка, необязательный-->
 
                  <QueueNum></QueueNum>
 
              </BookFlight>
 
            </Request>
 
            <!--Авторизация, обязательный-->
 
<!--@ClientId, идентификатор клиента, обязательный-->
 
<!--@APIKey, API ключ клиента, обязательный-->
 
<!--@Language, код языка, обязательный-->
 
<!--@Currency код валюты, обязательный-->
 
            <Source>
 
<ClientId>102</ClientId>
 
<APIKey>7F48365D42B73307C99C12A578E92B36</APIKey>
 
<Language>RU</Language>
 
<Currency>RUB</Currency>
 
</Source>
 
        </RequestBin>
 
      </ver:BookFlight>
 
  </soapenv:Body>
 
</soapenv:Envelope></pre>
 
  
'''RESPONSE'''
 
<pre><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://localhost/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <SOAP-ENV:Body>
 
      <ns1:BookFlightResponse>
 
        <ResponseBin>
 
            <Response>
 
<!--Ответ, обязательный-->
 
<!--@ID - Id брони в системе немо, целое число, обязательный-->
 
<!--@Status - Индикатор состояния брони, обязательный, возможные значения:
 
booked - забронировано,
 
canceled - бронь отменена,
 
ticket - выписана
 
UNDEFINED - статус не определён
 
-->
 
<!--@Code - Код брони в системе бронирования/поиска (sabre, sirena и т.д.), строка, обязательный-->
 
              <BookFlight ID="21282" Status="booked" Code="QSSRL0">
 
  <!--Положение брони в очереди, необязательный-->
 
  <!--@Number - номер брони в очереди, обязательный-->
 
                  <QueryPlace xsi:nil="true"/>
 
  <!--@FlightId - Id перелёта в системе Немо, обязательный-->
 
                  <Flight FlightId="535464">
 
<!--Веб-сервис из которого получен перелёт, обязательный-->
 
                    <WebService>GALILEO</WebService>
 
<!--Код авиакомпании - валидирующего перевозчика, IATA, обязательный-->
 
                    <ValCompany>S7</ValCompany>
 
                    <URL>http%3A%2F%2Flocalhost%2F%3Fgo%3Dbooking%2Finfo%26uid%3D26664%26flight%3D535464</URL>
 
                    <Segments>
 
<!--SegNum - Номер сегмента в перелёте, обязательный-->
 
                        <Segment SegNum="1">
 
  <!--Аэропорт отправления. Обязательный-->
 
                          <DepAirp CodeType="IATA">DME</DepAirp>
 
  <!--Терминал пункта отправления, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
 
                          <DepTerminal xsi:nil="true"/>
 
  <!--Аэропорт прибытия. Обязательный-->
 
                          <ArrAirp CodeType="IATA">LED</ArrAirp>
 
  <!--Терминал пункта прибытия, если пустое значение, то терминала нет, т.е. в аэропорту всего 1 терминал, необязательный-->
 
                          <ArrTerminal>1</ArrTerminal>
 
  <!--Авиакомпания перевозчик. Обязательный-->
 
                          <OpAirline>S7</OpAirline>
 
  <!--Авиакомпания, продающая перелёт. Обязательный-->
 
                          <MarkAirline>S7</MarkAirline>
 
  <!--Номер рейса. Обязательный-->
 
                          <FlightNumber>39</FlightNumber>
 
  <!--Тип воздушного судна, код. Обязательный-->
 
                          <AircraftType>320</AircraftType>
 
  <!--Дата и время отправления, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
 
                          <DepDateTime>2011-06-15T12:15:00</DepDateTime>
 
  <!--Дата и время прибытия, формат ГГГГ-MM-DDTЧЧ:ММ:СС. Обязательный-->
 
                          <ArrDateTime>2011-06-15T13:45:00</ArrDateTime>
 
  <!--Количество остановок. Обязательный-->
 
                          <StopNum>0</StopNum>
 
  <!--Код класса бронирования. Обязательный-->
 
                          <BookingCodes>
 
                              <BookingCode>O</BookingCode>
 
                          </BookingCodes>
 
  <!--Время перелёта, в минутах. Обязательный-->
 
                          <FlightTime>90</FlightTime>
 
  <!--Временные зоны точки отправления и прибытия. Необязательный-->
 
  <!--@departure временная зона аэропорта отправления, обязательный-->
 
  <!--@arrival - временная зона аэропорта прибытия, обязательный-->
 
                          <TimeZone xsi:nil="true"/>
 
  <!--Признак электронного билета. Значения: true или false. Обязательный-->
 
                          <ETicket>true</ETicket>
 
                        </Segment>
 
                    </Segments>
 
<!--информация о стоимости, может встречаться более 1 раза, обязательный-->
 
<!--@Refundable возвратный/невозвратный, true/false. Если пустое, то не известно, необязательный-->
 
                    <PricingInfo Refundable="true">
 
<!--Типы пассажиров с ценами, таксами и тп, может встречаться более 1 раза, необязательный-->
 
<!--@Type тип пассажира, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом, обязательный-->
 
<!--@Quantity Количество пассажиров данного типа, обязательный-->
 
                        <PassengerFare Type="ADT" Quantity="1">
 
  <!--Базовая стоимость, в базовой валюте, обязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                          <BaseFare Currency="RUB" Amount="3300"/>
 
  <!--Базовая стоимость, в эквивалентной валюте(валюте продажи), обязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                          <EquiveFare Currency="RUB" Amount="3300"/>
 
  <!--Суммарная стоимость в эквивалентной валюте, необязательный-->
 
  <!--@Currency код валюты, @Amount значение цены, обязательный-->
 
                          <TotalFare Currency="RUB" Amount="3710"/>
 
  <!--Массив такс, необязательный-->
 
                          <Taxes>
 
  <!--Одна такса, обязательный-->
 
  <!--@CurCode код валюты, обязательный-->
 
  <!--@TaxCode код таксы, обязательный-->
 
  <!--@Amount сумма таксы, обязательный-->
 
                              <Tax CurCode="RUB" TaxCode="RU" Amount="41"/>
 
                              <Tax CurCode="RUB" TaxCode="YQ" Amount="369"/>
 
                          </Taxes>
 
  <!--Массив тарифов, необязательный-->
 
                          <Tariffs>
 
  <!--Тариф, обязательный-->
 
  <!--@Code код тарифа, обязательный-->
 
  <!--@SegNum номер сегмента, к которому применён тариф, обязательный-->
 
                              <Tariff Code="OPOOW" SegNum="1"/>
 
                          </Tariffs>
 
  <!--Строка расчёта цены, необязательный-->
 
                          <FareCalc xsi:nil="true"/>
 
  <!--Дата и время таймлимита по выписке в формате ГГГГ-MM-DDTЧЧ:ММ:СС, обязательный-->
 
                          <LastTicketDateTime>2011-05-27T23:59:00</LastTicketDateTime>
 
                        </PassengerFare>
 
                    </PricingInfo>
 
<!--Комиссии, обязательный-->
 
<!--@Currency, код валюты, обязательный-->
 
                    <Commission Currency="RUB">382.2</Commission>
 
<!--Сборы, обязательный-->
 
<!--@Currency, код валюты, обязательный-->
 
                    <Charges Currency="RUB">112</Charges>
 
                  </Flight>
 
  <!--Информация об агенстве, обязательный-->
 
  <!--@Name - название агентства, обязательный-->               
 
<Agency Name="">
 
<!--Телефон агентсва, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий,
 
A - агенство-->
 
<Telephone Type="">
 
<!--Номер телефона, обязательный-->
 
<PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->
 
<CountryAccessCode></CountryAccessCode>
 
<!--Код региона/города, необязательный-->
 
<AreaCityCode></AreaCityCode>
 
</Telephone>
 
<!--Адресс агенства. Обязательный.-->
 
<Address>
 
<!--Город. Обязательный.-->
 
<City></City>
 
<!--Адрес в городе (улица, дом, корпус, офис и т.д.). Необязательный.-->
 
<StreetAddress></StreetAddress>
 
<!--Почтовый индекс. Необязательный.-->
 
<PostalCode></PostalCode>
 
<!--Код страны (RU, UA и т.п.). Необязательный.-->
 
<CountryCode></CountryCode>
 
</Address>
 
</Agency>
 
                  <!--Маршрут квитанция, необязательный-->
 
  <!--@Encoding - кодировка, обязательный-->
 
  <!--@Format - формат, обязательный-->
 
  <ItinReceipts Encoding="" Format="">
 
                  <FareStored xsi:nil="true"/>
 
  <!--Список пассажиров, обязательный-->
 
                  <Travellers>
 
  <!--@Type тип пассажира, обязательный, возможные значения:
 
ADT - взрослые,
 
CNN - дети со взрослыми,
 
UNN - дети без сопровождения взрослых,
 
INF - младенцы,
 
INS - младенцы с местом-->
 
  <!--@IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false, обязательный-->
 
  <!--@Num - порядковый номер пассажира , начинается с 1, обязательный-->
 
  <!--@LinkedTo - номер взрослого, к которому привязан младенец/ребёнок, необязательный-->
 
                    <Traveller Type="ADT" IsContact="true" Num="1">
 
<!--Тип питания, обязательный, возможные значения:
 
UNDEFINED - неизвестно
 
N - Нет питания
 
P - Алкогольные напитки в продаже
 
B - Завтрак
 
O - Холодная еда
 
C - Бесплатные алкогольные напитки
 
K - Континтальный завтрак
 
D - Обед
 
F - Еда в продаже
 
G - Еда/напитки в продаже
 
H - Горячая еда
 
L - Ланч
 
M - Еда
 
R - Освежающие еда/напитки бесплатно
 
V - Освежающие еда/напитки за отдельную плату
 
S - Закуска
 
-->
 
                        <Meal xsi:nil="true"/>
 
<!--Билет, необязательный-->
 
<!--@TickectNum - номер билета, обязательный-->
 
<Ticket TickectNum="" />
 
                        <Seats>
 
<!--Место пассажира в самолёте, обязательный-->
 
<!--@Number - номер места, обязательный-->
 
<!--@Characteristic - Характеристика места в соответствии со стандартом EDIFACT, необязательный-->
 
<!--@SmokingPreference - статус курения на этом месте, если Y - место для курящих, если N - место для некурящих, необязательный-->
 
<!--@SegmentNumber - номер сегмента в перелёте, обязательный-->
 
<Seat Number="" Characteristic="" SmokingPreference="" SegmentNumber=""/>
 
</Seats>
 
<!--Персональные данные, обязательный-->
 
<!--@DateOfBirth - дата рождения в формате dd.mm.yyyy (например 31.12.2000), обязательный-->
 
<!--@Nationality - национальность(гражданство?), двух буквенный код страны (RU, UA, US и т.д.), обязательный-->
 
<!--@Gender - пол пассажира, обязательный, возможные значения:
 
M - мужской(Male)
 
F - женский(Female)-->
 
                        <PersonalInfo DateOfBirth="01.05.1981" Nationality="AU" Gender="M">
 
<!--Имя пассажира, обязательный-->
 
                          <FirstName>ANDREW</FirstName>
 
  <!--Фамилия пассажира, обязательный-->
 
                          <LastName>RESH</LastName>
 
  <!--Отчество пассажира, обязательный-->
 
                          <MiddleName>SARAT</MiddleName>
 
                        </PersonalInfo>
 
                        <!--Карточка часто летающего пассажира, необязательный -->
 
<!--@OpCode -  код авиакомпании, обязательный-->
 
<!--@Number - номер карточки, обязательный -->
 
<LoyaltyCard OpCode="" Number=""/>
 
                        <ContactInfo>
 
<!--Контактный email, необязательный-->
 
<EmailID></EmailID>
 
<!--Контактный телефон, необязательный-->
 
<!--@Type - тип номера, обязательный, возможные значения:
 
M - мобильный,
 
H - домашний,
 
B - рабочий-->
 
<Telephone Type="">
 
<!--Номер телефона, обязательный-->
 
<PhoneNumber></PhoneNumber>
 
<!--Код страны, необязательный-->
 
<CountryAccessCode></CountryAccessCode>
 
<!--Код региона/города, необязательный-->
 
<AreaCityCode></AreaCityCode>
 
</Telephone>
 
</ContactInfo>
 
<!--Паспортные данные, обязательный-->
 
<!--@DocType - тип документа, обязательный, возможные значения:
 
Р - Паспорт
 
A – Паспорт иностранца
 
С - Внутренний гражданский паспорт
 
F – Документ заменяющий паспорт
 
М - Воинское удостоверение
 
N – Сертификат натурализации(специфичный документ США)
 
T – Док.повторного въезда, паспорт беженца
 
V – Документ для пересечения границы-->
 
<!--@DocNum - номер документа, обязательный-->
 
<!--@CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.), обязательный-->
 
<!--@DocElapsedTime - Срок истечения срока действия паспорта в dd.mm.yyyy (например 31.12.2000), обязательный-->
 
                        <DocumentInfo DocType="P" DocNum="3254253345" CountryCode="AU" DocElapsedTime="29.05.2011"/>
 
<!--информация о визе, необязательная.(Заполняется через SSR DOCO)
 
@Num - номер визы, обязательный
 
@IssueDate - дата(dd.mm.yyyy) выдачи визы, обязательный
 
@IssueCountry - страна выдачи визы, обязательный
 
@IssuePlace - место выдачи визы, обязательный
 
@BirthCountry - страна рождения(IATA код страны), необязательный
 
@BirthCity - город рождения(название), необязательный
 
-->
 
<VisaInfo Num="" IssueDate="" IssueCountry="" IssuePlace="" BirthCountry="" BirthCity=""/>
 
                        <!--Адрес прибытия, необязательный.(Заполняется через SSR DOCA)
 
Но для въезжающих в США(неграждан США) информация является обязательной. Если она не заполняется
 
при оформлении брони, то её всё равно придётся заполнить при посадке на самолёт.
 
@CountryCode - Код страны. Обязательный
 
@State - Штат или область въезда. Обязательный
 
@PostalCode - Почтовый код. Обязательный
 
@City - Город. Обязательный
 
@StreetAddress - Адрес: улица, номер дома, квартиры и тп. Обязательный
 
-->
 
<ArrAddress CountryCode="" State="" PostalCode="" City="" StreetAddress=""/>
 
                        <!--Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры @Smoking и @Location игнорируются и могут быть не указаны. Необязательный-->
 
<!--@SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих, необязательный-->
 
<!--@Location - положение места в ряде, необязательный, возможные значения:
 
W - у окна (Window)
 
M - где-то в середине ряда (Middle)
 
NPW - возле прохода (NearPassengerWay)
 
NS - нет предпочтения (NotSpecified)
 
-->
 
<!--@RowNumber - Номер ряда, строка, необязательный-->
 
<!--@PlaceNumber - Номер места, строка, необязательный-->
 
<!--@SegNumber - Номер сегмента, строка, обязательный-->
 
<PreferedPlace SmokingAllowed="" Location="" RowNumber="" PlaceNumber="" SegNumber=""/>
 
                        <DocStringFormats>
 
<!--Формат паспортной строки, обязательный, возможные значения:
 
DOCS - строка формата DOCS,
 
FOID - строка формата FOID-->
 
<DocStringFormat></DocStringFormat>
 
</DocStringFormats>
 
                    </Traveller>
 
                  </Travellers>
 
              </BookFlight>
 
              <Requisites/>
 
              <RequestType xsi:nil="true"/>
 
              <UserID xsi:nil="true"/>
 
              <Errors xsi:nil="true"/>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:BookFlightResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope></pre>
 
  
 
== См. также ==
 
== См. также ==

Версия 12:09, 13 марта 2014

Запросы

  • Запрос на бронирование
  • Односторонний перелет. Бронирование
  • Бронирование через TravellerId

Общий формат запроса / ответа

Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр - «FlightId» - Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.

Запрос

  1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight">
  2    <soapenv:Header/>
  3    <soapenv:Body>
  4       <ver:BookFlight>
  5          <RequestBin>
  6             <Request>
  7                <BookFlight>
  8                   <FlightId>?</FlightId>
  9                   <!--FlightId - Id перелёта в системе Немо-->
 10                   <!--Optional:-->
 11                   <ValidatingCompany>?</ValidatingCompany> <!--необязательный-->
 12                   <!--ValidatingCompany - валидирующий перевозчик (тот кто выписывает билет)-->
 13                   <!--Optional:-->
 14                   <BookingCodes>
 15                      <!--Zero or more repetitions:-->
 16                      <BookingCode Code="?" SegNumber="?"/>
 17                      <!--Code - код класса перелёта-->
 18 	             <!--SegNumber - номер сегмента в перелёте (начинаются с 1)-->
 19                   </BookingCodes>
 20                   <!--Optional:-->
 21                   <CurrencyCode>?</CurrencyCode> <!--необязательный-->
 22                   <!--CurrencyCode - код валюты-->
 23                   <!--Optional:-->
 24                   <TicketTimeLimit>?</TicketTimeLimit> <!--необязательный-->
 25                   <!--TicketTimeLimit - таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС-->
 26                   <!--Optional:-->
 27                   <Agency Name="?"> <!--необязательный-->
 28                   <!--Name - название агентства-->
 29                      <Telephone Type="?">
 30                      <!--Type - тип номера, обязательный, возможные значения: 
 31                       M - мобильный, H - домашний, B - рабочий, A - агенство-->
 32                         <!--Optional:-->
 33                         <PhoneNumber>?</PhoneNumber>
 34                         <!--PhoneNumber - номер телефона-->
 35                         <!--Optional:-->
 36                         <CountryAccessCode>?</CountryAccessCode> <!--необязательный-->
 37                         <!--CountryAccessCode - код страны-->
 38                         <!--Optional:-->
 39                         <AreaCityCode>?</AreaCityCode> <!--необязательный-->
 40                         <!--AreaCityCode - код региона/города-->
 41                      </Telephone>
 42                      <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
 43                      <!--City - город-->
 44 		     <!--State - штат-->
 45 		     <!--StreetAddress - адрес в городе (улица, дом, корпус, офис и т.д.)-->
 46 		     <!--PostalCode - почтовый индекс-->
 47 		     <!--CountryCode - код страны (RU, UA и т.п.)-->
 48 		  </Agency>
 49                   <Travellers>
 50                      <!--Zero or more repetitions:-->
 51                      <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
 52                      <!--Type - тип пассажира, обязательный, возможные значения: ADT - взрослые,
 53                       CNN - дети со взрослыми,UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом-->
 54 		     <!--IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
 55 		      контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них 
 56                       может быть контактным лицом, по умолчанию false-->
 57 		     <!--Num - порядковый номер пассажира, начинается с 1-->
 58                      <!--LinkedTo - номер взрослого, к которому привязан младенец/ребёнок--> <!--необязательный-->
 59                      <!--TravellerId - индивидуальный номер пассажира--> <!--необязательный-->
 60                         <Meal>?</Meal> <!--необязательный-->
 61                         <!--Meal - код типа питания, возможные значения:
 62 						NONE - отсутствует
 63 						AVML - Азиатская вегетарианская кухня
 64 						BLML - Блюда щадящей диеты
 65 						CHML - Детское питание
 66 						CHPC - Детский холодный завтрак
 67 						СНСС - Детский горячий завтрак
 68 						CHHC - Детский ланч, ветчина и сыр
 69 						PBJS - Детский ланч, ореховое масло
 70 						CHMC - Детский обед макароны с сыром
 71 						DBML - Диабетическое питание
 72 						FPML - Фрукты
 73 						GFML - Питание без клейковины
 74 						HFML - Питание богатое клетчаткой
 75 						HNML - Индусская кухня
 76 						BBML - Питание для младенцев
 77 						KSML - Кошерная кухня
 78 						SMKB - Кошерный завтрак
 79 						SMKL - Кошерный ланч
 80 						SMKD - Кошерный обед
 81 						LPML - Малобелковое питание
 82 						LCML - Низкокалорийное питание
 83 						LFML - Низкохолестериновое питание
 84 						PRML - Низкопуриновое питание
 85 						LSML - Малосоленое питание
 86 						MOML - Мюсли
 87 						NLML - Безмолочные продукты
 88 						ORML - Восточная кухня
 89 						RVML - Сырые овощи
 90 						SFML - Морепродукты
 91 						SPML - Особое питание
 92 						VLML - Вегетарианское, молоко и яйца
 93 						VGML - Строго вегетарианское питание
 94 						VJML - Джайнизское вегетарианское
 95 						VOML - Восточное вегетарианское питание-->
 96                         <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
 97                         <!--DateOfBirth - дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
 98 			<!--Nationality - гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
 99 			<!--Gender - пол пассажира, возможные значения: M - мужской(Male), F - женский(Female)-->
100                            <FirstName>?</FirstName>
101                            <!--FirstName - имя пассажира-->
102                            <LastName>?</LastName>
103                            <!--LastName - фамилия пассажира-->
104                            <!--Optional:-->
105                            <MiddleName>?</MiddleName> <!--необязательный-->
106                            <!--MiddleName - отчество пассажира-->
107                         </PersonalInfo>
108                         <LoyaltyCard OpCode="?" Number="?"/> <!--необязательный-->
109                         <!--OpCode - код авиакомпании-->
110 			<!--Number - номер карточки-->
111                         <ContactInfo> //необязательный
112                            <!--Optional:-->
113                            <EmailID>?</EmailID>
114                            <!--EmailID - контактный email-->
115                            <!--Optional:-->
116                            <Telephone Type="?">
117                            <!--Type - тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий-->
118                               <!--Optional:-->
119                               <PhoneNumber>?</PhoneNumber>
120                               <!--PhoneNumber - номер телефона-->
121                               <!--Optional:-->
122                               <CountryAccessCode>?</CountryAccessCode>
123                               <!--CountryAccessCode - код страны-->
124                               <!--Optional:-->
125                               <AreaCityCode>?</AreaCityCode>
126                               <!--AreaCityCode - код региона/города-->
127                            </Telephone>
128                         </ContactInfo>
129                         <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
130                         <!--DocType - тип документа, возможные значения:
131 								Р - Паспорт
132 								A – Паспорт иностранца
133 								С - Внутренний гражданский паспорт
134 								F – Документ заменяющий паспорт
135 								М - Воинское удостоверение
136 								N – Сертификат натурализации(специфичный документ США)
137 								T – Док.повторного въезда, паспорт беженца
138 								V – Документ для пересечения границы-->
139 			<!--DocNum - номер документа-->
140 			<!--CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
141 			<!--DocElapsedTime - срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
142                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> 
143                         //необязательный
144                         <!--Num - номер визы-->
145                         <!--IssueDate - дата(ДД.ММ.ГГГГ) выдачи визы-->
146                         <!--IssueCountry - страна выдачи визы-->
147                         <!--IssuePlace - место выдачи визы-->
148                         <!--BirthCountry - страна рождения(IATA код страны)-->
149                         <!--BirthCity - город рождения(название)-->
150                         <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
151                         <!--City - город-->
152 			<!--State - штат или область въезда-->
153 			<!--StreetAddress - адрес: улица, номер дома, квартиры и т.д.-->
154 			<!--PostalCode - почтовый код-->
155 			<!--CountryCode - код страны-->
156                         <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> 
157                         <!--необязательный-->
158                         <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
159 			<!--SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих-->
160 			<!--Location - положение места в ряде, возможные значения:
161 							W - у окна (Window)
162 							M - где-то в середине ряда (Middle)
163 							NPW - возле прохода (NearPassengerWay)
164 							NS - нет предпочтения (NotSpecified)-->
165 			<!--RowNumber - номер ряда-->
166 			<!--PlaceNumber - номер места-->
167 			<!--SegNumber - номер сегмента-->
168                         <DocStringFormats>
169                            <!--Zero or more repetitions:-->
170                            <DocStringFormat>?</DocStringFormat>
171                            <!--DocStringFormat - формат паспортной строки, возможные значения: 
172                             DOCS - строка формата DOCS, FOID - строка формата FOID-->
173                         </DocStringFormats>
174                      </Traveller>
175                   </Travellers>
176                   <!--Optional:-->
177                   <QueueNum>?</QueueNum> <!--необязательный-->
178                   <!--QueueNum - номер очереди, в которую необходимо поместить бронирование-->
179                </BookFlight>
180             </Request>
181             <Source>
182                <ClientId>?</ClientId>
183                <!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе 
184                 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
185                <APIKey>?</APIKey>
186                <!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе 
187                 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
188                <Language>?</Language>
189                <!--Language - язык-->
190                <Currency>?</Currency>
191                <!-- CUrrency - валюта-->
192             </Source>
193          </RequestBin>
194       </ver:BookFlight>
195    </soapenv:Body>
196 </soapenv:Envelope>

Запрос

Примеры использования

Односторонний перелет

Перелет туда-обратно

См. также