本頁適用於 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 代理中強制執行營利配額」。
舉例來說,下圖顯示要求流程中的配額政策階段詳細資料,其中顯示已超出配額。
在這個範例中,系統已超出配額,並傳回 HTTP 429 Too Many Requests
狀態,且會填入流程 ratelimit.*
流程變數,以提供更多關於配額例外的詳細資料。如需 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 |
不含 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 |
指出交易是否已成功營利。 |
如需所有變數的詳細說明,請參閱「建立流程變數」。