本頁內容適用於 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 政策,強制執行應用程式開發人員和 AppGroup 訂閱 API 產品的政策。如要進一步瞭解如何新增政策,請參閱「強制訂閱 API 產品」。
舉例來說,下圖顯示要求流程中 MonetizationLimitsCheck 政策階段的詳細資料。
如果應用程式開發人員或 AppGroup 購買了 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 |
與費率方案幣別相關聯的應用程式開發人員或 AppGroup 預付帳戶錢包中的目前餘額。 |
mint.prepaid_developer_currency |
mint.prepaid_developer_balance 變數中可用餘額的幣別。 |
mint.subscription_end_time_ms |
API 產品訂閱的結束時間。 |
mint.subscription_start_time_ms |
API 產品訂閱的開始時間。例如:1618433956209 |
如果應用程式開發人員或 AppGroup 未訂閱 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.* 流程變數,提供配額例外狀況的詳細資料。如要瞭解 ratelimit.*,請參閱「配額政策流程變數」。
偵錯 DataCapture 政策階段
Apigee 會使用 DataCapture 政策擷取的營利變數進行評等、計算收益分享和分析。如要進一步瞭解如何在政策中擷取營利變數,請參閱「擷取營利資料」。
舉例來說,下圖顯示回應流程中 DataCapture 政策執行階段的詳細資料。
如果擷取營利變數時沒有發生錯誤,系統會為交易填入下列流程變數:
| 流程變數 | 說明 |
|---|---|
mint.mintng_currency |
計算收益時使用的幣別。 這個流程變數的值為 |
mint.mintng_price |
用於計算應用程式開發人員或 AppGroup 分潤的收益。 這個流程變數的值為 |
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 |
與應用程式開發人員或 AppGroup 分享的收益。 |
mint.mintng_price_multiplier |
從 DataCapture 政策擷取的因子 (乘數)。每筆交易的費用會乘以這個係數。 |
mint.mintng_rate |
API 呼叫的收費費率。 |
mint.mintng_rate_before_multipliers |
未經 perUnitPriceMultiplier 計算的 API 呼叫費用。 |
mint.mintng_revenue_share_rates |
費率方案中設定的收益分潤費率。 |
mint.mintng_revenue_share_type |
費率方案中設定的收益分潤類型。 |
mint.prepaid_updated_developer_usage |
預付應用程式開發人員或 AppGroup 目前的使用情形。 |
mint.status |
營利電話的狀態。僅在發生錯誤時填入。 |
mint.status_code |
營利通話的 HTTP 狀態碼。僅在發生錯誤時填入。 |
mint.tx_success_result |
指出交易是否成功營利。 |
如需所有變數的詳細說明,請參閱「鑄造流程變數」。