Изменения

Перейти к навигации Перейти к поиску

Веб-служба бронирования

71 285 байт убрано, 12:09, 13 марта 2014
Нет описания правки
== Запросы ==
*Запрос на бронирование
*Бронирование через TravellerId
== Запрос на бронирование =Общий формат запроса / ответа =
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр - «FlightId» - Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
</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>
== См. также ==

Навигация

'