Các khoản phí phụ của khách

Bạn có thể sửa đổi giá được gửi qua <OTA_HotelRateAmountNotifRQ> để tính đến số lượng người lớn và trẻ em ngoài số lượng khách ban đầu của giá. Thông báo ExtraGuestCharges cho phép chỉ định cách tính giá cho những khách bổ sung này và phòng, gói giá và ngày lưu trú mà họ phải trả phí.

Yêu cầu về dung lượng

Giá được tính từ thông báo ExtraGuestCharges chỉ hợp lệ nếu đáp ứng tất cả các yêu cầu về dung lượng. Hãy xem phần Giao dịch (Dữ liệu của cơ sở lưu trú) để biết thêm thông tin.

Yêu cầu

Cú pháp

Thông báo ExtraGuestCharges sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges partner="partner_account_name"
                   id="message_ID"
                   timestamp="timestamp">
  <HotelExtraGuestCharges hotel_id="HotelID" action="[overlay]">
    <ExtraGuestCharge>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD"
                   days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="float"/>
        <ChildAgeBrackets>
        <!-- The following are different ways child charges can be specified.
        Use the option that matches your system. -->
          <ChildAgeBracket max_age="integer" amount="float"
                           exclude_from_capacity="[true|false]"/>
          <ChildAgeBracket max_age="integer" percentage="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
          <ChildAgeBracket max_age="integer" discount_amount="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Phần tử và thuộc tính

Thông báo ExtraGuestCharges có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
ExtraGuestCharges 1 Complex element Phần tử gốc của thông báo này.
ExtraGuestCharges / @partner 1 string Tài khoản đối tác dùng cho thông báo này. Giá trị dạng chuỗi này là giá trị Partner key có trong danh sách trên trang Account settings (Cài đặt tài khoản) trong Hotel Center.

Lưu ý: Nếu bạn có phần phụ trợ là nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này cần phải khớp với giá trị của thuộc tính ID được chỉ định trong phần tử <RequestorID> của thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> cho cùng một tài khoản.

ExtraGuestCharges / @id 1 string Giá trị nhận dạng duy nhất cho thông báo yêu cầu này. Giá trị này được trả về trong thông báo phản hồi. Các ký tự được phép là a-z, A-Z, 0-9, _ (dấu gạch dưới) và - (dấu gạch nối).
ExtraGuestCharges / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
ExtraGuestCharges / HotelExtraGuestCharges 0..n HotelExtraGuestCharges Vùng chứa các khoản phí cho một cơ sở lưu trú.
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id 1 string Giá trị nhận dạng duy nhất của cơ sở lưu trú. Giá trị này phải khớp với Mã khách sạn được chỉ định bằng phần tử <id> trong phần tử <listing> của Nguồn cấp dữ liệu danh sách khách sạn. Mã khách sạn cũng có trong Hotel Center.
ExtraGuestCharges / HotelExtraGuestCharges / @action 0..1 enum Chỉ định cách áp dụng bản cập nhật. Chỉ hỗ trợ overlay và mặc định là lớp phủ. Mọi khoản phí trước đó cho cơ sở lưu trú này sẽ bị xoá trước khi áp dụng bản cập nhật.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

Một bộ khoản phí cho một cơ sở lưu trú. Chính sách này có thể chứa các quy định hạn chế về cách tính phí và cách tính phí theo độ tuổi hoặc danh mục khách.

