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