الرسوم الإضافية للضيوف

يمكن تعديل الأسعار المرسَلة من خلال <OTA_HotelRateAmountNotifRQ> لتحديد عدد البالغين والأطفال بالإضافة إلى عدد الضيوف الأصلي في التقييم. تتيح رسالة ExtraGuestCharges تحديد كيفية احتساب الأسعار للضيوف الإضافيين، وتحديد الغرف وخطط الأسعار وتواريخ الإقامة التي تنطبق عليها الرسوم.

متطلبات السعة

لا تكون الأسعار المحسوبة من رسالة ExtraGuestCharges صالحة إلا في حال استيفاء جميع متطلبات السعة. اطّلِع على المعاملة (بيانات الموقع) لمزيد من المعلومات.

الطلبات

البنية

تستخدم رسالة ExtraGuestCharges البنية التالية:

<?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>

العناصر والسمات

تحتوي رسالة ExtraGuestCharges على العناصر والسمَات التالية:

العنصر / @السمة عدد مرات الظهور النوع الوصف
ExtraGuestCharges 1 Complex element عنصر الجذر لهذه الرسالة.
ExtraGuestCharges / @partner 1 string حساب الشريك لهذه الرسالة. قيمة السلسلة هذه هي قيمة Partner key المدرَجة في صفحة إعدادات الحساب في Hotel Center.

ملاحظة: إذا كان لديك نظام أساسي يقدّم خلاصات لعدة حسابات، يجب أن تتطابق هذه القيمة مع قيمة سمة ID المحدّدة في عنصر <RequestorID> في رسائل <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ> للحساب نفسه.

ExtraGuestCharges / @id 1 string معرّف فريد لرسالة الطلب هذه. يتم عرض هذه القيمة في رسالة الاستجابة. يُسمَح باستخدام الأحرف a-z A-Z و0-9 و_ (شرطة سفلية) و - (شرطة).
ExtraGuestCharges / @timestamp 1 DateTime تاريخ ووقت إنشاء هذه الرسالة
ExtraGuestCharges / HotelExtraGuestCharges 0..n HotelExtraGuestCharges حاوية للرسوم الخاصة بموقع واحد
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id 1 string المعرّف الفريد للمكان يجب أن تتطابق هذه القيمة مع معرّف الفندق المحدّد باستخدام <id> في عنصر <listing> في خلاصة بيانات الفنادق. يظهر رقم تعريف الفندق أيضًا في Hotel Center.
ExtraGuestCharges / HotelExtraGuestCharges / @action 0..1 enum تحدِّد هذه السمة كيفية تطبيق التحديث. يمكن استخدام القيمة overlay فقط، ويُعدّ التراكب الإعداد التلقائي. يتم محو أي رسوم سابقة لهذا الموقع قبل تطبيق التعديل.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

مجموعة واحدة من الرسوم لموقع. قد يتضمّن ذلك قيودًا على كيفية تطبيق الرسوم وكيفية محاسبة الضيف حسب العمر أو فئة الإقامة.

