Веб-служба возврата авиабилетов
Версия от 12:51, 23 июня 2016; Юлия Веткасова (обсуждение | вклад)
Содержание
Информация
Процесс возврата билетов осуществляется в два этапа:
1. Получение суммы к возврату на каждого пассажира, выполняется запросом GetRefundData.
Ответ на запрос содержит идентификатор заявки, статус заявки и сумму к возврату на всех пассажиров.
2. Возврат билетов выполняется запросом RefundTicket.
В ответе приходит информация о сегментах, тарифах, пассажирах и оплате.
Общий формат запроса / ответа получения информации по возврату
В данном запросе необходимо указать номер заказа, идентификаторы пассажиров, для которых выполняется возврат, тип возврата (вынужденный/добровольный) и сегменты к возврату.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=GetRefundData
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DGetRefundData">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:GetRefundData>
5 <RequestBin>
6 <Request>
7 <GetRefundData>
8 <BookID>?</BookID>
9 <!--BookID — Id заказа в системе nemo.travel-->
10 <Passengers>
11 <!--Zero or more repetitions:-->
12 <Id>?</Id>
13 <!--Id — Id пассажира, для которого производится возврат. Нумерация начинается с 0, возможно указать
14 несколько пассажиров.-->
15 </Passengers>
16 <Segments>
17 <!--Zero or more repetitions:-->
18 <Id>?</Id>
19 <!--Id — Id сегмента к возврату. Нумерация начинается с 0, возможно указать несколько сегментов.-->
20 </Segments>
21 <IsCompelled>?</IsCompelled>
22 <!--IsCompelled — тип возврата (вынужденные/добровольный), значения: true / false-->
23 </GetRefundData>
24 </Request>
25 <Source>
26 <ClientId>?</ClientId>
27 <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе
28 «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
29 <APIKey>?</APIKey>
30 <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе
31 «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
32 <Language>?</Language>
33 <!--Language — язык, например: RU-->
34 <Currency>?</Currency>
35 <!-- Currency — валюта, например: RUB, EUR-->
36 <ShowNames>?</ShowNames>
37 <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать,
38 false - не отображать. Возвращает значение на том языке, который был указан в запросе.
39 Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. -->
40 <EndUserData>
41 <EndUserIP>?</EndUserIP>
42 <EndUserBrowserAgent>?</EndUserBrowserAgent>
43 <RequestOrigin>?</RequestOrigin>
44 </EndUserData>
45 </Source>
46 </RequestBin>
47 </ver:GetRefundData>
48 </soapenv:Body>
49 </soapenv:Envelope>
Ответ
1 <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">
2 <SOAP-ENV:Body>
3 <ns1:GetRefundDataResponse>
4 <ResponseBin>
5 <Response>
6 <RefundData>
7 <ClaimID>?</ClaimID>
8 <!--ClaimID — Id заявки на возврат в системе nemo.travel-->
9 <Status>?</Status>
10 <!--Status — статус заявки, значения: all_data_saved - запрос успешно выполнен, можно переходить ко второму
11 этапу, cancelled - в результате выполнения запроса произошла ошибка, сообщение об ошибке указано в параметре
12 <Errors>. -->
13 <RefundMoney Currency="?">?</RefundMoney>
14 <!--RefundMoney Currency — сумма к возврату за всех пассажиров-->
15 </RefundData>
16 <Requisites/>
17 <RequestType xsi:nil="true"/>
18 <UserID xsi:nil="true"/>
19 <Errors/>
20 </Response>
21 </ResponseBin>
22 </ns1:GetRefundDataResponse>
23 </SOAP-ENV:Body>
24 </SOAP-ENV:Envelope>
Общий формат запроса / ответа возврата билетов
Запрос запускается после получения информации по возврату.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=RefundTicket
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DRefundTicket">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:RefundTicket>
5 <RequestBin>
6 <Request>
7 <RefundTicket>
8 <ClaimID>?</ClaimID>
9 <!--ClaimID — Id заявки на возврат в системе nemo.travel-->
10 </RefundTicket>
11 </Request>
12 <Source>
13 <ClientId>?</ClientId>
14 <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе
15 «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
16 <APIKey>?</APIKey>
17 <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе
18 «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
19 <Language>?</Language>
20 <!--Language — язык, например: RU-->
21 <Currency>?</Currency>
22 <!-- Currency — валюта, например: RUB, EUR-->
23 <ShowNames>?</ShowNames>
24 <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать,
25 false - не отображать. Возвращает значение на том языке, который был указан в запросе.
26 Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. -->
27 <EndUserData>
28 <EndUserIP>?</EndUserIP>
29 <EndUserBrowserAgent>?</EndUserBrowserAgent>
30 <RequestOrigin>?</RequestOrigin>
31 </EndUserData>
32 </Source>
33 </RequestBin>
34 </ver:RefundTicket>
35 </soapenv:Body>
36 </soapenv:Envelope>
Ответ
1 <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">
2 <SOAP-ENV:Body>
3 <ns1:RefundTicketResponse>
4 <ResponseBin>
5 <Response>
6 <RefundTicket ID="?" Status="?" Code="?">
7 <!--ID — Id брони в системе nemo.travel, целое число, обязательный-->
8 <!--Status — индикатор состояния брони, возможные значения:
9 canceled — бронь отменена,
10 ticket — выписана-->
11 <!--Code — код брони в системе поставщика-->
12 <QueryPlace xsi:nil="true"/>
13 <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
14 <Flight FlightId="?">
15 <!--FlightId — Id перелёта в системе nemo.travel-->
16 <WebService>?</WebService>
17 <!--WebService — поставщик перелёта-->
18 <ValCompany>?</ValCompany>
19 <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
20 <URL>?</URL>
21 <!--URL — ссылка на бронирование конкретного перелета-->
22 <Segments>
23 <Segment SegNum="?" SegGroupNum="?">
24 <!--SegNum — номер сегмента в перелёте-->
25 <!--SegGroupNum – номер плеча перелёта-->
26 <SupplierCode>?</SupplierCode>
27 <!--SupplierCode – номер заказа в системе АК-->
28 <DepAirp CodeType="IATA" Name="?">?</DepAirp>
29 <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
30 или SVO — Шереметьево-->
31 <DepTerminal>?</DepTerminal>
32 <!--DepTerminal — терминал пункта отправления, если пустое значение,
33 то в аэропорту всего 1 терминал-->
34 <ArrAirp CodeType="IATA" Name="?">?</ArrAirp>
35 <!--ArrAirp — аэропорт прибытия-->
36 <ArrTerminal>?</ArrTerminal>
37 <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
38 то в аэропорту всего 1 терминал-->
39 <OpAirline>?</OpAirline>
40 <!--OpAirline — авиакомпания перевозчик, например: AY-->
41 <OpAirlineName>?</OpAirlineName>
42 <!--OpAirlineName — полное наименование авиакомпании перевозчика, например: Finnair-->
43 <OpAirlineLogo>?</OpAirlineLogo>
44 <!--OpAirlineLogo — URL с логотипом авиакомпании-->
45 <MarkAirline>?</MarkAirline>
46 <!--MarkAirline — авиакомпания, продающая перелёт-->
47 <MarkAirlineName>?</MarkAirlineName>
48 <!--MarkAirlineName — полное наименование авиакомпании, например: Finnair-->
49 <MarkAirlineLogo>?</MarkAirlineLogo>
50 <!--MarkAirlineLogo — URL с логотипом авиакомпании-->
51 <FlightNumber>?</FlightNumber>
52 <!--FlightNumber — номер рейса-->
53 <AircraftName>?</AircraftName>
54 <!--AircraftName — наименование воздушного судна-->
55 <AircraftType>?</AircraftType>
56 <!--AircraftType — тип воздушного судна, код-->
57 <DepDateTime>?</DepDateTime>
58 <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
59 <ArrDateTime>?</ArrDateTime>
60 <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
61 <StopNum>?</StopNum>
62 <!--StopNum — количество остановок-->
63 <BookingCodes>
64 <BookingCode ClassType="?">
65 <!--ClassType — класс перелета, например: economy-->
66 <BookingCode>?</BookingCode>
67 <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
68 может записываться разными литерами, например: L-->
69 </BookingCode>
70 </BookingCodes>
71 <FlightTime>?</FlightTime>
72 <!--FlightTime — время перелёта в минутах-->
73 <RemainingSeats/>
74 <TimeZone Departure="?" Arrival="?"/>
75 <!--Departure временная зона аэропорта отправления-->
76 <!--Arrival — временная зона аэропорта прибытия-->
77 <ETicket>?</ETicket>
78 <!--ETicket — признак электронного билета, значения: true / false-->
79 <BaggageAllowances>
80 <BaggageAllowance>
81 <PassengerType>?</PassengerType>
82 <!--PassengerType — тип пассажира-->
83 <Value>?</Value>
84 <!--Value — количество-->
85 <Measurement>?</Measurement>
86 <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место,
87 lb — фунт-->
88 </BaggageAllowance>
89 </BaggageAllowances>
90 </Segment>
91 </Segments>
92 <PricingInfo Refundable="?">
93 <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
94 <PassengerFare Type="?" Quantity="?">
95 <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
96 INF — младенцы, INS — младенцы с местом-->
97 <!--Quantity — количество пассажиров данного типа-->
98 <BaseFare Currency="?" Amount="?"/>
99 <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
100 <EquiveFare Currency="?" Amount="?"/>
101 <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
102 Currency — код валюты, Amount — значение цены-->
103 <TotalFare Currency="?" Amount="?"/>
104 <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
105 Currency — код валюты, Amount — значение цены-->
106 <Taxes>
107 <Tax CurCode="?" TaxCode="?" Amount="?"/>
108 <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
109 </Taxes>
110 <Tariffs>
111 <Tariff Code="?" SegNum="?"/>
112 <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
113 </Tariffs>
114 <FareCalc>?</FareCalc>
115 <!--FareCalc — строка расчёта цены-->
116 <LastTicketDateTime>?</LastTicketDateTime>
117 <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
118 </PassengerFare>
119 </PricingInfo>
120 <Commission/>
121 <Charges Currency="RUB">?</Charges>
122 <!--Charges — сборы, Currency — код валюты-->
123 <TotalPrice Currency="RUB">?</TotalPrice>
124 <!--TotalPrice — итоговая цена, Currency — код валюты-->
125 </Flight>
126 <Agency/>
127 <ItinReceipts xsi:nil="?"/>
128 <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат-->
129 <FareStored xsi:nil="true"/>
130 <PaymentTransactions>
131 <Transaction>
132 <Id>?</Id>
133 <!--Id — номер транзакции в Немо-->
134 <Status>?</Status>
135 <!--Status — статус транзакции-->
136 <GatewayName>?</GatewayName>
137 <!--GatewayName — название платежного шлюза-->
138 <MoneyPaid Currency="RUB">?</MoneyPaid>
139 <!--MoneyPaid — сумма оплаты-->
140 <!--Currency — валюта-->
141 <PaymentDateTime>?</PaymentDateTime>
142 <!--PaymentDateTime — дата и время оплаты-->
143 <CreateDateTime>?</CreateDateTime>
144 <!--CreateDateTime — дата и время создания платежной транзакции-->
145 <Description/>
146 </Transaction>
147 </PaymentTransactions>
148 <PaymentStatus>?</PaymentStatus>
149 <!--PaymentStatus — статус оплаты:
150 not_paid — не оплачено
151 partly_paid — оплачено, частично
152 fully_paid — оплачено, полностью-->
153 <Travellers>
154 <Traveller Type="?" IsContact="?" Num="?">
155 <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
156 CNN — дети, UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
157 <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
158 контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
159 может быть контактным лицом, по умолчанию false-->
160 <!--Num — порядковый номер пассажира, начинается с 1-->
161 <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому
162 является опциональной)-->
163 <Meal xsi:nil="true"/>
164 <Ticket TickectNum="?"/>
165 <!-- TicketNum — номер выписанного билета-->
166 <Seats xsi:nil="true"/>
167 <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
168 <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
169 <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
170 <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
171 <FirstName>?</FirstName>
172 <!--FirstName — имя пассажира-->
173 <LastName>?</LastName>
174 <!--LastName — фамилия пассажира-->
175 <MiddleName xsi:nil="true"/>
176 <!--MiddleName — отчество пассажира-->
177 </PersonalInfo>
178 <LoyaltyCard OpCode="?" Number="?"/>
179 <!--OpCode — код авиакомпании-->
180 <!--Number — номер карточки-->
181 <ContactInfo>
182 <!--Optional:-->
183 <EmailID>?</EmailID>
184 <!--EmailID — контактный email-->
185 <!--Optional:-->
186 <Telephone Type="?">
187 <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
188 <!--Optional:-->
189 <PhoneNumber>?</PhoneNumber>
190 <!--PhoneNumber — номер телефона-->
191 <!--Optional:-->
192 <CountryAccessCode>?</CountryAccessCode>
193 <!--CountryAccessCode — код страны-->
194 <!--Optional:-->
195 <AreaCityCode>?</AreaCityCode>
196 <!--AreaCityCode — код региона/города-->
197 </Telephone>
198 </ContactInfo>
199 <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
200 <!--DocType — тип документа, возможные значения:
201 Р — Паспорт
202 A – Паспорт иностранца
203 С — Внутренний гражданский паспорт
204 F – Документ заменяющий паспорт
205 М — Воинское удостоверение
206 N – Сертификат натурализации(специфичный документ США)
207 T – Док.повторного въезда, паспорт беженца
208 V – Документ для пересечения границы-->
209 <!--DocNum — номер документа-->
210 <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
211 <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
212 <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
213 <!--Num — номер визы-->
214 <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
215 <!--IssueCountry — страна выдачи визы-->
216 <!--IssuePlace — место выдачи визы-->
217 <!--BirthCountry — страна рождения(IATA код страны)-->
218 <!--BirthCity — город рождения(название)-->
219 <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
220 <!--City — город-->
221 <!--State — штат или область въезда-->
222 <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
223 <!--PostalCode — почтовый код-->
224 <!--CountryCode — код страны-->
225 <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
226 <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
227 <!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих-->
228 <!--Location — положение места в ряде, возможные значения:
229 W — у окна (Window)
230 M — где-то в середине ряда (Middle)
231 NPW — возле прохода (NearPassengerWay)
232 NS — нет предпочтения (NotSpecified)-->
233 <!--RowNumber — номер ряда-->
234 <!--PlaceNumber — номер места-->
235 <!--SegNumber — номер сегмента-->
236 <DocStringFormats>
237 <!--Zero or more repetitions:-->
238 <DocStringFormat>?</DocStringFormat>
239 <!--DocStringFormat — формат паспортной строки, возможные значения:
240 DOCS — строка формата DOCS, FOID — строка формата FOID-->
241 </DocStringFormats>
242 </Traveller>
243 </Travellers>
244 </RefundTicket>
245 <Requisites/>
246 <RequestType xsi:nil="true"/>
247 <UserID xsi:nil="true"/>
248 <Errors xsi:nil="true"/>
249 </Response>
250 </ResponseBin>
251 </ns1:RefundTicketResponse>
252 </SOAP-ENV:Body>
253 </SOAP-ENV:Envelope>