使用偵錯工具偵測營利功能錯誤

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

請按照下列各節所述,使用偵錯工具偵測營利功能錯誤。

偵錯驗證政策階段

Apigee 營利功能會使用 VerifyAPIKey 或 VerifyAccessToken 政策,檢查是否有已發布的有效費率方案,藉此判斷傳入的要求是否可營利。如要進一步瞭解如何新增政策,請參閱「新增驗證政策」。

舉例來說,下圖顯示要求流程中 VerifyAPIKey 政策階段的詳細資料。

驗證 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 政策階段的詳細資料。

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 政策執行階段的詳細資料。

在營利流程變數中執行 DataCapture 政策

如果擷取營利變數時沒有發生錯誤,系統會為交易填入下列流程變數:

流程變數 說明
mint.mintng_currency

計算收益時使用的幣別。

這個流程變數的值為 currency 營利變數。

mint.mintng_price

用於計算開發人員分潤的收益。

這個流程變數的值為 revShareGrossPrice 營利變數。

mint.mintng_price_multiplier

每筆交易費用要乘上的係數 (乘數)。

這個流程變數的值為 perUnitPriceMultiplier 營利變數。

mint.mintng_tx_success

指定交易是否營利。

這個流程變數的值為 transactionSuccess 營利變數。

偵錯營利 API Proxy 執行階段

成功執行營利 API 代理後,系統會填入一組流程變數,其中包含營利消費量費用和費率的相關資訊。

舉例來說,下圖顯示 PostClient 流程中「Proxy Execution」階段的詳細資料,其中會填入變數。

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 指出交易是否成功營利。

如要詳細瞭解所有變數,請參閱「鑄造流程變數」。