Zasady dotyczące sprawdzania limitów przychodów

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Przegląd

Zasada MonetizationLimitsCheck umożliwia egzekwowanie limitów zarabiania w przypadku wywołań interfejsu API wykonywanych przez dewelopera aplikacji.

Oto niektóre przypadki, w których zasada jest aktywowana:

  • Deweloper aplikacji, który uzyskuje dostęp do interfejsu API, na którym można zarabiać, nie kupił subskrypcji powiązanej usługi API .
  • Konto dewelopera ma niewystarczające saldo.
  • Deweloper przekroczył limit wolumenu transakcji.

Informacje o tym, jak dołączyć zasadę do serwera proxy interfejsu API, znajdziesz w artykule Egzekwowanie limitów zarabiania w przypadku serwerów proxy interfejsu API.

Element <MonetizationLimitsCheck>

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 tabeli poniżej znajdziesz ogólny opis elementów podrzędnych elementu <MonetizationLimitsCheck>:

Element podrzędny Wymagany? Opis
<DisplayName> Opcjonalny Niestandardowa nazwa zasady.
<FaultResponse> Opcjonalny Określa komunikat odpowiedzi zwracany do klienta wysyłającego żądanie, gdy wystąpi błąd.
<IgnoreUnresolvedVariables> Opcjonalny Określa, czy przetwarzanie ma się zatrzymać, gdy napotkana zostanie nierozwiązana zmienna.
<Variables> Opcjonalny Określa zmienne przepływu, które mają być sprawdzane pod kątem limitów zarabiania.

Element <MonetizationLimitsCheck> używa tej 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

Poniższy przykład przedstawia definicję 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.

Informacje o elementach podrzędnych

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

<DisplayName>

Używaj go w połączeniu z atrybutem name, aby oznaczyć zasadę w edytorze proxy interfejsu zarządzania inną, bardziej naturalnie brzmiącą nazwą.

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

Wartość domyślna nie dotyczy
Wymagany? Opcjonalnie. Jeśli pominiesz <DisplayName>, używana jest wartość atrybutu name zasady.
Typ Ciąg znaków
Element nadrzędny <PolicyElement>
Elementy podrzędne Brak

Element <DisplayName> ma tę 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 ma się zatrzymać, gdy Apigee napotka nierozwiązaną zmienną.

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

Aby zignorować nierozwiązane zmienne i kontynuować przetwarzanie, ustaw wartość na true; w przeciwnym razie false. Wartość domyślna to true.

Ustawienie <IgnoreUnresolvedVariables> na true różni się od ustawienia continueOnError elementu <MonetizationLimitsCheck>'s na true. Jeśli ustawisz continueOnError na true, Apigee zignoruje nie tylko błędy zmiennych, ale też wszystkie błędy.

Element <IgnoreUnresolvedVariables> używa tej składni:

Składnia

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

Przykład

Poniższy przykład ustawia <IgnoreUnresolvedVariables> na false:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

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

W elemencie <Variables> możesz określić tylko element <Product>. Apigee pobiera nazwę usługi API ze zmiennej przepływu określonej w elemencie <Product>. Jeśli nie określisz elementu <Variables>, Apigee domyślnie pobierze nazwę usługi API ze zmiennej kontekstowej apiproduct.name. Używając nazwy usługi API, Apigee pobiera odpowiedni plan taryfowy dla usługi i sprawdza limity zarabiania.

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

Element <Variables> używa tej składni:

Składnia

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

Przykład

Poniższy przykład pobiera nazwę usługi API z niestandardowej zmiennej przepływu myproductvar.name znajdującej się w przepływie serwera proxy interfejsu API.

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

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

<Product>

Określa zmienną zawierającą nazwę usługi API.

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

Element <Product> używa tej składni:

Składnia

<Product>VARIABLE_NAME</Product>

Przykład

Poniższy przykład pobiera nazwę usługi API z niestandardowej zmiennej przepływu myproductvar.name znajdującej się w przepływie serwera proxy interfejsu API.

<Product>myproductvar.name</Product>

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

<FaultResponse>

Definiuje komunikat odpowiedzi zwracany do klienta wysyłającego żądanie, jeśli wystąpi błąd. Komunikaty odpowiedzi możesz dostosować do swoich potrzeb. Więcej informacji o elemencie i wszystkich jego elementach podrzędnych znajdziesz w artykule FaultResponse.

Zmienne przepływu

Jeśli ustawisz atrybut ContinueOnError elementu <MonetizationLimitsCheck> na true, nie zostanie zgłoszony żaden błąd. W takim przypadku automatycznie ustawiane są zmienne przepływu mint.limitsViolated, mint.isDeveloperSuspended i mint.limitsPolicyError. W razie potrzeby można użyć tych zmiennych do dalszej obsługi wyjątków.