ข้ามไปยังเนื้อหา
เดโมสด

โรงแรม

Book a rate. Requires an `Idempotency-Key` header.

post/v1/hotels/bookings

  • ต้องยืนยันตัวตน
  • ต้องมี Idempotency-Key

เนื้อหาคำขอHotelBookingCreateRequest

  • rateKeystring
  • BookingRoom[]
    • Guest[]
  • HolderInfo
    • firstNamestring
    • lastNamestring
    • emailstring
    • phonestring
  • specialRequestsstringเป็น null ได้
ตัวอย่าง
{
  "rateKey": "string",
  "rooms": [
    {
      "guests": [
        {
          "type": "string",
          "gender": "string",
          "firstName": "string",
          "lastName": "string"
        }
      ]
    }
  ],
  "holder": {
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phone": "string"
  },
  "specialRequests": "string"
}

การตอบกลับ

201CreatedHotelBooking

  • bookingIdstring
  • bookingReferencestringเป็น null ได้
  • statusstring

    confirmed | pending | cancelled | unknown.

  • hotelCodestringเป็น null ได้
  • hotelNamestringเป็น null ได้
  • cityNamestringเป็น null ได้
  • roomTypestringเป็น null ได้
  • checkInstringเป็น null ได้
  • checkOutstringเป็น null ได้
  • Money

    Money on the wire: decimal string (never a float) + ISO 4217.

    • amountstring
    • currencystring
  • refundablebooleanเป็น null ได้
  • priceChangedboolean
  • HolderInfo
    • firstNamestring
    • lastNamestring
    • emailstring
    • phonestring
  • BookingRoom[]
    • Guest[]
  • specialRequestsstringเป็น null ได้
  • confirmedAtstring (date-time)เป็น null ได้
  • 402Payment Requiredรายละเอียดปัญหาตาม RFC 7807
  • 409Conflictรายละเอียดปัญหาตาม 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='{
  "rateKey": "string",
  "rooms": [
    {
      "guests": [
        {
          "type": "string",
          "gender": "string",
          "firstName": "string",
          "lastName": "string"
        }
      ]
    }
  ],
  "holder": {
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phone": "string"
  },
  "specialRequests": "string"
}'
TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY_HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 | sed 's/^.* //')
CANON=$(printf 'POST\n/v1/hotels/bookings\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/hotels/bookings" \
  -H "X-API-Key: $KEY_ID" \
  -H "X-Timestamp: $TS" \
  -H "X-Nonce: $NONCE" \
  -H "X-Signature: $SIG" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d "$BODY"