本页面适用于 Apigee 和 Apigee Hybrid。
  
    查看 Apigee Edge 文档。
  
  
       
 
  
按照以下部分中的说明使用调试工具来调试 Monetization。
调试身份验证政策阶段
Apigee Monetization 使用 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 Monetization 使用 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 Monetization 使用配额政策强制执行在 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 代理执行阶段
获利 API 代理成功执行后,系统会使用有关获利基于用量的费用和收取的费率来填充一组流变量。
例如,下图显示填充变量的 PostClient 流中的代理执行阶段的详细信息。
     
如果获利 API 代理执行成功,系统将会填充以下流变量:
| 流变量 | 说明 | 
|---|---|
| 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 | 指示事务是否成功获利。 | 
如需详细了解所有变量,请参阅 mint 流变量。