Zasady dotyczące sprawdzania limitów przychodów

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Omówienie

Zasada MonetizationLimitsCheck pozwala egzekwować limity zarabiania na wywołaniach interfejsu API przez dewelopera aplikacji.

Oto kilka przypadków wywołania zasady:

  • Jeśli deweloper aplikacji, który uzyskuje dostęp do interfejsu API monetyzacji, nie kupił subskrypcji powiązana usługa API
  • Na koncie dewelopera nie ma wystarczających środków.
  • Deweloper przekroczył limit liczby transakcji.

Informacje na temat dołączania zasad do serwera proxy interfejsu API znajdziesz w sekcji Egzekwuj limity zarabiania na serwerach proxy interfejsu API.

<MonetizationLimitsCheck> element

Określa zasadę MonetizationLimitsCheck.

Wartość domyślna Nie dotyczy
Wymagany? Wymagane
Typ Typ złożony
Element nadrzędny Nie dotyczy
Elementy podrzędne <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

W tej tabeli znajdziesz ogólny opis elementów podrzędnych elementu <MonetizationLimitsCheck>:

Element podrzędny Wymagana? Opis
<DisplayName> Opcjonalnie Własna nazwa zasady.
<FaultResponse> Opcjonalnie Określa komunikat z odpowiedzią zwracany do klienta wysyłającego żądanie, gdy pojawia się błąd.
<IgnoreUnresolvedVariables> Opcjonalnie Określa, czy przetwarzanie zatrzymuje się po napotkaniu nierozwiązanej zmiennej.
<Variables> Opcjonalnie Określa zmienne procesu, które mają zostać sprawdzone pod kątem limitów zarabiania.

Element <MonetizationLimitsCheck> ma taką składnię:

Składnia

<?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>

Przykład

Oto przykład definicji zasady 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>

Ten element ma te atrybuty, które są wspólne dla wszystkich zasad:

Atrybut Domyślnie Wymagany? Description
name Nie dotyczy Wymagane

Wewnętrzna nazwa zasady. Wartość atrybutu name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekraczać 255 znaków.

Opcjonalnie użyj elementu <DisplayName>, aby oznaczyć zasadę w edytorze proxy interfejsu zarządzania inną nazwą w języku naturalnym.

continueOnError fałsz Opcjonalnie Ustaw wartość „false”, aby wyświetlać błąd, gdy zasada nie działa. To prawidłowy proces w przypadku większości zasad. Ustaw wartość „true”, aby kontynuować wykonywanie przepływu nawet po wystąpieniu błędu.
enabled prawda Opcjonalnie Ustaw wartość „true”, aby egzekwować zasadę. Ustaw wartość „false”, aby wyłączyć zasadę. Zasada nie będzie egzekwowana, nawet jeśli pozostanie powiązana z przepływem.
async   fałsz Wycofano Ten atrybut został wycofany.

Odniesienie do elementu podrzędnego

W tej sekcji opisano elementy podrzędne elementu <MonetizationLimitsCheck>.

<DisplayName>

Używaj oprócz atrybutu name do oznaczania zasady w edytor serwera proxy w interfejsie zarządzania o innej, bardziej naturalnie brzmiącej nazwie.

Element <DisplayName> jest wspólny dla wszystkich zasad.

Wartość domyślna nie dotyczy
Wymagany? Opcjonalnie: Jeśli pominiesz <DisplayName>, wartość pary klucz-wartość jest używany atrybut name zasady
Typ Ciąg znaków
Element nadrzędny &lt;PolicyElement&gt;
Elementy podrzędne Brak

Element <DisplayName> ma taką składnię:

Składnia

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

Przykład

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

Element <DisplayName> nie ma atrybutów ani elementów podrzędnych.

<IgnoreUnresolvedVariables>

Określa, czy przetwarzanie zasady powinno zostać zatrzymane, gdy Apigee natrafi na nierozwiązaną zmienną.

Wartość domyślna Prawda
Wymagany? Opcjonalnie
Typ Wartość logiczna
Element nadrzędny <MonetizationLimitsCheck>
Elementy podrzędne Brak

Aby zignorować nierozstrzygnięte zmienne i kontynuować przetwarzanie, ustaw wartość na true; w przeciwnym razie: false. Wartością domyślną jest true.

Ustawienie <IgnoreUnresolvedVariables> na true różni się od ustawienia elementu <MonetizationLimitsCheck> continueOnError do true. Jeśli ustawisz continueOnError na true, Apigee będzie ignorować wartości błędy zmiennych, ale też wszystkie błędy.

Element <IgnoreUnresolvedVariables> ma taką składnię:

Składnia

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

Przykład

Ten przykład ustawia <IgnoreUnresolvedVariables> na false:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

Określa zmienne przepływu, z których chcesz pobrać nazw encji lub zasobów podczas wykonywania zasady.

Element <Product> możesz określić tylko w elemencie <Variables>. Apigee uzyskuje nazwę produktu API ze zmiennej przepływu określonej w elemencie <Product>. Jeśli nie określa elementu <Variables>, Apigee domyślnie pobiera nazwę usługi interfejsu API z apiproduct.name – zmienna kontekstowa. Dzięki użyciu nazwy usługi API Apigee pobiera odpowiedni abonament usługi i sprawdza limity zarabiania.

Wartość domyślna Nie dotyczy
Wymagany? Opcjonalnie
Typ Typ złożony
Element nadrzędny <MonetizationLimitsCheck>
Elementy podrzędne <Product>

Element <Variables> ma taką składnię:

Składnia

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

Przykład

Ten przykład pobiera nazwę produktu API z niestandardowej zmiennej przepływu myproductvar.name obecne w przepływie serwera proxy interfejsu API.

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

Niestandardowe zmienne przepływu możesz ustawiać za pomocą zasad takich jak AssignMessage czy JavaScript.

<Product>

Określa zmienną z nazwą usługi API.

Wartość domyślna Nie dotyczy
Wymagany? Opcjonalnie
Typ Ciąg znaków
Element nadrzędny <Variables>
Elementy podrzędne Brak

Element <Product> ma taką składnię:

Składnia

<Product>VARIABLE_NAME</Product>

Przykład

Ten przykład pobiera nazwę produktu API z niestandardowej zmiennej przepływu myproductvar.name obecne w przepływie serwera proxy interfejsu API.

<Product>myproductvar.name</Product>

Niestandardowe zmienne przepływu możesz ustawiać za pomocą zasad takich jak AssignMessage czy JavaScript.

<FaultResponse>

Określa komunikat z odpowiedzią zwracany do klienta żądającego, jeśli zostanie zgłoszony błąd. Możesz dostosować odpowiedź wiadomości zgodnie z wymaganiami. Więcej informacji na temat elementu i wszystkich jego elementów podrzędnych – patrz FaultResponse.

Zmienne przepływu

Jeśli ustawisz w elemencie <MonetizationLimitsCheck> atrybut ContinueOnError ma wartość true (prawda), brak błędu. W tym przypadku parametr zmienne przepływu, mint.limitsViolated, mint.isDeveloperSuspended i mint.limitsPolicyError są ustawiane automatycznie. Tych zmiennych można użyć do: w razie potrzeby przeprowadzić dalszą obsługę wyjątków.