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

Изменения

Веб-служба возврата авиабилетов

27 818 байт добавлено, 15:43, 23 июня 2016
Нет описания правки
[[Категория:Интеграция]]<!-- -->== Информация == Процесс возврата билетов осуществляется в два этапа:<br>1. Получение суммы к возврату на каждого пассажира, выполняется запросом '''GetRefundData'''. <br>Ответ на запрос содержит идентификатор заявки, статус заявки и сумму к возврату на всех пассажиров. <br>2. Возврат билетов выполняется запросом '''RefundTicket'''. <br>В ответе приходит информация о сегментах, тарифах, пассажирах и оплате.<br> == Общий формат запроса / ответа получения информации по возврату ==В данном запросе необходимо указать номер заказа, идентификаторы пассажиров, для которых выполняется возврат, тип возврата (вынужденный/добровольный) и сегменты к возврату. <br>WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=GetRefundData <br> <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%3DGetRefundData"> <soapenv:Header/> <soapenv:Body> <ver:GetRefundData> <RequestBin> <Request> <GetRefundData> <BookID>?</BookID> <!--BookID — Id заказа в системе nemo.travel--> <Passengers> <!--Zero or more repetitions:--> <Id>?</Id> <!--Id — Id пассажира, для которого производится возврат. Нумерация начинается с 0, возможно указать несколько пассажиров.--> </Passengers> <Segments> <!--Zero or more repetitions:--> <Id>?</Id> <!--Id — Id сегмента к возврату. Нумерация начинается с 0, возможно указать несколько сегментов.--> </Segments> <IsCompelled>?</IsCompelled> <!--IsCompelled — тип возврата (вынужденные/добровольный), значения: true / false--> </GetRefundData> </Request> <Source> <ClientId>?</ClientId> <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> <APIKey>?</APIKey> <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> <Language>?</Language> <!--Language — язык, например: RU--> <Currency>?</Currency> <!-- Currency — валюта, например: RUB, EUR--> <ShowNames>?</ShowNames> <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. --> </Source> </RequestBin> </ver:GetRefundData> </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%3DGetRefundData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:GetRefundDataResponse> <ResponseBin> <Response> <RefundData> <ClaimID>?</ClaimID> <!--ClaimID — Id заявки на возврат в системе nemo.travel--> <Status>?</Status> <!--Status — статус заявки, значения: all_data_saved - запрос успешно выполнен, можно переходить ко второму этапу, cancelled - в результате выполнения запроса произошла ошибка, сообщение об ошибке указано в параметре <Errors>. --> <RefundMoney Currency="?">?</RefundMoney> <!--RefundMoney Currency — сумма к возврату за всех пассажиров, для которых проводится возврат--> </RefundData> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors/> </Response> </ResponseBin> </ns1:GetRefundDataResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></div> == Общий формат запроса / ответа возврата билетов == Запрос запускается после получения информации по возврату.<br>WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=RefundTicket <br> <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%3DRefundTicket"> <soapenv:Header/> <soapenv:Body> <ver:RefundTicket> <RequestBin> <Request> <RefundTicket> <ClaimID>?</ClaimID> <!--ClaimID — Id заявки на возврат в системе nemo.travel--> </RefundTicket> </Request> <Source> <ClientId>?</ClientId> <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> <APIKey>?</APIKey> <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> <Language>?</Language> <!--Language — язык, например: RU--> <Currency>?</Currency> <!-- Currency — валюта, например: RUB, EUR--> <ShowNames>?</ShowNames> <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. --> </Source> </RequestBin> </ver:RefundTicket> </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%3DRefundTicket" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:RefundTicketResponse> <ResponseBin> <Response> <RefundTicket ID="?" Status="?" Code="?"> <!--ID — Id брони в системе nemo.travel, целое число, обязательный--> <!--Status — индикатор состояния брони, возможные значения: canceled — бронь отменена, ticket — выписана--> <!--Code — код брони в системе поставщика--> <QueryPlace xsi:nil="true"/> <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> <Flight FlightId="?"> <!--FlightId — Id перелёта в системе nemo.travel--> <WebService>?</WebService> <!--WebService — поставщик перелёта--> <ValCompany>?</ValCompany> <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> <URL>?</URL> <!--URL — ссылка на бронирование конкретного перелета--> <Segments> <Segment SegNum="?" SegGroupNum="?"> <!--SegNum — номер сегмента в перелёте--> <!--SegGroupNum – номер плеча перелёта--> <SupplierCode>?</SupplierCode> <!--SupplierCode – номер заказа в системе АК--> <DepAirp CodeType="IATA" Name="?">?</DepAirp> <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево--> <DepTerminal>?</DepTerminal> <!--DepTerminal — терминал пункта отправления, если пустое значение, то в аэропорту всего 1 терминал--> <ArrAirp CodeType="IATA" Name="?">?</ArrAirp> <!--ArrAirp — аэропорт прибытия--> <ArrTerminal>?</ArrTerminal> <!--ArrTerminal — терминал пункта прибытия, если пустое значение, то в аэропорту всего 1 терминал--> <OpAirline>?</OpAirline> <!--OpAirline — авиакомпания перевозчик, например: AY--> <OpAirlineName>?</OpAirlineName> <!--OpAirlineName — полное наименование авиакомпании перевозчика, например: Finnair--> <OpAirlineLogo>?</OpAirlineLogo> <!--OpAirlineLogo — URL с логотипом авиакомпании--> <MarkAirline>?</MarkAirline> <!--MarkAirline — авиакомпания, продающая перелёт--> <MarkAirlineName>?</MarkAirlineName> <!--MarkAirlineName — полное наименование авиакомпании, например: Finnair--> <MarkAirlineLogo>?</MarkAirlineLogo> <!--MarkAirlineLogo — URL с логотипом авиакомпании--> <FlightNumber>?</FlightNumber> <!--FlightNumber — номер рейса--> <AircraftName>?</AircraftName> <!--AircraftName — наименование воздушного судна--> <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 — время перелёта в минутах--> <RemainingSeats/> <TimeZone Departure="?" Arrival="?"/> <!--Departure временная зона аэропорта отправления--> <!--Arrival — временная зона аэропорта прибытия--> <ETicket>?</ETicket> <!--ETicket — признак электронного билета, значения: true / false--> <BaggageAllowances> <BaggageAllowance> <PassengerType>?</PassengerType> <!--PassengerType — тип пассажира--> <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 — количество пассажиров данного типа--> <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="RUB">?</Charges> <!--Charges — сборы, Currency — код валюты--> <TotalPrice Currency="RUB">?</TotalPrice> <!--TotalPrice — итоговая цена, Currency — код валюты--> </Flight> <Agency/> <ItinReceipts xsi:nil="?"/> <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат--> <FareStored xsi:nil="true"/> <PaymentTransactions> <Transaction> <Id>?</Id> <!--Id — номер транзакции в Немо--> <Status>?</Status> <!--Status — статус транзакции--> <GatewayName>?</GatewayName> <!--GatewayName — название платежного шлюза--> <MoneyPaid Currency="RUB">?</MoneyPaid> <!--MoneyPaid — сумма оплаты--> <!--Currency — валюта--> <PaymentDateTime>?</PaymentDateTime> <!--PaymentDateTime — дата и время оплаты--> <CreateDateTime>?</CreateDateTime> <!--CreateDateTime — дата и время создания платежной транзакции--> <Description/> </Transaction> </PaymentTransactions> <PaymentStatus>?</PaymentStatus> <!--PaymentStatus — статус оплаты: not_paid — не оплачено partly_paid — оплачено, частично fully_paid — оплачено, полностью--> <Travellers> <Traveller Type="?" IsContact="?" Num="?"> <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые, CNN — дети, UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false--> <!--Num — порядковый номер пассажира, начинается с 1--> <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> <Meal xsi:nil="true"/> <Ticket TickectNum="?"/> <!-- TicketNum — номер выписанного билета--> <Seats xsi:nil="true"/> <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?"> <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)--> <FirstName>?</FirstName> <!--FirstName — имя пассажира--> <LastName>?</LastName> <!--LastName — фамилия пассажира--> <MiddleName xsi:nil="true"/> <!--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> </RefundTicket> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors xsi:nil="true"/> </Response> </ResponseBin> </ns1:RefundTicketResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></div>
'