使用 API 购买率方案

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

本部分介绍如何使用 API 购买已发布的费率方案,以及如何使购买的费率方案到期或取消(如果需要)。

使用 API 购买已发布的费率方案

发布费率方案后,开发者或公司可以通过向 /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans 发出 POST 请求来购买(或“接受”)该方案,其中 {org_name} 是组织名称,{developer_or_company_id} 是开发者或公司的 ID。

如需在购买费率方案时免除设置费用,请将 waivefees 查询参数设置为 true。将开发者迁移到创收模式时,此标志非常有用,如让开发者改用创收模式中所述。

下表总结了您可以在请求正文中指定的配置属性、它们的默认值以及它们是否是必需的。

名称 说明 默认 是否必需?
startDate

费率方案的开始日期。例如:2017-03-24

不适用
endDate

费率方案的结束日期。例如:2017-09-24

费率方案的有效期截至指定日期的当天结束。例如,如果您希望费率方案在 2017 年 12 月 1 日到期,则应将 endDate 值设置为 2017-11-30。在这种情况下,费率方案将在 2017 年 11 月 30 日当天结束时到期,2017 年 12 月 1 日的所有请求都会被屏蔽。

不适用
developer

id 属性,用于定义购买费率方案的开发者或公司的 ID。

不适用
quotaTarget

应用开发者允许的目标交易次数。您可以根据已达到目标数量的百分比(例如 90%、100% 或 150%)来配置是否以及何时发送通知。达到目标数量后,其他事务不会被阻止。

将此值设置为正整数值或 0 即可停用应用开发者的通知。

0
ratePlan

id 属性,用于定义费率方案的 ID。

费率方案 ID 与显示名称不同。如需查看费率方案详细信息(包括 ID),请参阅 探索费率方案页面

不适用
suppressWarning

此标记指定是否在开发者尝试购买与其他已购买的费率方案重叠的费率方案时抑制此错误。其值可以是以下值之一:

  • true - 如果 API 软件包中包含存在冲突的 API 产品,则变现模式将终止开发者对这类方案的所有已购费率方案。然后,它会为开发者购买新的 API 软件包。
  • false - 如果费率方案重叠,则会抛出错误。
不适用
waveTerminationCharge

此标记指定当有效费率方案因激活新费率方案而被终止时,是否免除终止费用。其值可以是以下值之一:

  • true - 如果有效费率方案因激活新费率方案而被终止,则免除终止费用。
  • false - 如果有效费率方案因激活新费率方案而被终止,请勿免除终止费用。
不适用

例如,以下请求为指定开发者购买 location_&_messaging 费率方案:

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "startDate":"2017-08-30",
   "ratePlan":{
     "id":"location_&_messaging"
   },
   "suppressWarning":false
  }'

在此示例中,suppressWarning 属性设置为 false。在这种情况下,如果发生冲突,系统会抛出错误。例如,如果开发者尝试购买的费率方案与另一个已购买的费率方案重叠,则会抛出错误。这样,提供创收界面的应用就能够拦截错误,并向开发者显示冲突商品以供其确认(视情况而定)。如果 suppressWarning 设为 true,对于开发者在与包含存在冲突的产品有关的 API 软件包中购买的所有费率方案,变现服务会终止这些方案。然后,它会为开发者购买新的 API 软件包。

以下请求购买了可调整的通知费率方案,并将目标交易次数设置为 4000。

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "ratePlan":{
     "id":"adjustable-notification-plan"
   },
   "startDate": "2017-03-24",
   "quotaTarget": 4000,
   "suppressWarning":false
  }'

在上述任一示例中,如果返回以下错误消息:

Developer legal name not specified. 

然后,您必须设置创收属性 MINT_DEVELOPER_ADDRESSMINT_DEVELOPER_LEGAL_NAME,然后重复该 API 调用。

使开发者使用 API 购买的费率方案过期

如需使开发者购买的费率方案失效(或取消),请更新所购买的费率方案详细信息,并在发送到 /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id} 资源的 PUT 请求的请求正文中指定 endDate 属性。

费率方案的有效期截至指定结束日期的当天结束。例如,如果您希望费率方案在 2017 年 12 月 1 日到期,则应将 endDate 值设置为 2017-11-30。在这种情况下,费率方案将在 2017 年 11 月 30 日当天结束时到期,2017 年 12 月 1 日的所有请求都会被屏蔽。

当您购买已发布的费率方案时,系统会在响应中返回 {developer_rateplan_id}

例如:

{
  "created": "2017-03-31 18:59:54",
  "developer": {
    ...
  },
  "id": "b1c600b8-f871-496d-8173-12b9950d6ab1",
  "quotaTarget": 3000,
  "ratePlan": {
    ...
  },
  "startDate": "2017-03-31 00:00:00",
  "updated": "2017-03-31 18:59:54",
  "waiveTerminationCharge": false
}

或者,您也可以通过向 /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans 发出 GET 请求来获取开发者费率方案的 {developer-rateplan-id},其中 {developer_id} 是开发者的电子邮件地址。如需了解详情,请参阅查看开发者购买的所有费率方案

以下请求将结束日期更新为 2017 年 12 月 1 日。也就是说,费率方案将在 2017 年 11 月 30 日结束时到期,2017 年 12 月 1 日的所有请求都会被屏蔽。

curl "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/developers/dev@mycompany.com/developer-rateplans/b1c600b8-f871-496d-8173-12b9950d6ab1"
  -X PUT \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "id" : "b1c600b8-f871-496d-8173-12b9950d6ab1",
   "developer":{
     "id":"dev@mycompany.com"
   },
   "ratePlan":{
     "id":"p1_adjustable-notification-plan"
   },
   "startDate": "2017-04-15 00:00:00",
   "endDate": "2017-11-30",
   "quotaTarget": 3000,
   "suppressWarning":false
  }'