本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
請按照下列各節所述,使用偵錯工具偵測營利功能錯誤。
偵錯驗證政策階段
Apigee 營利功能會使用 VerifyAPIKey 或 VerifyAccessToken 政策,檢查是否有已發布的有效費率方案,藉此判斷傳入的要求是否可營利。如要進一步瞭解如何新增政策,請參閱「新增驗證政策」。
舉例來說,下圖顯示要求流程中 VerifyAPIKey 政策階段的詳細資料。
驗證使用者後,VerifyAPIKey 政策會檢查所有已發布的費率方案,根據啟用和到期時間判斷哪些方案有效。如果系統找到已發布的有效房價方案,就會填入下列流程變數:
流程變數 | 設定 |
---|---|
mint.mintng_is_apiproduct_monetized |
true (如果找到已發布的有效房價方案)。 |
mint.mintng_rate_plan_id |
房價方案 ID。 |
mint.rateplan_end_time_ms |
費率方案的到期時間。例如:1619433556408 |
mint.rateplan_start_time_ms |
房價方案的啟用時間。例如:1618433956209 |
如果系統找不到已發布的有效費率方案,mint.mintng_is_apiproduct_monetized
流程變數會設為 false
,且不會填入其他流程變數。
詳情請參閱「mint」流程變數。
偵錯 MonetizationLimitsCheck 政策階段
Apigee 營利功能會使用 MonetizationLimitsCheck 政策,強制執行開發人員的 API 產品訂閱項目。 如要進一步瞭解如何新增政策,請參閱「強制開發人員訂閱 API 產品」。
舉例來說,下圖顯示要求流程中 MonetizationLimitsCheck 政策階段的詳細資料。
如果開發人員購買了 API 產品的訂閱方案,系統會填入下列流程變數:
流程變數 | 說明 |
---|---|
mint.limitscheck.is_request_blocked |
true ,瞭解遭封鎖的要求。 |
mint.limitscheck.is_subscription_found |
true (如果找到 API 訂閱項目)。 |
mint.limitscheck_purchased_product_name |
購買的 API 產品名稱。例如:MyProduct |
mint.limitscheck.status_message |
狀態訊息。例如:limits_check_success |
mint.prepaid_developer_balance |
開發人員預付帳戶錢包的目前餘額,與費率方案的幣別相關聯。 |
mint.prepaid_developer_currency |
mint.prepaid_developer_balance 變數中可用餘額的幣別。 |
mint.subscription_end_time_ms |
API 產品訂閱的結束時間。 |
mint.subscription_start_time_ms |
API 產品訂閱的開始時間。例如:1618433956209 |
如果開發人員未訂閱 API 產品:
mint.limitscheck_is_subscription_found
流程變數設為false
mint.limitscheck.is_request_blocked
設為true
- 系統不會填入其他流程變數。
詳情請參閱「mint」流程變數。
偵錯配額政策階段
Apigee 營利功能會使用配額政策,強制執行在 API 產品層級定義的配額。配額定義 API 產品在指定時間內允許的要求數。如要進一步瞭解如何新增政策,請參閱「在 API Proxy 中強制執行營利配額」。
舉例來說,下圖顯示要求流程中配額政策階段的詳細資料,其中配額已超出上限。
在這個範例中,配額已超出,因此系統會傳回 HTTP 429 Too Many Requests
狀態,並填入 ratelimit.*
flow 流程變數,提供配額例外狀況的詳細資料。如要瞭解 ratelimit.*
,請參閱「配額政策流程變數」。
偵錯 DataCapture 政策階段
Apigee 會使用 DataCapture 政策擷取的營利變數,進行評等、計算收益分享和分析。如要進一步瞭解如何在政策中擷取營利變數,請參閱「擷取營利資料」。
舉例來說,下圖顯示回應流程中 DataCapture 政策執行階段的詳細資料。
如果擷取營利變數時沒有發生錯誤,系統會為交易填入下列流程變數:
流程變數 | 說明 |
---|---|
mint.mintng_currency |
計算收益時使用的幣別。 這個流程變數的值為 |
mint.mintng_price |
用於計算開發人員分潤的收益。 這個流程變數的值為 |
mint.mintng_price_multiplier |
每筆交易費用要乘上的係數 (乘數)。 這個流程變數的值為 |
mint.mintng_tx_success |
指定交易是否營利。 這個流程變數的值為 |
偵錯營利 API Proxy 執行階段
成功執行營利 API 代理後,系統會填入一組流程變數,其中包含營利消費量費用和費率的相關資訊。
舉例來說,下圖顯示 PostClient 流程中「Proxy Execution」階段的詳細資料,其中會填入變數。
如果含收益 API Proxy 執行成功,系統會填入下列流程變數:
流程變數 | 說明 |
---|---|
message.status.code |
目標傳回的回應訊息 HTTP 狀態碼。
如果回應中包含任何政策,系統會以政策傳回的狀態碼覆寫這個變數的值。 |
mint.limitscheck.is_request_blocked |
指定是否封鎖 API 要求的旗標。 |
mint.mintng_consumption_pricing_rates |
費率方案中設定的用量費用。 |
mint.mintng_consumption_pricing_type |
費率方案中設定的根據用量計費類型。例如:FIXED_PER_UNIT |
mint.mintng_dev_share |
與開發人員分享的收益。 |
mint.mintng_price_multiplier |
從 DataCapture 政策擷取的因子 (乘數)。每筆交易的費用會乘以這個係數。 |
mint.mintng_rate |
API 呼叫的收費費率。 |
mint.mintng_rate_before_multipliers |
API 呼叫的收費費率,不含 perUnitPriceMultiplier 計算。 |
mint.mintng_revenue_share_rates |
費率方案中設定的收益分潤費率。 |
mint.mintng_revenue_share_type |
費率方案中設定的收益分潤類型。 |
mint.prepaid_updated_developer_usage |
預付開發人員目前的用量。 |
mint.status |
營利電話的狀態。僅在發生錯誤時填入。 |
mint.status_code |
營利通話的 HTTP 狀態碼。僅在發生錯誤時填入。 |
mint.tx_success_result |
指出交易是否成功營利。 |
如要詳細瞭解所有變數,請參閱「鑄造流程變數」。