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

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

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

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

الكائن Requests

البنية

تستخدم الرسالة 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 على العناصر والسمات التالية:

العنصر / @Attribute عدد مرات الظهور النوع الوصف
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> في خلاصة قائمة الفنادق. يكون رقم تعريف الفندق مُدرَجًا أيضًا في مركز إدارة معلومات الفنادق.
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(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، يجب عدم تضمين الطفل في إشغال السعر.

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

  • إذا تم تحديد السمة preferred، من المفضّل تضمين الطفل في إشغال السعر.

    إذا أردت احتساب السعر لشخصَين بالغَين وطفل واحد (طفلان وطفل واحد)، يُفضَّل استخدام السعر لثلاثة أشخاص بالغين، ولكن إذا تعذّر العثور على السعر، يجب استخدام السعر لشخصَين بالغَين.

  • إذا تم تحديد always، يجب تضمين الطفل دائمًا في إشغال السعر.

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

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes حاوية لقائمة أنواع الغرف التي تنطبق عليها الرسوم يتم تطبيق الرسوم على كل <RoomType> محدّدة. إذا لم يتم تحديد السمة <RoomTypes>، سيتم تطبيق الرسوم على جميع الغرف داخل الموقع المحدّد.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType 1..n RoomType تحدِّد هذه السمة نوع الغرفة. يتم تحديد نوع الغرفة في عنصر <RoomData> في رسالة المعاملات (بيانات الموقع) وتتم الإشارة إليه باستخدام قيمتها <RoomID>. (تتم الإشارة إلى قيمتها <RoomID> أيضًا من خلال السمة InvTypeCode في رسائل OTA_HotelRateAmountNotifRQ).
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id 1 string المعرّف الفريد للمستودع (نوع الغرفة) ويتم ربط هذه القيمة بـ <RoomID> في رسالة المعاملة (بيانات الموقع). الحدّ الأقصى لعدد الأحرف المسموح به هو 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> في رسالة المعاملة (بيانات الموقع)، وبسمة 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>

توضّح الرسالة أعلاه أنّه يجب تحصيل رسوم من البالغين مقابل أي منتج مصنّف في نوع الغرفة "كوين" أو "كينغ" ضمن خطة سعر "خدمة Wi-Fi مجانية" أو "فطور ساخن" خلال الفترة من 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> الأولى تشير إلى أن "الملكة" و "Wi-Fi مجاني" للفترة من 1 إلى 14 أيلول (سبتمبر) يجب تحصيل رسوم إضافية من البالغين 50 عامًا. ويذكر الشرط الثاني في السمة <ExtraGuestCharge> أنّ أيًا من مصطلحات "الملكة" أو "الملك" الذي يقدّم أيًا من عبارة "Wi-Fi مجاني" أو "إفطار ساخن" من 1 إلى 5 أيلول (سبتمبر) يجب أن يتقاضى عن الأشخاص البالغين 20 شخصًا إضافيًا. وهناك رسوم متداخلة مقابل شراء "كوين" و "Wi-Fi مجاني" للفترة من 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 على العناصر والسمات التالية:

العنصر / @Attribute عدد مرات الظهور النوع الوصف
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>