Zasady dotyczące sprawdzania limitów przychodów

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Opis

Zasady MonetizationLimitsCheck pozwalają egzekwować limity zarabiania na wywołaniach interfejsu API wykonywanych przez dewelopera aplikacji.

Oto kilka przykładów:

  • Jeśli deweloper aplikacji uzyskujący dostęp do interfejsu API zarabiania nie kupił subskrypcji powiązanej usługi interfejsu API
  • Na koncie dewelopera nie ma wystarczającej ilości środków.
  • Deweloper przekroczył limit liczby transakcji.

Więcej informacji o łączeniu zasad z serwerem proxy interfejsu API znajdziesz w artykule o egzekwowaniu limitów zarabiania na serwerach proxy interfejsów 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 tej tabeli znajdziesz ogólny opis elementów podrzędnych obiektu <MonetizationLimitsCheck>:

Element podrzędny Wymagana? Opis
<DisplayName> Opcjonalnie Niestandardowa nazwa zasady.
<FaultResponse> Opcjonalnie Określa komunikat z odpowiedzią zwrócony do klienta wysyłającego żądanie po wystąpieniu błędu.
<IgnoreUnresolvedVariables> Opcjonalnie Określa, czy przetwarzanie zatrzymuje się w przypadku wystąpienia nierozstrzygniętej zmiennej.
<Variables> Opcjonalnie Określa zmienne przepływu do sprawdzenia pod kątem limitów zarabiania.

W elemencie <MonetizationLimitsCheck> używana jest taka składnia:

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 pokazuje 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.

Odniesienie do elementu podrzędnego

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

<DisplayName>

Użyj oprócz atrybutu name, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną, bardziej naturalną nazwą.

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

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

W elemencie <DisplayName> używana jest taka składnia:

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 zostać zatrzymane, gdy Apigee napotka nierozstrzygniętą 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 ustaw false. Wartością domyślną jest true.

Ustawienie wartości <IgnoreUnresolvedVariables> na true różni się od ustawienia właściwości continueOnError elementu <MonetizationLimitsCheck> na true. Jeśli ustawisz continueOnError na true, Apigee ignoruje nie tylko błędy zmiennych, ale wszystkie błędy.

W elemencie <IgnoreUnresolvedVariables> używana jest taka składnia:

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 mają być pobierane nazwy jednostek lub zasobów podczas wykonywania zasady.

W elemencie <Variables> możesz określić tylko element <Product>. Apigee pobiera nazwę usługi interfejsu API ze zmiennej przepływu określonej w elemencie <Product>. Jeśli nie określisz elementu <Variables>, Apigee domyślnie pobierze nazwę produktu interfejsu API ze zmiennej kontekstowej apiproduct.name. Na podstawie nazwy usługi API Apigee uzyskuje dostęp do odpowiedniego planu taryfowego dla 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>

W elemencie <Variables> używana jest taka składnia:

Składnia

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

Przykład

Poniższy przykład pobiera nazwę usługi interfejsu API z niestandardowej zmiennej przepływu myproductvar.name dostępnej w procesie serwera proxy interfejsu API.

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

Niestandardowe zmienne przepływu możesz ustawić, korzystając z zasad takich jak AssignMessage czy JavaScript.

<Product>

Określa zmienną zawierającą nazwę produktu w interfejsie API.

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

W elemencie <Product> używana jest taka składnia:

Składnia

<Product>VARIABLE_NAME</Product>

Przykład

Poniższy przykład pobiera nazwę usługi interfejsu API z niestandardowej zmiennej przepływu myproductvar.name dostępnej w procesie serwera proxy interfejsu API.

<Product>myproductvar.name</Product>

Niestandardowe zmienne przepływu możesz ustawić, korzystając z zasad takich jak AssignMessage czy JavaScript.

<FaultResponse>

Definiuje komunikat z odpowiedzią zwracany klientowi, który wysłał żądanie, gdy wystąpi błąd. Do swoich potrzeb możesz dostosować wiadomości z odpowiedziami. Więcej informacji o elemencie i wszystkich jego elementach podrzędnych znajdziesz w sekcji FaultResponse.

Zmienne przepływu

Jeśli ustawisz wartość atrybutu ContinueOnError elementu <MonetizationLimitsCheck> na „true” (prawda), błąd nie zostanie zgłoszony. W tym przypadku zmienne przepływu mint.limitsViolated, mint.isDeveloperSuspended i mint.limitsPolicyError są ustawiane automatycznie. W razie potrzeby można ich używać do dalszej obsługi wyjątków.