使用 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 软件包。

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

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
  }'