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