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

أنت تعرض مستندات 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 في السياسة
النوع سلسلة
العنصر الرئيسي &lt;PolicyElement&gt;
العناصر الفرعية لا ينطبق

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

البنية

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

مثال

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

لا يحتوي العنصر <DisplayName> على سمات أو عناصر ثانوية

<IgnoreUnresolvedVariables>

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

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

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

يختلف ضبط <IgnoreUnresolvedVariables> على true عن ضبط قيمة العنصر <MonetizationLimitsCheck>. continueOnError إلى 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.

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

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