Mỗi ExtraGuestCharge trong HotelExtraGuestCharges phải áp dụng cho một nhóm ngày và sản phẩm duy nhất. Nếu hai phần tử ExtraGuestCharge tham chiếu đến cùng một tổ hợp ngày-sản phẩm, thì toàn bộ thông báo sẽ bị từ chối.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets 1 AgeBrackets Vùng chứa các độ tuổi để tính phí theo độ tuổi hoặc danh mục khách.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge 0..1 AdultCharge Vùng chứa khoản phí cho một người lớn khác.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount 0..1 float Giá trị thập phân dương chỉ định số tiền cố định sẽ được tính cho một người lớn bổ sung. Khoản phí này sử dụng cùng một đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho giá phòng theo đêm.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Vùng chứa các khoản phí bổ sung cho trẻ em. Những độ tuổi này chỉ được bao gồm độ tuổi từ 0 đến 17.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..99 ChildAgeBracket Khoản phí áp dụng cho trẻ em trong một độ tuổi cụ thể. Các giá trị này phải được sắp xếp từ max_age thấp nhất đến max_age cao nhất. Bạn có thể chỉ định số tiền cần tính phí bằng cách sử dụng amount, percentage hoặc discount_amount. Bạn phải chỉ định đúng một trong các thuộc tính đó cho mỗi <ChildAgeBracket>.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer Độ tuổi tối đa mà các khoản phí được chỉ định trong <ChildAgeBracket> có thể áp dụng. Độ tuổi tối thiểu là 0 nếu không có <ChildAgeBracket> nào khác được chỉ định trước <ChildAgeBracket> này. Nếu không, độ tuổi này sẽ lớn hơn một tuổi so với độ tuổi tối đa của nhóm trước đó.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity 1 boolean Một boolean cho biết liệu trẻ em trong độ tuổi này có được tính vào tổng số người và số trẻ em được phép ở trong phòng hay không. Bạn có thể đặt các sức chứa này bằng Giao dịch(Dữ liệu của cơ sở lưu trú). Ví dụ: trẻ sơ sinh dưới một độ tuổi nhất định có thể không cần tính vào số trẻ em.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 0..1 float Giá trị thập phân không âm chỉ định số tiền cố định sẽ được tính cho một trẻ em bổ sung trong khoảng giá này. Khoản phí này sử dụng cùng một đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho giá phòng theo đêm.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage 0..1 float

Giá trị thập phân từ 1 đến 99, chỉ định tỷ lệ phần trăm giá người lớn sẽ được tính cho một trẻ em bổ sung trong khoảng giá này. Khoản phí này sử dụng cùng đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho giá phòng theo đêm.

Hãy xem phần thảo luận trong counts_as_base_occupant để biết thông tin chi tiết về cách tính giá dành cho người lớn.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount 0..1 float

Giá trị thập phân dương chỉ định số tiền chiết khấu cố định trên giá người lớn cho một trẻ em khác trong khoảng giá này. Khoản phí này sử dụng cùng đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho giá theo đêm.

Nhìn chung, phí cho trẻ trong khoảng này được tính bằng cách trừ số tiền cố định khỏi "giá đơn vị". Giá theo đơn vị được thảo luận chi tiết hơn trong phần thuộc tính counts_as_base_occupant.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant 0..1 string

Nếu bạn chỉ định thuộc tính percentage hoặc discount_amount, thì bạn cũng phải chỉ định counts_as_base_occupant. Giá trị này xác định xem có nên đưa trẻ em vào NumberOfGuest hay không khi bạn chọn mức giá <BaseByGuestAmount> để áp dụng các khoản phí và chiết khấu theo tỷ lệ phần trăm.

Mục tiêu ở đây là lấy "đơn giá" để có thể tính phí thực tế.

unit price = rate / occupancy

