您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
本節說明如何使用 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。 |
N/A | 是 |
endDate |
費率方案的結束日期。例如:2017-09-24。 費率方案將在指定日期的當天結束前生效。舉例來說,如要讓費率方案在 2017 年 12 月 1 日到期,請將 endDate 值設為 2017-11-30。在此情況下,費率方案將於 2017 年 11 月 30 日當天結束,2017 年 12 月 1 日的所有要求都會遭到封鎖。 |
N/A | 否 |
developer |
|
N/A | 是 |
quotaTarget |
應用程式開發人員可進行的交易目標數量。您可以根據目標數量達成率 (例如 90%、100% 或 150%),設定通知的傳送時機和頻率。達到目標數量後,系統不會封鎖額外交易。 將這個值設為正整數值或 0,即可停用應用程式開發人員的通知。 |
0 |
否 |
ratePlan |
房價方案 ID 與顯示名稱不同。如要查看費率方案詳細資料 (包括 ID),請參閱「 探索費率方案頁面」。 |
N/A | 是 |
suppressWarning |
這個旗標會指定開發人員嘗試購買與其他已購費率方案重疊的費率方案時,是否要抑制錯誤。可能的值如下:
|
N/A | 否 |
waveTerminationCharge |
這個旗標會指定啟用新費率方案時,是否要免除終止現有費率方案的費用。可能的值如下:
|
N/A | 否 |
舉例來說,下列要求會為指定開發人員購買 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 讓開發人員購買的費率方案到期
如要讓開發人員購買的費率方案過期 (或取消),請更新已購買的費率方案詳細資料,並在 PUT 要求中,於 /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id} 資源的請求主體中指定 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
}'