Открыть главное меню

Изменения

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

8872 байта добавлено, 18:44, 6 мая 2019
Нет описания правки
= Запросы = {{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
*Запрос на бронирование*Односторонний перелет. Бронирование*Бронирование через 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.=
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://trunk.mlsd.ruCLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
<soapenv:Header/>
<soapenv:Body>
<BookFlight>
<FlightId>?</FlightId>
<!--FlightId - Id перелёта в системе НемоNemo-->
<!--Optional:-->
<ValidatingCompanyBookId>?</ValidatingCompany> <!--необязательный--BookId> <!--ValidatingCompany - валидирующий перевозчик (тот кто выписывает билет)--> <!--Optional:--> <BookingCodes> <!--Zero or more repetitions:--> <BookingCode Code="?" SegNumber="?"/> <!--Code - код класса перелёта--> <!--SegNumber - номер сегмента BookId — Id заказа в системе Nemo, полученный в перелёте (начинаются с 1)ответе на запрос EmptyBook--> </BookingCodes>
<!--Optional:-->
<CurrencyCode>?</CurrencyCode> <!--необязательный-->
<!--CurrencyCode - код валюты--> <!--Optional:--> <TicketTimeLimit>?</TicketTimeLimit> <!--необязательный--> <!--TicketTimeLimit - таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС-->
<!--Optional:-->
<Agency Name="?"> <!--необязательный-->
<!--Name - название агентства-->
<Telephone Type="?">
<!--Type - тип номера, обязательный, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агенство-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber - номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode> <!--необязательный-->
<!--CountryAccessCode - код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode> <!--необязательный-->
<!--AreaCityCode - код региона/города-->
</Telephone>
<Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
<!--City - город--> <!--State - штат--> <!--StreetAddress - адрес в городе (улица, дом, корпус, офис и т.д.)--> <!--PostalCode - почтовый индекс--> <!--CountryCode - код страны (RU, UA и т.п.)-->
</Agency>
<Travellers>
<!--Zero or more repetitions:-->
<Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
<!--Type - тип пассажира, обязательный, возможные значения: ADT - взрослые, CNN - CLD — дети со взрослыми,UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом--> <!--IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
может быть контактным лицом, по умолчанию false-->
<!--Num - порядковый номер пассажира, начинается с 1--> <!--LinkedTo - номер взрослого, к которому привязан младенец/ребёнок(привязка ребёнка ко взрослому является опциональной)--> <!--необязательный--> <!--TravellerId - индивидуальный — актуализированный номер пассажира--> <!--необязательный, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
<Meal>?</Meal> <!--необязательный-->
<!--Meal - код типа питания, возможные значения: 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 - Восточное вегетарианское питание-->
<PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
<!--DateOfBirth - дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> <!--Nationality - гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> <!--Gender - пол пассажира, возможные значения: M - мужской(Male), F - женский(Female)-->
<FirstName>?</FirstName>
<!--FirstName - имя пассажира-->
<LastName>?</LastName>
<!--LastName - фамилия пассажира-->
<!--Optional:-->
<MiddleName>?</MiddleName> <!--необязательный-->
<!--MiddleName - отчество пассажира-->
</PersonalInfo>
<LoyaltyCard OpCode="?" Number="?"/> <!--необязательный-->
<!--OpCode - код авиакомпании--> <!--Number - номер карточки-->
<ContactInfo> <!--необязательный-->
<!--Optional:-->
<EmailID>?</EmailID>
<!--EmailID - контактный email-->
<!--Optional:-->
<Telephone Type="?">
<!--Type - тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber - номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode - код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode - код региона/города-->
</Telephone>
</ContactInfo>
<DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--необязательный--> <!--DocType - тип документа, возможные значения: Р - P — Паспорт
A – Паспорт иностранца
С - C — Внутренний гражданский паспорт
F – Документ заменяющий паспорт
М - M — Воинское удостоверение
N – Сертификат натурализации(специфичный документ США)
T – Док.повторного въезда, паспорт беженца
V – Документ для пересечения границы F – Свидетельство о рождении (только для ГРС Сирена Трэвел, для других ГРС рекомендуется использовать тип документа P)--> <!--DocNum - номер документа--> <!--CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> <!--DocElapsedTime - срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
<VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
<!--необязательный-->
<!--Num - номер визы--> <!--IssueDate - дата(ДД.ММ.ГГГГ) выдачи визы--> <!--IssueCountry - страна выдачи визы--> <!--IssuePlace - место выдачи визы--> <!--BirthCountry - страна рождения(IATA код страны)--> <!--BirthCity - город рождения(название)-->
<ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
<!--City - город--> <!--State - штат или область въезда--> <!--StreetAddress - адрес: улица, номер дома, квартиры и т.д.--> <!--PostalCode - почтовый код--> <!--CountryCode - код страны--> <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> <!--необязательный--> <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются--> <!--SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих--> <!--Location - положение места в ряде, возможные значения: W - у окна (Window) M - где-то в середине ряда (Middle) NPW - возле прохода (NearPassengerWay) NS - нет предпочтения (NotSpecified)--> <!--RowNumber - номер ряда--> <!--PlaceNumber - номер места--> <!--SegNumber - номер сегмента--> <DocStringFormats> <!--Zero or more repetitions:--> <DocStringFormat>?</DocStringFormat> <!--DocStringFormat - формат паспортной строки, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID--> </DocStringFormats> </Traveller>
</Travellers>
<!--Optional:-->
<QueueNumDeviceId> <!--необязательный--> <Type>?</QueueNumType> <!--необязательныйType — Тип мобильного устройства (apple/android)--> <Token>?</Token> <!--Token — Токен мобильного устройства--> </DeviceId> <Marker>?</Marker> <!--QueueNum - номер очереди, в которую необходимо поместить бронированиеMarker — Маркер пользователя--> </BookFlight>
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".-->
<APIKey>?</APIKey>
<!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".-->
<Language>?</Language>
<!--Language - язык-->
<Currency>?</Currency>
<!-- CUrrency — валюта--> <EndUserData> <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion--> <EndUserIP>123.123.123.123</EndUserIP> <!--IP адрес пользователя--> <EndUserBrowserAgent>firefox</EndUserBrowserAgent> <!--Браузер пользователя-- валюта> <RequestOrigin>Russia-nemo.travel</RequestOrigin> <!--Страна и домен, с которого пользователь совершает поиск/бронирование--> </EndUserData>
</Source>
</RequestBin>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
==== Ответ ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ruCLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:BookFlightResponse>
<Response>
<BookFlight ID="?" Status="?" Code="?">
<!--ID - Id брони в системе немоNemo, целое число, обязательный--> <!--Status - индикатор состояния брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана UNDEFINED - статус не определён--> <!--Code - код брони в системе поставщика-->
<QueryPlace xsi:nil="true"/>
<!--QueryPlace - положение брони в очереди, Number - номер брони в очереди--> <IsPossibleToTicket>?</IsPossibleToTicket> <!--IsPossibleToTicket — возможность провести выписку ПНРа, boolean-->
<Flight FlightId="?">
<!--FlightId - Id перелёта в системе Nemo-->
<WebService>?</WebService>
<!--WebService - поставщик перелёта-->
<ValCompany>?</ValCompany>
<!--ValCompany - код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
<URL>?</URL>
<!--URL - ссылка на бронирование конкретного перелета-->
<Segments>
<Segment SegNum="?" SegGroupNum="?">
<!--SegNum - номер сегмента в перелёте-->
<!--SegGroupNum – номер плеча перелёта-->
<SupplierCode>?</SupplierCode>
<!--SupplierCode – номер заказа в системе АК-->
<DepAirp CodeType="IATA">?</DepAirp>
<!--DepAirp - аэропорт отправления, например: MOW - любой аэропорт в г.Москва или SVO - Шереметьево-->
<DepTerminal>?</DepTerminal>
<!--DepTerminal - терминал пункта отправления, если пустое значение,
то в аэропорту всего 1 терминал-->
<ArrAirp CodeType="IATA">?</ArrAirp>
<!--ArrAirp - аэропорт прибытия-->
<ArrTerminal>?</ArrTerminal>
<!--ArrTerminal - терминал пункта прибытия, если пустое значение,
то в аэропорту всего 1 терминал-->
<OpAirline>?</OpAirline>
<!--OpAirline - авиакомпания перевозчик, например: SU - Аэрофлот-->
<MarkAirline>?</MarkAirline>
<!--MarkAirline - авиакомпания, продающая перелёт-->
<FlightNumber>?</FlightNumber>
<!--FlightNumber - номер рейса-->
<AircraftType>?</AircraftType>
<!--AircraftType - тип воздушного судна, код-->
<DepDateTime>?</DepDateTime>
<!--DepDateTime - дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<ArrDateTime>?</ArrDateTime>
<!--ArrDateTime - дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<StopNum>?</StopNum>
<!--StopNum - количество остановок--> <StopPoints> <!--StopPoints — информация о технических остановках, если они есть--> <StopPoint> <AirportCode>?</AirportCode> <!--AirportCode — код аэропорта остановки, трех символьный iata код--> <UTC>?</UTC> <!--UTC — сдвиг часового пояса аэропорта--> <ArrDateTime>?</ArrDateTime> <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <DepDateTime>?</DepDateTime> <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> </StopPoint> </StopPoints>
<BookingCodes>
<BookingCode ClassType="?">
<!--ClassType - класс перелета, например: economy-->
<BookingCode>?</BookingCode>
<!--BookingCode - код класса бронирования, у разных авиакомпаний один и тот же класс
может записываться разными литерами, например: L-->
</BookingCode>
</BookingCodes>
<FlightTime>?</FlightTime>
<!--FlightTime - время перелёта в минутах-->
<TimeZone Departure="?" Arrival="?"/>
<!--Departure временная зона аэропорта отправления-->
<!--Arrival - временная зона аэропорта прибытия-->
<ETicket>?</ETicket>
<!--ETicket - признак электронного билета, значения: true / false--> <isCharter>?</isCharter> <!--isCharter — признак чартерного перелета, значения: true / false--> <BaggageAllowances> <!--BaggageAllowances — информация о багаже--> <BaggageAllowance> <PassengerType>?</PassengerType> <!--PassengerType — тип пассажира, соответствует типу тарифа в PricingInfo --> <Value>?</Value> <!--Value — количество--> <Measurement>?</Measurement> <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт--> </BaggageAllowance> </BaggageAllowances>
</Segment>
</Segments>
<PricingInfo Refundable="?">
<!--Refundable - возвратный/невозвратный, true/false. Если пустое, то не известно-->
<PassengerFare Type="?" Quantity="?">
<!--Type - тип пассажира, возможные значения: ADT тарифа- взрослые, CNN - дети, > INF <!- младенцы, INS - младенцы с местомQuantity — количество пассажиров данного типа--> <TravellerRef> <!--Quantity TravellerRef — Ссылка на пассажиров, к которым относится данный тариф--> <Ref>?</Ref> <!-- количество Ref — Номера пассажиров данного типа, к которым относится данный тариф--> </TravellerRef>
<BaseFare Currency="?" Amount="?"/>
<!--BaseFare - базовая стоимость, в базовой валюте. Currency - код валюты, Amount - значение цены-->
<EquiveFare Currency="?" Amount="?"/>
<!--EquiveFare - базовая стоимость, в эквивалентной валюте(валюте продажи). Currency - код валюты, Amount - значение цены-->
<TotalFare Currency="?" Amount="?"/>
<!--TotalFare - суммарная стоимость, в эквивалентной валюте. Currency - код валюты, Amount - значение цены-->
<Taxes>
<Tax CurCode="?" TaxCode="?" Amount="?"/>
<!--CurCode - код валюты, TaxCode - код таксы, Amount - сумма таксы-->
</Taxes>
<Tariffs>
<Tariff Code="?" SegNum="?"/>
<!--Code - код тарифа, SegNum - номер сегмента, к которому применён тариф--> <FareFamilies> <FullName>?</FullName> <!--FullName — название тарифа--> </FareFamilies>
</Tariffs>
<FareCalc>?</FareCalc>
<!--FareCalc - строка расчёта цены-->
<LastTicketDateTime>?</LastTicketDateTime>
<!--LastTicketDateTime - дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
</PassengerFare>
</PricingInfo>
<Commission/>
<Charges Currency="?">?</Charges>
<!--Charges - сборы, Currency - код валюты-->
<TotalPrice Currency="?">?</TotalPrice>
<!--TotalPrice - итоговая цена, Currency - код валюты-->
</Flight>
<Agency Name="?">
<!--Name - название агентства-->
<Telephone Type="?">
<!--Type - тип номера, обязательный, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агенство-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber - номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode - код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode - код региона/города-->
</Telephone>
<Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
<!--City - город--> <!--State - штат--> <!--StreetAddress - адрес в городе (улица, дом, корпус, офис и т.д.)--> <!--PostalCode - почтовый индекс--> <!--CountryCode - код страны (RU, UA и т.п.)-->
</Agency>
<ItinReceipts Encoding="?" Format="?">
<!--ItinReceipts - маршрут квитанция, Encoding - кодировка, Format - формат-->
<FareStored xsi:nil="true"/>
<Travellers>
<!--Zero or more repetitions:-->
<Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
<!--Type - тип пассажира, обязательный, возможные значения: ADT - взрослые, CNN - CLD — дети со взрослыми,UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом--> <!--IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
может быть контактным лицом, по умолчанию false-->
<!--Num - порядковый номер пассажира, начинается с 1--> <!--LinkedTo - номер взрослого, к которому привязан младенец/ребёнок(привязка ребёнка ко взрослому является опциональной)--> <!--TravellerId - индивидуальный — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
<Meal>?</Meal>
<!--Meal - код типа питания, возможные значения: 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 - Восточное вегетарианское питание-->
<PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
<!--DateOfBirth - дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> <!--Nationality - гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> <!--Gender - пол пассажира, возможные значения: M - мужской(Male), F - женский(Female)-->
<FirstName>?</FirstName>
<!--FirstName - имя пассажира-->
<LastName>?</LastName>
<!--LastName - фамилия пассажира-->
<!--Optional:-->
<MiddleName>?</MiddleName>
<!--MiddleName - отчество пассажира-->
</PersonalInfo>
<LoyaltyCard OpCode="?" Number="?"/>
<!--OpCode - код авиакомпании--> <!--Number - номер карточки-->
<ContactInfo>
<!--Optional:-->
<EmailID>?</EmailID>
<!--EmailID - контактный email-->
<!--Optional:-->
<Telephone Type="?">
<!--Type - тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber - номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode - код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode - код региона/города-->
</Telephone>
</ContactInfo>
<DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
<!--DocType - тип документа, возможные значения: Р - Паспорт
A – Паспорт иностранца
С - Внутренний гражданский паспорт
F – Документ заменяющий паспорт
М - Воинское удостоверение
N – Сертификат натурализации(специфичный документ США)
T – Док.повторного въезда, паспорт беженца
V – Документ для пересечения границы-->
<!--DocNum - номер документа--> <!--CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> <!--DocElapsedTime - срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
<VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
<!--Num - номер визы--> <!--IssueDate - дата(ДД.ММ.ГГГГ) выдачи визы--> <!--IssueCountry - страна выдачи визы--> <!--IssuePlace - место выдачи визы--> <!--BirthCountry - страна рождения(IATA код страны)--> <!--BirthCity - город рождения(название)-->
<ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
<!--City - город--> <!--State - штат или область въезда--> <!--StreetAddress - адрес: улица, номер дома, квартиры и т.д.--> <!--PostalCode - почтовый код--> <!--CountryCode - код страны--> <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются--> <!--SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих--> <!--Location - положение места в ряде, возможные значения: W - у окна (Window) M - где-то в середине ряда (Middle) NPW - возле прохода (NearPassengerWay) NS - нет предпочтения (NotSpecified)--> <!--RowNumber - номер ряда--> <!--PlaceNumber - номер места--> <!--SegNumber - номер сегмента-->
<DocStringFormats>
<!--Zero or more repetitions:-->
<DocStringFormat>?</DocStringFormat>
<!--DocStringFormat - формат паспортной строки, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID-->
</DocStringFormats>
</Traveller>
</Travellers>
<AutoCancelDate>?</AutoCancelDate>
<!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства-->
<TimeLimits>
<TicketingTimeLimit>?</TicketingTimeLimit>
<!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<PriceTimeLimit>?</PriceTimeLimit>
<!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit>
<!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<AgencyTimeLimit>?</AgencyTimeLimit>
<!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
</TimeLimits>
</BookFlight>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Errors> <Error Code="?"> <!--Code - код ошибки в системе Nemo--> <ServiceErrorMessage>?</ServiceErrorMessage> <!--ServiceErrorMessage - сообщение об ошибке полученное от веб-сервиса поставщика--> <Message>?</Message> <!--Message - сообщение Сообщение об ошибке от системы Nemo--> </Error> </Errors>
</Response>
</ResponseBin>
</div>
== Пример использования ==
Пример одностороннего перелета Москва - Мадрид.
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://trunk.mlsd.ruCLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
<soapenv:Header/>
<soapenv:Body>
<BookFlight>
<FlightId>171430002</FlightId>
<BookingCodes> <!--Zero or more repetitions:--> <BookingCode Code="E" SegNumber="2"/> </BookingCodes> <Travellers>
<!--Zero or more repetitions:-->
<Traveller Type="ADT" IsContact="true" Num="1">
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ruCLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:BookFlightResponse>
<Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
</Taxes>
<Tariffs> <Tariff Code="EBSRT" SegNum="1"> <FareFamilies> <FullName>Бюджет-Эконом</FullName> </FareFamilies> </Tariff> <Tariff Code="EBSRT" SegNum="2"> <FareFamilies> <FullName>Бюджет-Эконом</FullName> </FareFamilies> </Tariff> </Tariffs>
<FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
<LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
</PassengerFare>
</PricingInfo>
<Commission Currency="RUB">0</Commission>
<Charges Currency="RUB">140.25</Charges>
<TotalPrice Currency="RUB">14165.25</TotalPrice>
</Traveller>
</Travellers>
<AutoCancelDate>2014-03-14T09:45:00</AutoCancelDate>
<TimeLimits>
<TicketingTimeLimit>2014-03-14T12:45:00</TicketingTimeLimit>
<PriceTimeLimit>2014-03-14T10:45:00</PriceTimeLimit>
<AdvancedPurchaseTimeLimit>2014-03-14T12:40:00</AdvancedPurchaseTimeLimit>
<AgencyTimeLimit>2014-03-14T09:45:00</AgencyTimeLimit>
</TimeLimits>
</BookFlight>
<Requisites/>
</ResponseBin>
</ns1:BookFlightResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
==== Ответ с ошибкой====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://release.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight">
<SOAP-ENV:Body>
<ns1:BookFlightResponse>
<ResponseBin>
<Error Code="E001936">Invalid Flight ID</Error>
</ResponseBin>
</ns1:BookFlightResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>
 
== Общий формат запроса / ответа отмены бронирования ==
 
После бронирования, если не истек таймлимит, можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа, система сама аннулирует заказ.
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook">
<soapenv:Header/>
<soapenv:Body>
<ver:CancelBook>
<RequestBin>
<Request>
<CancelBook BookID="?"/>
<!--BookID — Id брони в системе Nemo, целое число-->
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ? "Веб-служба. Авторизация".-->
<APIKey>?</APIKey>
<!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ? "Веб-служба. Авторизация".-->
<Language>?</Language>
<!--Language — язык-->
<Currency>?</Currency>
<!-- CUrrency — валюта-->
</Source>
</RequestBin>
</ver:CancelBook>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Ответ ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:CancelBookResponse>
<ResponseBin>
<Response>
<CancelBook BookID="?">
<!--BookID — Id брони в системе Nemo, целое число-->
<Result Success="?"/>
<!--Success — результат отмены брони, true или false-->
</CancelBook>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Error Code="?">Сообщение об ошибке</Error>
</Response>
</ResponseBin>
</ns1:CancelBookResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
== См. также ==
*[[Агентский АПИAPI Авиабилеты]]
*[[Бронирование]]
*[[Бронирование через TravellerId]]
[[Категория:Интеграция]]
[[Категория:Агентский API]]
'