BookingUSB-产品Addon APIs
修改于: 2023-05-24 15:33
旧版文档将于2025年11月30日下线,您可以查看新版或了解更新日志。
TABLE OF CONTENTS
介绍
渠道使用产品 Addon API 获取 addon 详情,并通过可用性 API 查询特定 addon 的实时价格
- 产品 addon 详情(/productAddon/{supplierId}/{hotelId}/{type}/{code})
- 产品 addon 可用性(/productAddon/Availability)
产品 addon 详情
渠道调用此API获取特定酒店的产品 addon 详细信息
GET /productAddon/{supplierId}/{hotelId}/{type}/{code}?distributorId={distributorId} HTTP/1.1
URL: {endpoint}/productAddon/{supplierId}/{hotelId}/{type}/{code}?distributorId={distributorId}
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8请求参数
| 名称 | 描述 | 必传字段? | 类型 | 示例 | 
|---|---|---|---|---|
| supplierId | 酒店集团 ID | Yes | string | DISNEY | 
| hotelId | 酒店代码 | Yes | string | 06 | 
| type | 产品 addon 类型 | Yes | string | DisneyTicket | 
| code | 产品 addon 代码 | Yes | string | / | 
| distributorId | 渠道 ID | Yes | string | / | 
响应示例
- 成功响应(HTTP状态200)
{
  "supplierId": "DISNEY",
  "hotelId": "GATHI",
  "productAddon": {
    "code": "code",
    "name": "name",
    "type": "DisneyTicket",
    "policies": [
      "policy",
      "policy"
    ],
    "restrictions": {
      "officeIds": [
        "officeId",
        "officeId"
      ],
      "discountGroups": [
        "group",
        "group"
      ],
      "ageQualifyingTypes": [
        {
          "type": "Adult",
          "minAge": 18,
          "maxAge": 99
        }
      ],
      "saleDateRange": {
        "startDate": "2022-01-01",
        "endDate": "2022-01-04"
      },
      "usageDateRange": {
        "startDate": "2022-01-01",
        "endDate": "2022-01-04"
      },
      "durationDays": 3,
      "usageBufferDays": 3
    },
    "rates": [
      {
        "dateRange": {
          "startDate": "2022-01-01",
          "endDate": "2022-01-04"
        },
        "rate": {
          "ageQualifyingType": {
            "type": "Adult",
            "minAge": 18,
            "maxAge": 99
          },
          "currency": "USD",
          "amountBeforeTax": 123.23,
          "amountAfterTax": 134.34
        }
      }
    ]
  }
}- 错误响应(HTTP状态403)
{
    "error": "Key not authorized"
}- 错误响应(HTTP状态500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}响应规范
| 属性 | 类型 | 必传字段? | 描述 | 示例 | 
|---|---|---|---|---|
| supplierId | string | Yes | 酒店集团 ID | DISNEY | 
| hotelId | string | Yes | 酒店代码 | 06 | 
| productAddon | object | No | / | / | 
| @code | string | Yes | 产品 addon 代码 | / | 
| @name | string | Yes | 产品 addon 名称 | / | 
| @type | string | Yes | 产品 addon 类型 | DisneyTicket | 
| productAddon/policies | array[string] | No | / | / | 
| productAddon/restrictions | object | No | / | / | 
| restrictions/officeIds | array[string] | No | ||
| restrictions/discountGroups | array[string] | No | / | / | 
| restrictions/ageQualifyingTypes | array[object] | No | / | / | 
| @type | enum | Yes | 枚举: [Adult, Child] | Adult | 
| @minAge | integer | Yes | / | 18 | 
| @maxAge | integer | Yes | / | 99 | 
| restrictions/saleDateRange | object | Yes | / | / | 
| @startDate | string | Yes | 格式: yyyy-MM-dd | 2022-01-01 | 
| @endDate | string | Yes | 格式: yyyy-MM-dd | 2022-01-04 | 
| restrictions/usageDateRange | object | Yes | / | / | 
| @startDate | string | Yes | 格式: yyyy-MM-dd | 2022-01-01 | 
| @endDate | string | Yes | 格式: yyyy-MM-dd | 2022-01-04 | 
| restrictions/durationDays | integer | Yes | / | 3 | 
| restrictions/usageBufferDays | integer | Yes | / | 3 | 
| productAddon/rates | array[object] | No | / | / | 
| rates/dateRange | object | Yes | 日期范围 | / | 
| @startDate | string | Yes | 开始日期, 格式: yyyy-MM-dd | 2022-01-01 | 
| @endDate | string | Yes | 结束日期, 格式: yyyy-MM-dd | 2022-01-04 | 
| rates/rate | array[object] | Yes | / | / | 
| rate/ageQualifyingType | object | No | / | / | 
| @type | enum | Yes | 枚举: [Adult, Child] | Adult | 
| @minAge | integer | Yes | / | 18 | 
| @maxAge | integer | Yes | / | 99 | 
| rate/currency | string | Yes | / | USD | 
| rate/amountBeforeTax | number | No | / | 123.23 | 
| rate/amountAfterTax | number | No | / | 134.34 | 
产品 addon 可用性
渠道调用此 API 获取指定 addon 的可用性, 请求将被发送到酒店集团的系统,以获得实时结果。
POST /productAddon/availability HTTP/1.1
URL: {endpoint}/productAddon/availability
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8请求示例
{
  "header": {
    "supplierId": "DISNEY",
    "distributorId": "SUNCOAST",
    "version": "v4",
    "token": "18393849028490234"
  },
  "bookingChannel": "string",
  "officeId": "string",
  "hotelId": "06",
  "date": "2022-01-01",
  "productAddonType": "DisneyTicket",
  "productAddonCandidates": [
    {
      "code": "string",
      "quantity": 1
    }
  ]
}请求规范
| 属性 | 类型 | 必传字段? | 描述 | 示例 | 
|---|---|---|---|---|
| header | object | Yes | / | / | 
| @supplierId | string | Yes | 最大长度:32 酒店集团 ID | DISNEY | 
| @distributorId | string | Yes | 最大长度:32 渠道 ID | SUNCOAST | 
| @version | string | Yes | 最大长度:20 API版本 | v4 | 
| @token | string | Yes | 最大长度:64 用于标识请求和响应的唯一ID,通常应为UUID | 18393849028490234 | 
| bookingChannel | string | No | 子渠道, 迪士尼对接时,当渠道有且只有一个子渠道ID时,此字段为可选字段。否则为必填字段。 | / | 
| officeId | string | No | 注意:迪士尼对接,请求产品 addon 可用性时,为必填字段。非迪斯尼对接,则视情况而定 | / | 
| hotelId | string | Yes | 酒店代码 | 06 | 
| date | string | Yes | 格式为 yyyy-MM-dd | 2022-01-01 | 
| productAddonType | string | Yes | 产品 addon 类型 | DisneyTicket | 
| productAddonCandidates | array[object] | Yes | / | / | 
| @code | string | Yes | 产品 addon 代码 | / | 
| @quantity | integer | Yes | / | 1 | 
响应示例
- 成功响应(HTTP状态200)
{
  "header": {
    "supplierId": "DISNEY",
    "distributorId": "SUNCOAST",
    "version": "v4",
    "token": "18393849028490234"
  },
  "bookingChannel": "string",
  "officeId": "string",
  "hotelId": "06",
  "date": "2022-01-01",
  "productAddonType": "DisneyTicket",
  "productAddons": [
    {
      "code": "string",
      "rates": [
        {
          "ageQualifyingType": {
            "type": "Adult",
            "minAge": 18,
            "maxAge": 99
          },
          "currency": "USD",
          "amountBeforeTax": 123.23,
          "amountAfterTax": 134.34
        }
      ]
    }
  ]
}- 错误响应(HTTP状态401)
{
    "error": "Key not authorized"
}- 错误响应(HTTP状态500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}| 名称 | 描述 | 必传字段? | 类型 | 示例 | 
|---|---|---|---|---|
| header | object | Yes | / | / | 
| @supplierId | string | Yes | 最大长度:32 酒店集团 ID | DISNEY | 
| @distributorId | string | Yes | 最大长度:32 渠道 ID | SUNCOAST | 
| @version | string | Yes | 最大长度:20 API版本 | v4 | 
| @token | string | Yes | 最大长度:64 用于标识请求和响应的唯一 ID,通常应为UUID | 18393849028490234 | 
| bookingChannel | string | No | 子渠道 ID | / | 
| officeId | string | No | / | / | 
| hotelId | string | Yes | 酒店代码 | 06 | 
| date | string | No | 格式为:yyyy-MM-dd | 2022-01-01 | 
| productAddonType | string | No | 产品 addon 类型 | DisneyTicket | 
| productAddons | array[object] | No | / | / | 
| @code | string | Yes | 产品 addon 代码 | DisneyTicket | 
| productAddons/rates | array[object] | Yes | / | / | 
| rates/ageQualifyingType | object | No | / | / | 
| @type | enum | Yes | 枚举: [Adult, Child] | Adult | 
| @minAge | integer | Yes | / | 18 | 
| @maxAge | integer | Yes | / | 99 | 
| rates/currency | string | Yes | / | USD | 
| rates/amountBeforeTax | number | No | / | 123.23 | 
| rates/amountAfterTax | number | No | / | 134.34 | 
此回答是否有所帮助? 是 否
Send feedback