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

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

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

對驗證政策階段進行偵錯

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

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

驗證 API 金鑰政策階段詳細資料,包括營利流程變數

驗證使用者身分後,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 代理中強制執行營利配額」。

舉例來說,下圖顯示要求流程中的配額政策階段詳細資料,其中顯示已超出配額。

配額政策階段詳細資料,包括營利流程變數

在這個範例中,系統已超出配額,並傳回 HTTP 429 Too Many Requests 狀態,且會填入流程 ratelimit.* 流程變數,以提供更多關於配額例外的詳細資料。如需 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 階段的詳細資料,其中會填入變數。

代理執行階段詳細資料,包括營利流程變數

如果已啟用營利 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 不含 perUnitPriceMultiplier 計算的 API 呼叫費率。
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 指出交易是否已成功營利。

如需所有變數的詳細說明,請參閱「建立流程變數」。