سياسة تحقيق الحد الأقصى المسموح به

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

نظرة عامة

تتيح لك سياسة MonetizationLimitsCheck فرض قيود على إمكانية تحقيق الربح من خلال طلبات البيانات من واجهة برمجة التطبيقات التي يجريها مطوِّر التطبيق.

في ما يلي بعض الحالات التي يتم فيها تفعيل السياسة:

  • إذا لم يشترِ مطوّر التطبيق الذي بإمكانه الوصول إلى واجهة برمجة التطبيقات التي تتيح تحقيق الربح اشتراكًا في المنتج المرتبط بواجهة برمجة التطبيقات
  • لا يتضمّن حساب المطوّر رصيدًا غير كافٍ.
  • تجاوز مطوّر البرامج الحد الأقصى لحجم المعاملات.

للحصول على معلومات حول كيفية إرفاق السياسة بالخادم الوكيل لواجهة برمجة التطبيقات، يُرجى الاطّلاع على المقالة فرض حدود لتحقيق الربح على الخوادم الوكيلة لواجهة برمجة التطبيقات.

عنصر <MonetizationLimitsCheck>

تحدّد سياسة MonetizationlimitsCheck.

القيمة التلقائية لا ينطبق
هل هو مطلوب؟ مطلوبة
النوع نوع معقد
العنصر الرئيسي لا ينطبق
العناصر الفرعية <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

يقدّم الجدول التالي وصفًا عالي المستوى للعناصر الفرعية لـ <MonetizationLimitsCheck>:

عنصر فرعي مطلوب؟ الوصف
<DisplayName> اختياري اسم مخصّص للسياسة
<FaultResponse> اختياري تحدِّد هذه السياسة رسالة الاستجابة التي يتم عرضها على العميل الطالب عند حدوث الخطأ.
<IgnoreUnresolvedVariables> اختياري تحدِّد هذه السمة ما إذا كانت المعالجة ستتوقف عند مصادفة متغير لم يتم حله.
<Variables> اختياري تحدّد متغيّرات التدفق للتحقّق من حدود تحقيق الربح.

يستخدم العنصر <MonetizationLimitsCheck> الصيغة التالية:

البنية

<?xml version="1.0" encoding="UTF-8"?>
<MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="POLICY_NAME">
    <DisplayName>DISPLAY_NAME</DisplayName>
    <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
    <Variables>
        <Product>VARIABLE_NAME</Product>
    </Variables>
    <FaultResponse>
        <Set>
            <Payload contentType="text/xml">
                <error>
                    <messages>
                        <message>MESSAGE_TEXT</message>
                        <message>MESSAGE_TEXT</message>
                    </messages>
                </error>
            </Payload>
            <StatusCode>HTTP_STATUS</StatusCode>
            <ReasonPhrase>REASON_TEXT</ReasonPhrase>
        </Set>
    </FaultResponse>
</MonetizationLimitsCheck>

مثال

يوضّح المثال التالي تعريف سياسة MonetizationlimitsCheck:

<?xml version="1.0" encoding="UTF-8"?>
<MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="Monetization-Limits-Check">
    <DisplayName>Monetization Limits Check</DisplayName>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <Variables>
        <Product>myproductvar.name</Product>
    </Variables>
	<FaultResponse>
	        <Set>
	            <Payload contentType="text/xml">
	                <error>
	                    <messages>
	                        <message>Developer has reached usage quota</message>
	                        <message>Is Developer Suspended - {monetizationLimits.isDeveloperSuspended} </message>
	                    </messages>
	                </error>
	            </Payload>
	            <StatusCode>403</StatusCode>
	            <ReasonPhrase>Forbidden</ReasonPhrase>
	        </Set>
	</FaultResponse>
 </MonetizationLimitsCheck>

يتضمن هذا العنصر السمات التالية الشائعة لجميع السياسات:

السمة تلقائي مطلوب الوصف
name لا ينطبق مطلوب

الاسم الداخلي للسياسة. يمكن أن تحتوي قيمة السمة name على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. ويجب ألا تتجاوز هذه القيمة 255 حرفًا.

اختياريًا، يمكنك استخدام العنصر <DisplayName> لتصنيف السياسة في محرّر الخادم الوكيل لواجهة مستخدم الإدارة باستخدام اسم بلغة مختلفة.

continueOnError false إجراء اختياري يمكنك ضبطها على "خطأ" لعرض رسالة خطأ عند تعذّر تنفيذ إحدى السياسات. ويُعدّ هذا سلوكًا متوقعًا في معظم السياسات. يمكنك ضبط القيمة على "صحيح" للاستمرار في تنفيذ العملية حتى بعد تعذُّر تنفيذ سياسة.
enabled صحيح إجراء اختياري اضبط القيمة على "true" لفرض السياسة. اضبط هذه القيمة على "false" على "إيقاف" السياسة. لن يتم فرض السياسة حتى إذا ظلت مرتبطة بتدفق.
async   false منهي العمل به تم إيقاف هذه السمة نهائيًا.

مرجع عنصر ثانوي

يصف هذا القسم العناصر الفرعية لـ <MonetizationLimitsCheck>.

<DisplayName>

