Авиабилеты
Exchange step 3: re-issue the listed tickets onto the offer (charges your deposit balance). Requires an `Idempotency-Key` header.
post/v1/flights/orders/{orderId}/exchange
- Требуется аутентификация
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
| orderId* | path | string |
Тело запросаExchangeRequest
- offerIdstring
- ticketNumbersstring[]
E-ticket numbers to exchange. Every ticket listed must belong to the order.
- couponNumbersinteger (int32)[]допускает null
Coupon numbers (1-based) being replaced, one per slice of the new itinerary. Default [1].
- Contact
- emailstring
- phonestring
E.164 or national with dial code.
- remarkstringдопускает null
{
"offerId": "string",
"ticketNumbers": [
"string"
],
"couponNumbers": [
1
],
"contact": {
"email": "string",
"phone": "string"
},
"remark": "string"
}Ответы
200OKFlightOrder
- orderIdstring
- bookingReferencestringдопускает null
- statusstring
held | ticketed | cancelled | voided | refunded | pending | exchanged | expired | unknown.
- ticketTimeLimitstring (date-time)допускает null
- Money
Money on the wire: decimal string (never a float) + ISO 4217.
- amountstring
- currencystring
- PassengerPricing[]
- typestring
ADT | CHD | INF.
- quantityinteger (int32)
- Money
Money on the wire: decimal string (never a float) + ISO 4217.
- Money
Money on the wire: decimal string (never a float) + ISO 4217.
- Money
Money on the wire: decimal string (never a float) + ISO 4217.
- Tax[]
- Slice[]
- durationMinutesinteger (int32)
- Segment[]
- OrderPassenger[]
- typestring
- firstNamestring
- lastNamestring
- genderstringдопускает null
- dateOfBirthstringдопускает null
- nationalitystringдопускает null
- Ticket[]
- Contact
- emailstring
- phonestring
E.164 or national with dial code.
- priceChangedboolean
- canCancelbooleanдопускает null
- 400Bad RequestОписание ошибки по RFC 7807
- 402Payment RequiredОписание ошибки по RFC 7807
- 404Not FoundОписание ошибки по RFC 7807
Примеры кода
Готовые программы, которые подписывают запрос так, как его проверяет шлюз. Замените YOUR_KEY_ID и YOUR_SECRET.
# Sign the request: METHOD \n path+query \n unix time \n nonce \n sha256(body)
KEY_ID="YOUR_KEY_ID"
SECRET="YOUR_SECRET"
BODY='{
"offerId": "string",
"ticketNumbers": [
"string"
],
"couponNumbers": [
1
],
"contact": {
"email": "string",
"phone": "string"
},
"remark": "string"
}'
TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY_HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 | sed 's/^.* //')
CANON=$(printf 'POST\n/v1/flights/orders/ZnVWRmFQNlNQQlE5V0N2bHZnPT0/exchange\n%s\n%s\n%s' "$TS" "$NONCE" "$BODY_HASH")
SIG=$(printf '%s' "$CANON" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //')
curl -X POST "https://api.dubaitrip.com/v1/flights/orders/ZnVWRmFQNlNQQlE5V0N2bHZnPT0/exchange" \
-H "X-API-Key: $KEY_ID" \
-H "X-Timestamp: $TS" \
-H "X-Nonce: $NONCE" \
-H "X-Signature: $SIG" \
-H "Content-Type: application/json" \
-d "$BODY"