يجب أن ينطبق كل ExtraGuestCharge ضمن HotelExtraGuestCharges على مجموعة فريدة من التواريخ والمنتجات. إذا كان عنصران من عنصرَي ExtraGuestCharge يشيرَان إلى مجموعة التاريخ-المنتج نفسها، يتم رفض الرسالة بأكملها.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets 1 AgeBrackets حاوية لفئات عمرية يتم استخدامها لاحتساب الرسوم حسب الفئة العمرية أو فئة الضيف
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge 0..1 AdultCharge حاوية لرسوم الإقامة لفرد بالغ إضافي
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount 0..1 float قيمة عشرية موجبة تحدّد المبلغ الثابت الذي سيتم تحصيله مقابل شخص بالغ إضافي. تستخدم هذه الرسوم العملة نفسها التي تم تحديدها للأسعار لكل ليلة.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets حاوية لرسوم الأطفال الإضافية يمكن أن تشمل هذه الفئات العمرية فقط الفئة العمرية من 0 إلى 17 عامًا.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..99 ChildAgeBracket رسوم تُطبَّق على الأطفال في فئة عمرية معيّنة يجب ترتيب هذه القيم من أدنى max_age إلى أعلى max_age. يمكن تحديد المبلغ الذي سيتم تحصيله باستخدام إما amount أو percentage أو discount_amount. يجب تحديد سمة واحدة فقط من هذه السمات لكل <ChildAgeBracket>.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer الحد الأقصى للعمر الذي يمكن أن تسري عليه الرسوم المحدّدة في <ChildAgeBracket> الحد الأدنى للعمر هو صفر إذا لم يتم تحديد أي <ChildAgeBracket> آخر قبل هذا العنصر. بخلاف ذلك، يكون أكبر من الحد الأقصى لسن الفئة العمرية السابقة.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity 1 boolean قيمة منطقية تشير إلى ما إذا كان يجب احتساب طفل في هذه الفئة العمرية ضمن إجمالي سعة الغرفة وسعة الأطفال. يمكن ضبط هذه الإمكانات باستخدام Transaction(Property Data). على سبيل المثال، قد لا يتم احتساب الرضع الذين تقلّ أعمارهم عن عمر معيّن ضمن سعة استيعاب الأطفال.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 0..1 float قيمة عشرية غير سالبة تحدّد المبلغ الثابت الذي سيتم تحصيله مقابل طفل إضافي في هذا النطاق تستخدم هذه الرسوم العملة نفسها المحدّدة للأسعار لكل ليلة.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage 0..1 float

قيمة عشرية من 1 إلى 99 تحدّد النسبة المئوية لسعر الإقامة للبالغين التي يجب تحصيلها مقابل الطفل الإضافي في هذه الفئة العمرية. تستخدم هذه الرسوم العملة نفسها المحدّدة للأسعار لكل ليلة.

راجِع المناقشة ضمن counts_as_base_occupant للحصول على تفاصيل حول كيفية احتساب سعر المحتوى المخصّص للبالغين.

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

قيمة عشرية موجبة تحدّد مبلغ خصم ثابت من سعر الإقامة للبالغين مقابل طفل إضافي في هذه الفئة العمرية تستخدم هذه الرسوم العملة نفسها المحدّدة لأسعار الإقامة لليلة واحدة.

بشكل عام، يتم احتساب الرسوم المفروضة على الطفل في هذه الفئة من خلال خصم المبلغ الثابت من "سعر الوحدة". تتم مناقشة سعر الوحدة بمزيد من التفصيل ضمن قسم سمة counts_as_base_occupant.

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

في حال تحديد السمة percentage أو discount_amount ، يجب أيضًا تحديد counts_as_base_occupant. تحدِّد هذه القيمة ما إذا كان يجب تضمين طفل في NumberOfGuest أم لا عند اختيار <BaseByGuestAmount> لتطبيق رسوم ومقدّمات مئوية مختلفة.

والهدف هنا هو الحصول على "سعر الوحدة" الذي يمكن من خلاله احتساب الرسوم الفعلية.

unit price = rate / occupancy

