कमाई करने की सीमाओं की जांच करने से जुड़ी नीति

आपको 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 गलत ज़रूरी नहीं नीति के काम न करने पर गड़बड़ी दिखाने के लिए, "गलत" पर सेट करें. ज़्यादातर नीतियों के लिए इस तरीके का इस्तेमाल किया जाना चाहिए. नीति लागू न होने के बाद भी फ़्लो चलाने के लिए, "सही" पर सेट करें.
enabled सही ज़रूरी नहीं नीति लागू करने के लिए, "सही" पर सेट करें. नीति को "बंद" करने के लिए "गलत" पर सेट करें. अगर नीति किसी फ़्लो से जुड़ी हुई हो, तो भी उसे लागू नहीं किया जाएगा.
async   गलत बहिष्कृत इस एट्रिब्यूट के इस्तेमाल पर रोक लगा दी गई है.

चाइल्ड एलिमेंट का रेफ़रंस

इस सेक्शन में, <MonetizationLimitsCheck> के चाइल्ड एलिमेंट के बारे में बताया गया है.

<DisplayName>

मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में नीति को लेबल करने के लिए, name एट्रिब्यूट के साथ-साथ इसका इस्तेमाल करें. इससे नीति को ज़्यादा नैचुरल लगने वाला अलग नाम दिया जा सकता है.

<DisplayName> एलिमेंट, सभी नीतियों में शामिल होता है.

डिफ़ॉल्ट वैल्यू लागू नहीं
ज़रूरी है? ज़रूरी नहीं. <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>

यह उन फ़्लो वैरिएबल के बारे में बताता है जिनसे नीति लागू करते समय, आपको इकाई या संसाधन के नाम फ़ेच करने हैं.

<Variables> एलिमेंट में सिर्फ़ <Product> एलिमेंट की जानकारी दी जा सकती है. 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 अपने-आप सेट हो जाते हैं. इन वैरिएबल का इस्तेमाल, ज़रूरत पड़ने पर अपवाद को मैनेज करने के लिए किया जा सकता है.