Giá trị của thuộc tính này phải là một trong các giá trị never, preferred hoặc always.

  • Nếu bạn chỉ định never, thì trẻ em không được tính vào số người lưu trú của mức giá.

    Nếu muốn tính giá cho 2 người lớn và 2 trẻ em (2+2), bạn nên sử dụng giá cho 2 người lớn vì trẻ em không được tính.

  • Nếu bạn chỉ định preferred, thì bạn nên đưa trẻ em vào số người lưu trú của mức giá.

    Nếu muốn tính giá cho 2 người lớn và 1 trẻ em (2+1), bạn nên sử dụng giá cho 3 người lớn. Tuy nhiên, nếu không tìm thấy giá đó, bạn nên sử dụng giá cho 2 người lớn.

  • Nếu bạn chỉ định always, thì trẻ em phải luôn được tính vào số người lưu trú của mức giá.

    Nếu muốn tính giá cho 2 người lớn và 2 trẻ em (2+2), bạn nên sử dụng giá cho 4 người lớn vì trẻ em phải được tính vào.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng áp dụng khoản phí. Các khoản phí sẽ áp dụng cho mỗi <RoomType> được chỉ định. Nếu bạn không chỉ định <RoomTypes>, thì các khoản phí sẽ áp dụng cho tất cả phòng trong cơ sở lưu trú được chỉ định.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType 1..n RoomType Chỉ định một loại phòng. Loại phòng được xác định trong phần tử <RoomData> của thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và được tham chiếu bằng giá trị <RoomID>. (Giá trị <RoomID> còn được thuộc tính InvTypeCode trong các thông báo OTA_HotelRateAmountNotifRQ tham chiếu.)
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id 1 string Giá trị nhận dạng duy nhất của quỹ phòng (loại phòng). Giá trị này tương ứng với <RoomID> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú). Số lượng ký tự tối đa được phép là 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans 0..1 RatePlans Vùng chứa danh sách các gói giá áp dụng khoản phí. Nếu bạn không xác định <RatePlans>, thì các khoản phí sẽ áp dụng cho mọi gói giá.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan 1..n RatePlan Chỉ định một gói giá. Gói giá được xác định là tổng hợp gói dịch vụ, giá và tình trạng phòng, theo cách xác định trong các thông báo Giao dịch (Dữ liệu của cơ sở lưu trú), OTA_HotelRateAmountNotifRQ và OTA_HotelAvailNotifRQ, đồng thời gói giá còn được xác định bằng PackageID.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id 1 string Giá trị nhận dạng duy nhất của gói giá. Giá trị này tương ứng với giá trị PackageID trong <PackageData> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và trong thuộc tính RatePlanCode của <StatusApplicationControl> trong cả thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ>. Số lượng ký tự tối đa được phép là 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates 0..1 StayDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định cách áp dụng khoản phí.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange 1..99 DateRange Phạm vi ngày xác định những ngày mà chương trình khuyến mãi được áp dụng.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start 0..1 Date Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end 0..1 Date Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không xác định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không chỉ định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

Ví dụ

Phí người lớn

Khoản phí cho người lớn bổ sung chỉ có thể được thể hiện dưới dạng số tiền cố định. Ví dụ sau đây cho thấy một thông báo ExtraGuestCharges chỉ định các khoản phí dành cho người lớn:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <StayDates />
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Sau đây là các mức thuế tương ứng:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Khi người dùng tìm kiếm giá phòng cho 4 người lớn trên Google, tổng giá phòng sẽ là 170 = 120 + 50.

120 đến từ tỷ lệ <BaseByGuestAmt> với NumberOfGuests="3" và 50 đến từ AdultCharge amount="50".

Khoản phí của tài khoản con

Phí cho trẻ em được thể hiện theo độ tuổi lên đến 17 và có thể được thể hiện bằng số tiền cố định, tỷ lệ phần trăm hoặc chiết khấu.

