<ph type="x-smartling-placeholder"></ph>
  您正在查看 Apigee Edge 文档。
  转到
     Apigee X 文档。 信息
本部分介绍了如何购买已发布的价格方案,以及如何使已购买的方案到期或取消 如果需要,请使用 API
使用 API 购买已发布的价格方案
价格方案发布后,开发者或公司可在以下日期之前购买(或“接受”)价格方案:
  发出 POST 请求至
  /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans,
  其中 {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 日结束时失效;所有请求 会被屏蔽。  | 
        不适用 | 否 | 
developer | 
        
           
  | 
        不适用 | 是 | 
quotaTarget | 
        
          
           应用开发者允许的目标交易次数。您可以配置是否 根据目标数量的百分比发送通知的时间 (例如 90%、100% 或 150%)。完成以下操作后,系统不会阻止其他交易 目标数量。 将此值设置为正整数值,或设置为 0 以停用应用的通知 开发者。  | 
        0 | 
        否 | 
ratePlan | 
        
           
 价格方案 ID 与显示名称不同。查看价格方案详情 包括 ID,请参见 浏览价格方案页面。  | 
        不适用 | 是 | 
suppressWarning | 
        
           用于指定是否在开发者尝试购买时抑制错误的标志 与其他已购买费率方案重叠的费率方案。该值可以是 以下: 
  | 
        不适用 | 否 | 
waveTerminationCharge | 
        
           此标记指定当有效费率方案处于有效状态时,是否免除终止费用 因激活新价格方案而终止。该值可以是 以下: 
  | 
        不适用 | 否 | 
例如,以下请求购买 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_ADDRESS 和
  MINT_DEVELOPER_LEGAL_NAME,然后重复 API 调用。
让开发者使用 API 购买的费率方案过期
如需使开发者购买的费率方案到期(或取消),请更新已购买的费率方案
  并在请求正文中指定 endDate 属性,
  向
  /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id} 资源。
此价格方案的有效期将持续到当天的当天结束 。例如,如果您希望在 2017 年 12 月 1 日到期某个费率方案, 设置 endDate 值 至 2017-11-30。在这种情况下, 价格方案将于 2017 年 11 月 30 日结束时到期;所有请求 2017 年将被屏蔽。
当您购物时,系统会在响应中返回 {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
}
或者,您可以获取{developer-rateplan-id}
  开发者费率方案
  发送至/organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans,
  其中 {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
  }'