يمكنك استخدامها بالإضافة إلى السمة name لتصنيف السياسة في محرِّر الخادم الوكيل لواجهة المستخدم الخاصة بالإدارة، وذلك باستخدام اسم مختلف يبدو طبيعيًا.

العنصر <DisplayName> شائع لجميع السياسات.

القيمة التلقائية timing fixed in amara
هل هي مطلوبة؟ اختياريّ. إذا حذفت <DisplayName>، سيتم استخدام قيمة السمة name للسياسة.
النوع سلسلة
العنصر الرئيسي <PolicyElement>
العناصر الثانوية لا ينطبق

يستخدم العنصر <DisplayName> البنية التالية:

البنية

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

مثال

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

لا يتضمّن العنصر <DisplayName> أيّ سمات أو عناصر فرعية.

<IgnoreUnresolvedVariables>

تحدِّد هذه السياسة ما إذا كانت معالجة السياسة يجب أن تتوقف عندما تواجه Apigee متغيّرًا لم يتم حله.

القيمة التلقائية صحيح
هل هو مطلوب؟ اختياري
النوع منطقي
العنصر الرئيسي <MonetizationLimitsCheck>
العناصر الفرعية لا ينطبق

لتجاهل المتغيّرات التي لم يتمّ حلّها ومواصلة المعالجة، اضبط القيمة على true، وإلا اضبط القيمة على false. القيمة التلقائية هي true.

إنّ ضبط <IgnoreUnresolvedVariables> على true يختلف عن ضبط continueOnError للعنصر <MonetizationLimitsCheck> على true. في حال ضبط continueOnError على true، لا تتجاهل Apigee الأخطاء المتغيّرة فحسب، بل تتجاهل أيضًا جميع الأخطاء.

يستخدم العنصر <IgnoreUnresolvedVariables> الصيغة التالية:

البنية

<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>

مثال

يضبط المثال التالي <IgnoreUnresolvedVariables> على false:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

تحدِّد هذه السياسة متغيّرات التدفق التي تريد جلب أسماء الكيانات أو الموارد منها أثناء تنفيذ السياسة.

يمكنك تحديد العنصر <Product> فقط داخل العنصر <Variables>. تحصل Apigee على اسم منتج واجهة برمجة التطبيقات من متغيّر التدفق المحدّد في العنصر <Product>. إذا لم تحدّد العنصر <Variables>، تحصل Apigee تلقائيًا على اسم منتج واجهة برمجة التطبيقات من متغيّر السياق apiproduct.name. باستخدام اسم منتج واجهة برمجة التطبيقات، تحصل Apigee على خطة السعر المقابلة للمنتج وتجري فحصًا لحدود تحقيق الربح.

القيمة التلقائية لا ينطبق
هل هو مطلوب؟ اختياري
النوع نوع معقد
العنصر الرئيسي <MonetizationLimitsCheck>
العناصر الفرعية <Product>

يستخدم العنصر <Variables> الصيغة التالية:

البنية

<Variables>
    <Product>VARIABLE_NAME</Product>
</Variables>

مثال

يحصل المثال التالي على اسم منتج واجهة برمجة التطبيقات من متغيّر التدفق المخصّص myproductvar.name المتوفّر في تدفق الخادم الوكيل لواجهة برمجة التطبيقات.

<Variables>
    <Product>myproductvar.name</Product>
</Variables>

يمكنك ضبط متغيّرات التدفق المخصَّص باستخدام سياسات مثل AssignMessage أو JavaScript.

<Product>

تُحدِّد المتغيّر الذي يتضمّن اسم المنتج في واجهة برمجة التطبيقات.

القيمة التلقائية لا ينطبق
هل هو مطلوب؟ اختياري
النوع سلسلة
العنصر الرئيسي <Variables>
العناصر الفرعية لا ينطبق

يستخدم العنصر <Product> الصيغة التالية:

البنية

<Product>VARIABLE_NAME</Product>

مثال

يحصل المثال التالي على اسم منتج واجهة برمجة التطبيقات من متغيّر التدفق المخصّص myproductvar.name المتوفّر في تدفق الخادم الوكيل لواجهة برمجة التطبيقات.

<Product>myproductvar.name</Product>

يمكنك ضبط متغيّرات التدفق المخصَّص باستخدام سياسات مثل AssignMessage أو JavaScript.

<FaultResponse>

تحدّد رسالة الاستجابة التي يتم عرضها إلى العميل الطالب في حال حدوث خطأ. يمكنك تخصيص رسائل الردّ استنادًا إلى متطلباتك. للحصول على مزيد من المعلومات حول العنصر وجميع العناصر الفرعية التابعة له، يمكنك الاطّلاع على FaultResponse.

متغيرات التدفق

في حال ضبط السمة ContinueOnError للعنصر <MonetizationLimitsCheck> على "صحيح"، لن يظهر أي خطأ. في هذه الحالة، يتم ضبط متغيّرات التدفق، mint.limitsViolated وmint.isDeveloperSuspended وmint.limitsPolicyError تلقائيًا. يمكن استخدام هذه المتغيّرات لإجراء المزيد من معالجة الاستثناءات إذا لزم الأمر.