Ví dụ sau đây cho thấy một thông báo ExtraGuestCharges chỉ định phí trẻ em:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <AgeBrackets>
        <ChildAgeBrackets>
          <ChildAgeBracket max_age="3" percentage="10"
                           counts_as_base_occupant="never" />
          <ChildAgeBracket max_age="10" percentage="30"
                           counts_as_base_occupant="preferred"/>
          <ChildAgeBracket max_age="17" discount_amount="10"
                           counts_as_base_occupant="always" />
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Sau đây là các mức thuế tương ứng:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
```

  1.  Suppose you want the total price for 2 adults and 1 child of 2 years
      of age.

      Children aged 0-3 are never included in the rate's occupancy,
      so here you should take the double occupancy rate and divide by 2 to
      get the unit price. Then, multiply by the percentage rate and sum
      with the rate to get the total price.

      `unit price ` = 110 / 2 = 55

      `total price` = 110 + 55 * 0.1 = 115.5

  1.  Suppose you want the total price for 1 adult and 2 children, both of 5
      years of age.

      Children aged 4-10 are preferably included in the rate's
      occupancy. you should start by looking for a 3 adult rate since both
      children are preferably included in the rate's occupancy. Since
      that doesn't exist you should fall back to the 2 adult rate and then,
      take this rate and divide by two to get the unit price. Finally,
      multiply by the percentage rate and sum with the scaled rate to
      get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + 55 * 0.3 + 55 * 0.3 = 88

  1.  Suppose you want the total price for 1 adult and 1 child of 17
      years of age.

      Children aged 11-17 are always included in the rate's occupancy, so,
      in this case, take the double occupancy rate and divide by 2 to get
      the unit price. Then, deduct it by the discount amount and sum with
      the scaled rate to get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + (55 - 10) = 100

Quy định hạn chế về khoản phí

Bạn không bắt buộc phải sử dụng tất cả các loại hạn chế và có thể sử dụng bất kỳ tổ hợp nào trong số đó.

Ví dụ sau đây cho thấy một thông báo ExtraGuestCharges chỉ định các quy định hạn chế:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Thông báo ở trên chỉ định rằng người lớn phải trả phí cho mọi sản phẩm có loại phòng "queen" hoặc "king" với gói giá "wifi-free" hoặc "hot-breakfast" trong khoảng thời gian từ ngày 1 tháng 9 năm 2020 đến ngày 14 tháng 9 năm 2020.

Phí trùng lặp

Phần này cho thấy ví dụ về một thông báo không hợp lệ chỉ định các khoản phí khác nhau cho cùng một tổ hợp ngày và sản phẩm.


<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-05"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="20" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Thông báo ở trên không hợp lệ vì <ExtraGuestCharge> đầu tiên chỉ định rằng "queen" và "free-wifi" từ ngày 1 đến ngày 14 tháng 9 sẽ tính thêm phí 50 cho người lớn. <ExtraGuestCharge> thứ hai chỉ định rằng bất kỳ phòng "queen" hoặc "king" nào có bất kỳ dịch vụ "free-wifi" hoặc "hot-breakfast" nào từ ngày 1 đến ngày 5 tháng 9 đều phải tính thêm phí 20 đô la cho mỗi người lớn. Có các khoản phí trùng lặp cho "queen" và "free-wifi" từ ngày 1 đến ngày 5 tháng 9 và có xung đột giữa việc tính phí 20 hay 50 cho một người lớn khác.

Phản hồi

Cú pháp

Thông báo ExtraGuestChargesResponse sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</ExtraGuestChargesResponse>

Phần tử và thuộc tính

Thông báo ExtraGuestChargesResponse có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
ExtraGuestChargesResponse 1 Complex element Phần tử gốc cho biết thông báo yêu cầu ExtraGuestCharges nhận được đã thành công hay gặp lỗi.
ExtraGuestChargesResponse / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
ExtraGuestChargesResponse / @id 1 string Giá trị nhận dạng duy nhất từ thông báo ExtraGuestCharges tương ứng.
ExtraGuestChargesResponse / @partner 1 string Tài khoản đối tác dùng cho thông báo này.
ExtraGuestChargesResponse / Success 0..1 Success Cho biết rằng thông báo ExtraGuestCharges đã được xử lý thành công mà không có cảnh báo, lỗi hoặc lượt xử lý hỏng nào.

Mỗi thông báo có <Success> hoặc <Issues>.

ExtraGuestChargesResponse / Issues 0..1 Issues Vùng chứa một hoặc nhiều sự cố xảy ra trong quá trình xử lý thông báo ExtraGuestCharges.

Mỗi thông báo có <Success> hoặc <Issues>.

ExtraGuestChargesResponse / Issues / Issue 1..n Issue Thông tin mô tả về cảnh báo, lỗi hoặc lượt xử lý hỏng trong quá trình xử lý thông báo ExtraGuestCharges. Bạn có thể xem thông tin chi tiết về các vấn đề này trong Thông báo lỗi về trạng thái của nguồn cấp dữ liệu.
ExtraGuestChargesResponse / Issues / Issue / @code 1 integer Giá trị nhận dạng của vấn đề.
ExtraGuestChargesResponse / Issues / Issue / @status 1 enum

Loại vấn đề gặp phải.

Các giá trị hợp lệ là warning, errorfailure.

Ví dụ

Thành công

Dưới đây là phản hồi cho một thông báo ExtraGuestCharges đã được xử lý thành công.

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</ExtraGuestChargesResponse>

Vấn đề

Dưới đây là phản hồi cho thông báo ExtraGuestCharges không được xử lý do gặp lỗi.

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</ExtraGuestChargesResponse>