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

أنت تعرض مستندات 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>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails.
enabled true Optional Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

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

يصف هذا القسم العناصر الثانوية في <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 عن ضبط قيمة العنصر <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 تلقائيًا. يمكن استخدام هذه المتغيرات وإجراء المزيد من معالجة الاستثناء إذا لزم الأمر.