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

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

खास जानकारी

MonetizationLimitsCheck की नीति से, आपको ऐप्लिकेशन डेवलपर के एपीआई कॉल पर कमाई करने की सीमाएं लागू करने में मदद मिलती है.

नीति के ट्रिगर होने पर, इनमें से कुछ मामले यहां दिए गए हैं:

  • अगर कमाई करने वाले एपीआई को ऐक्सेस करने वाले किसी ऐप्लिकेशन डेवलपर ने एपीआई प्रॉडक्ट की सदस्यता नहीं खरीदी है
  • डेवलपर के खाते में ज़रूरी बैलेंस नहीं है.
  • डेवलपर ने लेन-देन की सीमा पार कर ली है.

अपने एपीआई प्रॉक्सी पर नीति अटैच करने के तरीके के बारे में जानकारी पाने के लिए, एपीआई प्रॉक्सी पर कमाई करने की सीमाएं लागू करना देखें.

<MonetizationLimitsCheck> एलिमेंट

MonetizationLimitCheck की नीति के बारे में जानकारी दी गई है.

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