Chính sách MonetizeLimitsCheck

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Tổng quan

Chính sách MonetizationLimitsCheck cho phép bạn thực thi giới hạn kiếm tiền đối với các lệnh gọi API đã thực hiện mà nhà phát triển ứng dụng đưa ra.

Khi chính sách được kích hoạt, có một số trường hợp như sau:

  • Nếu một nhà phát triển ứng dụng truy cập vào API kiếm tiền chưa mua gói thuê bao sản phẩm API được liên kết
  • Tài khoản của nhà phát triển không có đủ số dư.
  • Nhà phát triển đã vượt quá giới hạn số lượng giao dịch.

Để biết thông tin về cách đính kèm chính sách vào proxy API, vui lòng xem Thực thi giới hạn kiếm tiền trên proxy API.

<MonetizationLimitsCheck> phần tử

Xác định chính sách MonetizationLimitsCheck.

Giá trị mặc định Không áp dụng
Bắt buộc? Bắt buộc
Loại Loại phức tạp
Phần tử mẹ Không áp dụng
Phần tử con <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

Bảng sau đây cung cấp nội dung mô tả cấp cao về các phần tử con của <MonetizationLimitsCheck>:

Phần tử con Bắt buộc? Mô tả
<DisplayName> Không bắt buộc Tên tuỳ chỉnh cho chính sách.
<FaultResponse> Không bắt buộc Chỉ định thông báo phản hồi được trả về ứng dụng yêu cầu khi lỗi được phát sinh.
<IgnoreUnresolvedVariables> Không bắt buộc Xác định xem quá trình xử lý có dừng khi gặp biến chưa được giải quyết hay không.
<Variables> Không bắt buộc Chỉ định các biến luồng để kiểm tra giới hạn kiếm tiền.

Phần tử <MonetizationLimitsCheck> sử dụng cú pháp sau:

Cú pháp

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

Ví dụ:

Ví dụ sau đây cho thấy định nghĩa của chính sách 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>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails.
enabled true Optional Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

Tham chiếu phần tử con

Phần này mô tả các phần tử con của <MonetizationLimitsCheck>.

<DisplayName>

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, more natural-sounding name.

The <DisplayName> element is common to all policies.

Default Value n/a
Required? Optional. If you omit <DisplayName>, the value of the policy's name attribute is used
Type String
Parent Element <PolicyElement>
Child Elements None

The <DisplayName> element uses the following syntax:

Syntax

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

Example

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

The <DisplayName> element has no attributes or child elements.

<IgnoreUnresolvedVariables>

Xác định xem có nên dừng quá trình xử lý chính sách này hay không khi Apigee gặp phải biến chưa được giải quyết.

Giá trị mặc định Đúng
Bắt buộc? Không bắt buộc
Loại Boolean
Phần tử mẹ <MonetizationLimitsCheck>
Phần tử con Không có

Để bỏ qua các biến chưa được giải quyết và tiếp tục xử lý, hãy đặt giá trị thành true; nếu không thì false. Giá trị mặc định là true.

Việc đặt <IgnoreUnresolvedVariables> thành true khác với việc đặt giá trị của phần tử <MonetizationLimitsCheck> continueOnError đến true. Nếu bạn đặt continueOnError thành true, Apigee sẽ bỏ qua chỉ các lỗi biến mà thôi.

Phần tử <IgnoreUnresolvedVariables> sử dụng cú pháp sau:

Cú pháp

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

Ví dụ:

Ví dụ sau đây thiết lập <IgnoreUnresolvedVariables> thành false:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

Chỉ định các biến luồng mà từ đó bạn muốn tìm nạp tên thực thể hoặc tên tài nguyên trong quá trình thực thi chính sách.

Bạn chỉ có thể chỉ định phần tử <Product> trong phần tử <Variables>. Apigee nhận được tên sản phẩm API từ biến luồng được chỉ định trong phần tử <Product>. Nếu bạn không chỉ định phần tử <Variables>, Apigee theo mặc định sẽ lấy tên sản phẩm API từ Biến ngữ cảnh apiproduct.name. Bằng cách sử dụng tên sản phẩm API, Apigee sẽ nhận được gói giá tương ứng cho sản phẩm và kiểm tra hạn mức kiếm tiền.

Giá trị mặc định Không áp dụng
Bắt buộc? Không bắt buộc
Loại Loại phức tạp
Phần tử mẹ <MonetizationLimitsCheck>
Phần tử con <Product>

Phần tử <Variables> sử dụng cú pháp sau:

Cú pháp

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

Ví dụ:

Ví dụ sau đây lấy tên sản phẩm API từ biến luồng tuỳ chỉnh myproductvar.name có trong luồng proxy API của bạn.

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

Bạn có thể đặt các biến luồng tùy chỉnh bằng cách sử dụng các chính sách như AssignMessage hoặc JavaScript.

<Product>

Chỉ định biến có tên sản phẩm API.

Giá trị mặc định Không áp dụng
Bắt buộc? Không bắt buộc
Loại Chuỗi
Phần tử mẹ <Variables>
Phần tử con Không có

Phần tử <Product> sử dụng cú pháp sau:

Cú pháp

<Product>VARIABLE_NAME</Product>

Ví dụ:

Ví dụ sau đây lấy tên sản phẩm API từ biến luồng tuỳ chỉnh myproductvar.name có trong luồng proxy API của bạn.

<Product>myproductvar.name</Product>

Bạn có thể đặt các biến luồng tùy chỉnh bằng cách sử dụng các chính sách như AssignMessage hoặc JavaScript.

<FaultResponse>

Xác định thông báo phản hồi được trả về cho ứng dụng yêu cầu nếu xảy ra lỗi. Bạn có thể tuỳ chỉnh câu trả lời dựa trên yêu cầu của bạn. Để biết thêm thông tin về và tất cả các phần tử con của nó, xem FaultResponse.

Biến luồng

Nếu bạn đặt giá trị của phần tử <MonetizationLimitsCheck> ContinueOnError thành true, không xảy ra lỗi nào. Trong trường hợp này, biến luồng, mint.limitsViolated, mint.isDeveloperSuspendedmint.limitsPolicyError được đặt tự động. Bạn có thể dùng các biến này để thực hiện thêm việc xử lý ngoại lệ nếu cần.