Изменения

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

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

612 байт добавлено, 14:52, 15 марта 2014
Нет описания правки
== Подключение ==
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр - «FlightId» - Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
== Общий формат запроса / ответа ==
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
<BookFlight>
<FlightId>?</FlightId>
<!--FlightId - Id перелёта в системе НемоNemo-->
<!--Optional:-->
<ValidatingCompany>?</ValidatingCompany> <!--необязательный-->
<!--ValidatingCompany - валидирующий перевозчик (тот кто выписывает билет)-->
<!--Optional:-->
<BookingCodes>
<!--Zero or more repetitions:-->
<BookingCode Code="?" SegNumber="?"/>
<!--Code - код класса перелёта--> <!--SegNumber - номер сегмента в перелёте (начинаются с 1)-->
</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 - дети со взрослыми,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>
<!--Optional:-->
<QueueNum>?</QueueNum> <!--необязательный-->
<!--QueueNum - номер очереди, в которую необходимо поместить бронирование-->
</BookFlight>
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".-->
<APIKey>?</APIKey>
<!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".-->
<Language>?</Language>
<!--Language - язык-->
<Currency>?</Currency>
<!-- CUrrency - валюта-->
</Source>
</RequestBin>
<Response>
<BookFlight ID="?" Status="?" Code="?">
<!--ID - Id брони в системе немоNemo, целое число, обязательный--> <!--Status - индикатор состояния брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана UNDEFINED - статус не определён--> <!--Code - код брони в системе поставщика-->
<QueryPlace xsi:nil="true"/>
<!--QueryPlace - положение брони в очереди, Number - номер брони в очереди-->
<Flight FlightId="?">
<!--FlightId - Id перелёта в системе Nemo-->
<WebService>?</WebService>
<!--WebService - поставщик перелёта-->
<ValCompany>?</ValCompany>
<!--ValCompany - код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
<URL>?</URL>
<!--URL - ссылка на бронирование конкретного перелета-->
<Segments>
<Segment SegNum="?" SegGroupNum="?">
<!--SegNum - номер сегмента в перелёте-->
<!--SegGroupNum – номер плеча перелёта-->
<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 - количество остановок-->
<BookingCodes>
<BookingCode ClassType="?">
<!--ClassType - класс перелета, например: economy-->
<BookingCode>?</BookingCode>
<!--BookingCode - код класса бронирования, у разных авиакомпаний один и тот же класс
может записываться разными литерами, например: L-->
</BookingCode>
</BookingCodes>
<FlightTime>?</FlightTime>
<!--FlightTime - время перелёта в минутах-->
<TimeZone Departure="?" Arrival="?"/>
<!--Departure временная зона аэропорта отправления-->
<!--Arrival - временная зона аэропорта прибытия-->
<ETicket>?</ETicket>
<!--ETicket - признак электронного билета, значения: true / false-->
</Segment>
</Segments>
<PricingInfo Refundable="?">
<!--Refundable - возвратный/невозвратный, true/false. Если пустое, то не известно-->
<PassengerFare Type="?" Quantity="?">
<!--Type - тип пассажира, возможные значения: ADT - взрослые, CNN - дети, INF - младенцы, INS - младенцы с местом--> <!--Quantity - количество пассажиров данного типа-->
<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 - номер сегмента, к которому применён тариф-->
</Tariffs>
<FareCalc>?</FareCalc>
<!--FareCalc - строка расчёта цены-->
<LastTicketDateTime>?</LastTicketDateTime>
<!--LastTicketDateTime - дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
</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 - дети со взрослыми,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>
<Errors>
<Error Code="?">
<!--Code - код ошибки в системе Nemo-->
<ServiceErrorMessage>?</ServiceErrorMessage>
<!--ServiceErrorMessage - сообщение об ошибке полученное от веб-сервиса поставщика-->
<Message>?</Message>
<!--Message - сообщение об ошибке от системы Nemo-->
</Error>
</Errors>
</div>
== Пример использования ==
Пример одностороннего перелета Москва - Мадрид.
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
</div>
== Общий формат запроса / ответа отмены бронирования ==
После бронирования, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической - по истечению таймлимита, установленного для заказа система сама аннулирует заказ.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
<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>
<Response>
<CancelBook BookID="?">
<!--BookID - Id брони в системе Nemo, целое число-->
<Result Success="?"/>
<!--Success - результат отмены брони, true или false-->
</CancelBook>
<Requisites/>

Навигация

'