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