使用调试工具调试 Monetization

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

按照以下部分中的说明使用调试工具来调试 Monetization。

调试身份验证政策阶段

Apigee Monetization 使用 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 Monetization 使用 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 Monetization 使用配额政策强制执行在 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 代理执行阶段

获利 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 流变量