排查创收问题

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

本主题将提供有关排查常见创收问题的信息和指导。

开发者已被暂停

问题

开发者已被暂停,将无法再进行任何其他创收交易/API 调用。

错误消息

<error>
   <messages>
        <message>Exceeded developer limit configuration -</message>
        <message>Is Developer Suspended - true</message>
   </messages>
</error>

诊断

如需确定开发者被暂停的原因,请执行以下步骤:

  1. 执行以下 API 调用,以确定与已暂停的开发者相关联的错误代码:
    1. 如果您是公有云用户,请使用以下 API:
      curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/{org}/suspended-developers/{developer-email}" -u orgadminEmail:password
      
    2. 如果您是私有云用户,请使用以下 API:
      curl -X GET "http://<management-host>:<port#>/v1/mint/organizations/{org}/suspended-developers/{developer-email}" -u orgadminEmail:password
      
  2. 将错误代码与以下原因代码进行比较,以确定开发者被暂停的原因。

另请参阅:暂停开发者的原因代码摘要

原因代码

原因

详细说明

INSUFFICIENT_FUNDS

开发者账号余额已用尽

如果预付款开发者账号的余额不足以执行任何其他交易,开发者账号将被暂停。

对于后付费开发者,如果他们超出信用额度或为所用币种设置的信用额度用完,则可能会发生此错误。

LIMIT_VIOLATED

RATE_PLAN_RATE_BAND_EXCEEDED

开发者无法进行任何其他交易

每个开发者都可以根据购买的费率方案进行固定数量的交易。如果超出交易次数,开发者会被暂停,并且无法完成其他交易。

NO_CURRENT_PUBLISHABLE_ENTITY

开发者尚未购买任何费率方案

开发者必须先购买费率方案,然后才能完成任何交易。

分辨率

错误

解决步骤

INSUFFICIENT_FUNDS

开发者需要确保有足够的帐号余额或可用赠金,以便完成任何其他交易。

LIMIT_VIOLATED

RATE_PLAN_RATE_BAND_EXCEEDED

  1. 进行以下 API 调用,分别获取开发者费率方案和交易详情:
    • 运行以下 API 调用,以获取开发者购买的费率方案的开始日期和结束日期:
      http://docs.apigee.com/monetize/apis/get/organizations/%7Borg_name%7D/developers/%7Bdeveloper_id%7D/developer-accepted-rateplans
      
    • 运行以下 API 调用,获取开发者成功完成的交易数量:
      http://docs.apigee.com/monetize/apis/get/organizations/%7Borg_name%7D/transactions/developers/%7Bdeveloper_email_or_id%7D
      
  2. 在 Edge 界面中,您还可以通过选择以下选项来查看允许开发者进行的调用次数:

    资源包 > 资源包名称 > RatePlanName > 价目表

    例如,如果软件包名称为“Pro Package”且相关“免费方案”,则路径为:

    资源包 > 专业版资源包 > 免费方案 > 价目表

NO_CURRENT_PUBLISHABLE_ENTITY

开发者必须购买费率方案才能进行 API 调用。

创收设置问题

表现

创收设置问题可以表现为不同的症状,例如:

  • 网络钩子功能不起作用
  • 无法创建网络钩子
  • 未触发网络钩子通知
  • 创收报告未显示任何交易。例如,Analytics(分析)数据表明开发者在特定时间段内完成了许多交易,但创收报告不会列出任何此类交易。
  • 交易未记录

错误消息

您可能不会观察到任何错误消息,但会看到问题部分所述的问题。

可能的原因

如果您看到症状中列出的任何症状,则很可能是因为交易未实现创收。

诊断原因

  1. 您可以使用下一部分中介绍的 Management API 调用来检查交易是否正在用于创收。

    查看交易状态

  2. 如果您在指定时间段内没有看到任何交易被列为 SUCCESS,则表示这些交易未用于创收。

导致交易无法创收的典型原因包括:

以下部分介绍了如何诊断和解决各个问题。

API 代理中未使用创收限制检查政策

诊断

  1. 检查创收限制检查政策是否已附加到 API 代理。
  2. 如果未附加此政策,这可能是导致交易被列为 FAILED 的原因。

分辨率

将创收限制检查政策附加到所需的 API 代理,如 对 API 代理强制实施创收限制中所述。

如果问题仍然存在,请选中 API 产品未创收

API 产品未用于创收

诊断

  1. 检查该 API 产品是否启用了创收功能(只有用于创收的 API 产品才会被分级并列在“交易”下)。创收产品是指至少具有一项有效费率方案的产品。
  2. 使用以下 Management API 调用获取已用于创收的 API 产品列表:
    1. 如果您是公有云用户,请使用以下 API:
      curl -v https://api.enterprise.apigee.com/v1/mint/organizations/{org_id}/products?monetized=true -u orgadminEmail:password
      
    2. 如果您是私有云用户,请使用以下 API:
      curl -v http://<management-host>:<port#>/v1/mint/organizations/{org_id}/products?monetized=true -u orgadminEmail:password
      
  3. 如果与您的 API 代理相关联的 API 产品未创收,则可能是因为相应交易未创收。

分辨率

要通过 API 产品创收,请按以下步骤操作:

  1. 配置交易记录政策

  2. 请检查 API 产品是否具有有效的费率方案。

如果问题仍然存在,请检查 事务记录政策定义不正确

交易记录政策定义有误

诊断

  1. 为附加了创收限制检查政策的 API 代理启用界面跟踪记录。
  2. 从界面跟踪记录中选择特定 API 请求。
  3. 选择 Google Analytics(分析)AX 流程,并检查以下创收 (Mint) 流程变量的值是否正确:
    mint.tx.status - Should match the value set up for "success criteria" in the transaction recording policy for the API product being used. When tracing, the txProviderStatus in the transaction recording policy is stored in the variable 'mint.tx.status'.
    mint.tx.app_id - Application id of API product.
    mint.tx.prod_id - API product id.
    
  4. 下面是一个示例界面轨迹,显示了 Mint flow 变量设置正确。

  5. 如果您在 mint.tx.status 变量中发现错误,则表示交易记录政策未正确定义。

分辨率

  1. 确保在创建交易记录政策时正确遵循了 创建交易记录政策中所述的所有步骤。
  2. 键值对是交易记录政策中设置的“交易成功标准”。 请参阅 在交易记录政策中设置交易成功条件的示例

开发者尚未购买费率方案

诊断

  1. 使用以下 Management API 调用来验证开发者购买的费率方案:
    1. 如果您是公有云用户,请使用以下 API:
      curl -v https://api.enterprise.apigee.com/v1/mint/organizations/{org}/developers/{dev_email}/products/{prod}/developer-rateplans -u orgadminEmail:password
      
    2. 如果您是 Private Cloud 用户,请使用以下 API:
      curl -v http://<management-host>:<port#>/v1/mint/organizations/{org}/developers/{dev_email}/products/{prod}/developer-rateplans -u orgadminEmail:password
      
  2. 根据上述调用的响应,找到开发者完成交易时有效的方案。

分辨率

开发者必须根据其要求购买费率方案,然后执行事务/API。

如果问题仍然存在,请与 Apigee Edge 支持团队联系。