يجب أن تكون قيمة هذه السمة إحدى القيم التالية: never أو preferred أو always.

  • إذا تم تحديد never، يجب عدم تضمين الطفل في عدد النزلاء المسموح به وفقًا للسعر.

    إذا كنت تريد احتساب سعر إقامة لفردَين بالغَين وطفلَين (2+2)، يجب استخدام سعر الإقامة لفردَين بالغَين لأنّه ينبغي عدم تضمين الأطفال في السعر.

  • إذا تم تحديد preferred، يجب تضمين الطفل في السعر المعروض.

    إذا كنت تريد احتساب سعر إقامة لفردَين بالغَين وطفل واحد (2+1)، من الأفضل استخدام سعر الإقامة لثلاثة أفراد بالغين، ولكن إذا تعذّر العثور عليه، عليك استخدام سعر الإقامة لفردَين بالغَين.

  • في حال تحديد always، يجب دائمًا تضمين الطفل في عدد النزلاء المسموح به وفقًا للسعر.

    إذا أردت احتساب سعر إقامة لفردَين بالغَين وطفلَين (2+2)، عليك استخدام سعر الإقامة لـ 4 أفراد بالغين لأنّه يجب تضمين الأطفال.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes حاوية لقائمة بأنواع الغرف التي تنطبق عليها الرسوم يتم تطبيق الرسوم على كل <RoomType> محدّد. في حال عدم تحديد <RoomTypes>، تنطبق الرسوم على جميع الغرف ضمن الفندق المحدّد.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType 1..n RoomType تُستخدَم لتحديد نوع الغرفة. يتم تعريف نوع الغرفة في عنصر <RoomData> في رسالة المعاملة (بيانات الفندق)، ويتمّ الإشارة إليه باستخدام قيمته <RoomID>. (تشير سمة InvTypeCode أيضًا إلى قيمة <RoomID> في رسائل OTA_HotelRateAmountNotifRQ).
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id 1 string المعرّف الفريد للمستودع (نوع الغرفة) ترتبط هذه القيمة بالقيمة <RoomID> في رسالة Transaction (Property Data). الحد الأقصى لعدد الأحرف المسموح به هو 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans 0..1 RatePlans حاوية لقائمة خطط الأسعار التي تنطبق عليها الرسوم في حال عدم تحديد <RatePlans>، تنطبق الرسوم على جميع خطط الأسعار.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan 1..n RatePlan تحدّد خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة من الحزمة والأسعار ومدى التوفّر، كما هو محدّد في رسائل المعاملات (بيانات الفندق) وOTA_HotelRateAmountNotifRQ وOTA_HotelAvailNotifRQ وكما هو محدّد من خلال PackageID.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id 1 string المعرّف الفريد لخطة الأسعار يتم ربط هذه القيمة بقيمة PackageID في <PackageData> في رسالة Transaction (Property Data)، وفي سمة RatePlanCode في <StatusApplicationControl> في كلّ من رسالتَي <OTA_HotelRateAmountNotifRQ> و <OTA_HotelAvailNotifRQ>. الحد الأقصى لعدد الأحرف المسموح به هو 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates 0..1 StayDates حاوية لنطاق زمني واحد أو أكثر يحدّد كيفية تطبيق الرسوم
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange 1..99 DateRange نطاق زمني يحدّد التواريخ التي سيتم تطبيق العرض الترويجي خلالها
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start 0..1 Date تاريخ البدء (استنادًا إلى المنطقة الزمنية للموقع) شاملاً النطاق الزمني. يجب أن يكون هذا التاريخ قبل تاريخ end أو مطابقًا له. في حال عدم تحديد start، يكون النطاق الزمني غير محدود بشكلٍ فعال من حيث تاريخ البدء.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end 0..1 Date تاريخ الانتهاء (استنادًا إلى المنطقة الزمنية للموقع) شاملاً النطاق الزمني يجب أن يكون هذا التاريخ هو نفسه تاريخ start أو تاريخ لاحق. إذا لم يتم تحديد end، يكون النطاق الزمني غير محدود بشكلٍ فعال من حيث تاريخ الانتهاء.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week 0..1 string

أيام الأسبوع المسموح بها في النطاق الزمني في حال عدم تحديد هذه السمة، تكون جميع الأيام مسموحًا بها في النطاق الزمني. يحدِّد كل حرف في السلسلة يومًا. على سبيل المثال، تشير القيمة "MTWHF" إلى أنّه يُسمح بأيام الأسبوع في النطاق الزمني.

الأحرف الصالحة هي:

  • M للاثنين
  • T للثلاثاء
  • W للأربعاء
  • H للخميس
  • F للجمعة
  • S للسبت
  • U ليوم الأحد

أيّ مجموعة من الأحرف صالحة.

أمثلة

رسوم البالغين

لا يمكن التعبير عن رسوم البالغين الإضافية إلا بمبالغ ثابتة. يوضّح المثال التالي رسالة ExtraGuestCharges تحدّد الرسوم المفروضة على المحتوى المخصّص للبالغين:

<?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>

في ما يلي الأسعار المقابلة:

<?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>

عندما يبحث مستخدم على Google عن فندق يتسع لأربعة بالغين، سيكون السعر الإجمالي هو 170 = 120 + 50.

تأتي القيمة 120 من سعر <BaseByGuestAmt> مع NumberOfGuests="3"، وتأتي القيمة 50 من AdultCharge amount="50".

الرسوم المتعلقة بالطفل

يتم التعبير عن الرسوم للأطفال حسب الفئات العمرية التي تصل إلى 17 عامًا، ويمكن التعبير عنها بمبالغ ثابتة أو نسب مئوية أو خصومات.

