Kebijakan MonetizationLimitsCheck

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Ringkasan

Kebijakan MonetizationLimitsCheck memungkinkan Anda menerapkan batas monetisasi pada panggilan API yang dilakukan oleh developer aplikasi.

Beberapa kasus saat kebijakan dipicu adalah:

  • Jika developer aplikasi yang mengakses API yang dimonetisasi belum membeli langganan ke produk API terkait
  • Saldo akun developer tidak cukup.
  • Developer telah melampaui batas volume transaksi.

Untuk informasi tentang cara melampirkan kebijakan ke proxy API Anda, lihat Menerapkan batasan monetisasi untuk proxy API.

Elemen <MonetizationLimitsCheck>

Menentukan kebijakan MonetizationLimitsCheck.

Nilai Default T/A
Wajib? Wajib
Jenis Jenis kompleks
Elemen Induk T/A
Elemen Turunan <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

Tabel berikut memberikan deskripsi tingkat tinggi tentang elemen turunan <MonetizationLimitsCheck>:

Elemen Turunan Wajib diisi? Deskripsi
<DisplayName> Opsional Nama kustom untuk kebijakan.
<FaultResponse> Opsional Menentukan pesan respons yang ditampilkan ke klien yang meminta ketika kesalahan muncul.
<IgnoreUnresolvedVariables> Opsional Menentukan apakah pemrosesan berhenti saat variabel yang belum terselesaikan ditemukan.
<Variables> Opsional Menentukan variabel alur untuk memeriksa batas monetisasi.

Elemen <MonetizationLimitsCheck> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut menunjukkan definisi kebijakan 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>

Elemen ini memiliki atribut berikut yang sama untuk semua kebijakan:

Atribut Default Wajib? Deskripsi
name T/A Wajib

Nama internal kebijakan. Nilai atribut name dapat berisi huruf, angka, spasi, tanda hubung, garis bawah, dan titik. Nilai ini tidak boleh melebihi 255 karakter.

Secara opsional, gunakan elemen <DisplayName> untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama bahasa alami yang berbeda.

continueOnError false Opsional Tetapkan ke "false" untuk menampilkan error saat kebijakan gagal. Hal ini wajar untuk sebagian besar kebijakan. Tetapkan ke "true" agar eksekusi flow berlanjut meskipun kebijakan gagal.
enabled benar Opsional Tetapkan ke "true" untuk menerapkan kebijakan. Tetapkan ke "false" untuk "menonaktifkan" kebijakan. Kebijakan ini tidak akan diterapkan meskipun tetap dilampirkan ke flow.
async   false Tidak digunakan lagi Atribut ini tidak digunakan lagi.

Referensi elemen turunan

Bagian ini menjelaskan elemen turunan <MonetizationLimitsCheck>.

<DisplayName>

Gunakan selain atribut name untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama yang berbeda dan terdengar lebih alami.

Elemen <DisplayName> bersifat umum untuk semua kebijakan.

Nilai Default t/a
Wajib? Opsional. Jika Anda menghapus <DisplayName>, nilai atribut name kebijakan akan digunakan
Jenis String
Elemen Induk <PolicyElement>
Elemen Turunan Tidak ada

Elemen <DisplayName> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

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

Elemen <DisplayName> tidak memiliki atribut atau elemen turunan.

<IgnoreUnresolvedVariables>

Menentukan apakah pemrosesan kebijakan harus berhenti saat Apigee menemukan variabel yang belum terselesaikan.

Nilai Default Benar
Wajib? Opsional
Jenis Boolean
Elemen Induk <MonetizationLimitsCheck>
Elemen Turunan Tidak ada

Untuk mengabaikan variabel yang belum terselesaikan dan melanjutkan pemrosesan, tetapkan nilai ke true; jika tidak, false. Nilai defaultnya adalah true.

Menyetel <IgnoreUnresolvedVariables> ke true berbeda dengan menetapkan continueOnError elemen <MonetizationLimitsCheck> ke true. Jika Anda menetapkan continueOnError ke true, Apigee tidak hanya mengabaikan error variabel tetapi semua error.

Elemen <IgnoreUnresolvedVariables> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut menetapkan <IgnoreUnresolvedVariables> ke false:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

Menentukan variabel flow tempat Anda ingin mengambil nama entity atau resource selama eksekusi kebijakan.

Anda hanya dapat menentukan elemen <Product> dalam elemen <Variables>. Apigee mendapatkan nama produk API dari variabel flow yang ditentukan dalam elemen <Product>. Jika Anda tidak menentukan elemen <Variables>, Apigee secara default akan mendapatkan nama produk API dari variabel konteks apiproduct.name. Dengan menggunakan nama produk API, Apigee akan mendapatkan paket tarif yang sesuai untuk produk tersebut dan melakukan pemeriksaan batas monetisasi.

Nilai Default T/A
Wajib? Opsional
Jenis Jenis kompleks
Elemen Induk <MonetizationLimitsCheck>
Elemen Turunan <Product>

Elemen <Variables> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut mendapatkan nama produk API dari variabel alur kustom myproductvar.name yang ada di alur proxy API Anda.

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

Anda dapat menetapkan variabel alur kustom menggunakan kebijakan seperti AssignMessage atau JavaScript.

<Product>

Menentukan variabel yang memiliki nama produk API.

Nilai Default T/A
Wajib? Opsional
Jenis String
Elemen Induk <Variables>
Elemen Turunan Tidak ada

Elemen <Product> menggunakan sintaksis berikut:

Sintaksis

<Product>VARIABLE_NAME</Product>

Contoh

Contoh berikut mendapatkan nama produk API dari variabel alur kustom myproductvar.name yang ada di alur proxy API Anda.

<Product>myproductvar.name</Product>

Anda dapat menetapkan variabel alur kustom menggunakan kebijakan seperti AssignMessage atau JavaScript.

<FaultResponse>

Mendefinisikan pesan respons yang ditampilkan ke klien yang meminta jika kesalahan muncul. Anda dapat menyesuaikan pesan respons berdasarkan kebutuhan. Untuk mengetahui informasi selengkapnya tentang elemen dan semua elemen turunannya, lihat FaultResponse.

Variabel alur

Jika Anda menetapkan atribut ContinueOnError elemen <MonetizationLimitsCheck> ke true, tidak ada kesalahan yang ditampilkan. Dalam hal ini, variabel alur, mint.limitsViolated, mint.isDeveloperSuspended, dan mint.limitsPolicyError akan otomatis ditetapkan. Variabel ini dapat digunakan untuk melakukan penanganan pengecualian lebih lanjut, jika diperlukan.