يعرض المثال التالي رسالة ExtraGuestCharges تحدّد رسوم الأطفال:

<?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>

في ما يلي الأسعار المقابلة:

<?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

قيود الرسوم

جميع أنواع القيود اختيارية ويمكن استخدام أيّ مجموعة منها.

يعرض المثال التالي رسالة ExtraGuestCharges تحدّد القيود:

<?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>

تُحدِّد الرسالة أعلاه أنّه يجب تحصيل رسوم من البالغين مقابل أي منتج يكون نوع الغرفة فيه "سرير كوين" أو "سرير كينغ" مع خطة الأسعار "شبكة واي فاي مجانية" أو "فطور ساخن" خلال الفترة من 1 أيلول (سبتمبر) 2020 إلى 14 أيلول (سبتمبر) 2020.

الرسوم المتداخلة

يعرض هذا القسم مثالاً على رسالة غير صالحة تحدّد رسومًا مختلفة للمجموعات نفسها من التواريخ والمنتجات.


<?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>

الرسالة أعلاه غير صالحة لأنّ <ExtraGuestCharge> الأول يحدّد أنّه يجب تحصيل رسوم إضافية من البالغين 50 مقابل "غرفة بسريرين مزدوجين" و "شبكة Wi-Fi مجانية" من 1 إلى 14 أيلول (سبتمبر). يحدِّد العنصر <ExtraGuestCharge> أنّه يجب تحصيل رسوم إضافية من البالغين بقيمة 20 دولار أمريكي في الفترة من 1 إلى 5 أيلول (سبتمبر) مقابل أي من الغرف "queen" أو "king" مع أي من "free-wifi" أو "hot-breakfast". هناك رسوم متداخلة لكل من "queen" و "free-wifi" من 1 إلى 5 أيلول (سبتمبر)، وهناك تعارض بين ما إذا كان سيتم تحصيل 20 أو 50 دولار أمريكي مقابل شخص بالغ إضافي.

الردود

البنية

تستخدِم رسالة ExtraGuestChargesResponse البنية التالية:

<?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>

العناصر والسمات

تحتوي رسالة ExtraGuestChargesResponse على العناصر والسمات التالية:

العنصر / @السمة عدد مرات الظهور النوع الوصف
ExtraGuestChargesResponse 1 Complex element العنصر الجذر الذي يشير إلى نجاح رسالة طلب ExtraGuestCharges أو المشاكل المتعلّقة بها
ExtraGuestChargesResponse / @timestamp 1 DateTime تاريخ ووقت إنشاء هذه الرسالة
ExtraGuestChargesResponse / @id 1 string المعرّف الفريد من رسالة ExtraGuestCharges المرتبطة.
ExtraGuestChargesResponse / @partner 1 string حساب الشريك لهذه الرسالة.
ExtraGuestChargesResponse / Success 0..1 Success يشير إلى أنّه تمت معالجة رسالة ExtraGuestCharges بنجاح بدون أي تحذيرات أو أخطاء أو حالات تعذّر.

يتم استخدام إما <Success> أو <Issues> في كل رسالة.

ExtraGuestChargesResponse / Issues 0..1 Issues حاوية لمشكلة واحدة أو أكثر حدثت أثناء معالجة رسالة ExtraGuestCharges

يتم استخدام إما <Success> أو <Issues> في كل رسالة.

ExtraGuestChargesResponse / Issues / Issue 1..n Issue وصف التحذير أو الخطأ أو العُطل الذي حدث أثناء المعالجةExtraGuestCharges يمكنك الاطّلاع على تفاصيل عن هذه المشاكل في رسائل الخطأ المتعلّقة بحالة الخلاصة.
ExtraGuestChargesResponse / Issues / Issue / @code 1 integer معرّف المشكلة
ExtraGuestChargesResponse / Issues / Issue / @status 1 enum

نوع المشكلة التي واجهتها

القيم الصالحة هي warning وerror وfailure.

أمثلة

تم الإجراء بنجاح

في ما يلي ردّ على رسالة ExtraGuestCharges تمت معالجتها بنجاح.

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

المشاكل

في ما يلي ردّ على رسالة ExtraGuestCharges لم تتم معالجتها بسبب أخطاء.

<?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>