您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
簡介
在某些情況下,您可能需要根據變數或自訂值計算交易次數。 舉例來說,您可能需要:
- 根據 API 呼叫訊息中提供的值,向開發人員收取不同金額的費用。舉例來說,您可能會想根據 API 要求中傳輸的位元組數,向應用程式開發人員收費。
- 將多個 API 呼叫綁定為單一交易。
使用含有自訂屬性的費率方案時,您可以找出 API 呼叫訊息中做為計數器的值,並用來計算交易次數和費用。
系統支援下列含有自訂屬性的費率方案:
- 含有自訂屬性的價目表
- 可調整的通知,附有自訂屬性
每個費率方案最多可設定 10 個自訂屬性。
瞭解自訂屬性計算方式
自訂屬性值如何計入費率方案交易次數和費用,取決於收費模式,如下表所示。
| 充電模式 | 自訂屬性計算 |
|---|---|
| 固定費率和量帶 |
如果是固定費率,自訂屬性編號會變成交易次數,並乘以費率。如果是「量級」方案,量級中的交易次數會增加自訂屬性數量,開發人員則須支付該交易次數的費用。舉例來說,如果訊息中的自訂屬性值為 10,開發人員就需支付 10 筆交易的費用,且 10 筆交易會計入目前的級距計數。如果開發人員在目前級距中只剩下 6 筆交易,則系統會將 6 乘以該級距的費率。其餘 4 美元則會計入下一個級距,並乘以該級距的費率。 在「量級」方案中,如果最後一個量級設有限制 (不是「無限制」),且交易超過該限制,則會發生下列兩種情況:
|
| 套裝組合 |
由於系統會按群組收費,而非按交易收費,因此會進行下列計算:
舉例來說,如果訊息中的自訂屬性號碼為 10,則會將 10 新增至套裝組合中使用的交易數量。如果開發人員在目前的套裝組合中只剩下 6 筆交易,該套裝組合就會填滿,下一個套裝組合的計數則會增加 4。系統會收取下一個套裝組合的費率 (如有)。 如果最後一個套裝組合設有限制 (不是「無限制」),且交易超出該限制,則會發生下列兩種情況:
|
| 可調整的通知 |
如果是可調整的通知,系統會進行下列計算:
舉例來說,如果訊息中的自訂屬性號碼為 10,則交易總數會增加 10。 |
費率方案取得自訂屬性值的位置
「交易記錄政策」(位於 API 產品組合中) 會告知營利服務,要在訊息中尋找自訂屬性值。您可以在 API 產品組合的交易記錄政策「自訂屬性」部分定義自訂屬性。
然後,在建立包含交易記錄政策的 API 產品組合後,您可以在費率方案中選取該自訂屬性。
大致流程如下:
- 新增 API 產品時,定義自訂屬性。
- 建立包含產品的 API 產品組合。
在 API 產品組合的交易記錄政策中,新增用於定義費率方案的自訂屬性。 - 為 API 產品組合制定費率方案,類型為費率表或可調整的通知,並指定自訂評分參數。
下圖顯示交易記錄政策中定義的自訂屬性,與費率表方案設定之間的關係。可調整的通知與自訂屬性費率方案關係類似,但量帶值不適用。

如何在訊息中產生自訂屬性值
交易記錄政策可以在多個位置尋找自訂屬性值,例如回應標頭、回應內文,或回應中預先定義的流程變數。(要求無法使用,因為交易必須收到成功的回應才算正式成立)。以下範例說明如何將含有數值的回應標頭新增至訊息。在這兩種情況下,我們都會搭配變數使用「指派訊息」政策。
在回應標頭中加入要求酬載大小
在每個訊息要求中,都有一個 client.received.content.length 變數,其中包含要求酬載中的位元組數。將「指派訊息」政策附加至 Proxy 端點回應,即可產生名為 messageSize 的回應標頭,其中包含長度值:
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message 1</DisplayName> <Set> <Headers> <Header name="messageSize">{client.received.content.length}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
在標頭中新增應用程式自訂屬性值
同樣地,我們也可以在應用程式中,使用自訂屬性的值產生標頭。舉例來說,如果您在每個開發人員應用程式中加入名為 apprating 的自訂屬性,如下所示:

使用「驗證 API 金鑰」政策 (必須使用這項政策才能營利) 時,這個值會儲存在名為 verifyapikey.{policy_name}.apprating 的變數中。使用附加至 Proxy 端點回應的「指派訊息」政策,您可以產生名為 apprating 的標頭,其中包含應用程式的 apprating 值:
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message 1</DisplayName> <Set> <Headers> <Header name="apprating">{verifyapikey.Verify-API-Key-1.apprating}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
設定費率方案
除了上述自訂屬性設定外,費率方案的設定方式與一般情況相同 (適用於沒有自訂屬性的費率方案),但必須遵守下列規定。
使用 UI 設定含自訂屬性的價目表方案
如要使用 Edge UI 或 Classic Edge UI 設定含有自訂屬性的費率表方案,請參閱下列各節。
邊緣
如要使用 Edge UI 設定含有自訂屬性的價目表方案,請按照下列步驟操作:
- 新增 API 產品時,定義自訂屬性。
- 建立包含該產品的 API 產品組合。請參閱「建立 API 產品組合」。
在 API 產品組合的交易記錄政策中,新增用於定義費率方案的自訂屬性。詳情請參閱本主題的簡介,以及「建立交易記錄政策」。 - 為 API 產品組合制定費率方案,並指定自訂評分參數。
詳情請參閱「使用 UI 設定費率表方案詳細資料」。
Classic Edge (Private Cloud)
如要使用傳統 Edge UI 建立含有自訂屬性方案的費率表,請按照下列步驟操作:
- 在 API 產品的交易記錄政策中,加入用於定義費率方案的自訂屬性。詳情請參閱本主題的簡介,以及「建立交易記錄政策」。針對要納入 API 套件的每個 API 產品執行這項操作。
- API 產品和交易記錄政策設定完成後,請建立包含產品的 API 套件。請參閱「建立 API 套件」。
- 為 API 套件建立費率方案,並選取「費率表 (含自訂屬性)」費率方案類型。
-
按一下「費率表」連結,系統會開啟「費率表」視窗。

- 在「自訂屬性」下拉式選單中選取自訂屬性。選單會列出在交易記錄政策中為產品建立的自訂屬性。系統會根據每筆交易中選取的自訂屬性值,向開發人員收取費用。
(屬性值 * 費率 = 向開發人員收取的費用) - 視需要按照「指定價目表方案詳細資料」一文所述,設定免費增值方案。
- 如要設定收費模式,請參閱「指定費率表方案詳細資料」。但請注意,如果是「費率表 (含自訂屬性)」費率方案類型,收費模式會根據您選取的自訂屬性而定。舉例來說,如果選擇「固定費率」做為收費模式,系統會根據自訂屬性 (例如每筆交易傳輸的位元組數),向開發人員收取固定費率,而不是每筆交易的固定費率。詳情請參閱「計算」一節。
-
按一下「儲存草稿」。
只有在確定方案為最終版本時,才發布方案。如要瞭解如何設定發布日期及發布方案,請參閱「發布費率方案」。
詳情請參閱「 使用 UI 指定費率表方案詳細資料」。
使用 UI,透過自訂屬性設定可調整的通知方案
如要設定可調整的通知方案,請使用自訂屬性,詳情請參閱下文。Edge
如要使用 Edge UI 設定含有自訂屬性的價目表方案,請按照下列步驟操作:
- 新增 API 產品時,定義自訂屬性。
- 建立包含該產品的 API 產品組合。請參閱「建立 API 產品組合」。
在 API 產品組合的交易記錄政策中,新增用於定義費率方案的自訂屬性。詳情請參閱本主題的簡介,以及「建立交易記錄政策」。 - 為 API 產品組合制定費率方案,並指定自訂評分參數。
詳情請參閱「使用 UI 設定可調整的通知方案」一文。
Classic Edge (Private Cloud)
如要使用 Classic Edge UI 設定含有自訂屬性的費率表方案,請按照下列步驟操作:
- 在 API 產品的交易記錄政策中,加入用於定義費率方案的自訂屬性。詳情請參閱本主題的簡介,以及「建立交易記錄政策」。針對要納入 API 套件的每個 API 產品執行這項操作。
- API 產品和交易記錄政策設定完成後,請建立包含產品的 API 套件。請參閱「建立 API 套件」。
- 為 API 套件建立費率方案,並選取「可調整的自訂屬性通知」費率方案類型。
-
按一下「詳細資料」連結。系統隨即開啟「可調整的通知」視窗。

- 在「自訂屬性」下拉式選單中選取自訂屬性。選單會列出為交易記錄政策中的產品建立的自訂屬性。系統會根據每筆交易中選取的自訂屬性值,計算開發人員的交易總數。
- 將「匯總依據」設為匯總交易量的時間範圍。選取介於 1 到 24 個月之間的數字。這個值的預設值為 1 個月。
- 按一下「套用並關閉」。
-
按一下「儲存草稿」。
只有在確定方案為最終版本時,才發布方案。如要瞭解如何設定發布日期及發布方案,請參閱「發布費率方案」。
詳情請參閱「 使用 UI 指定可調整的通知方案詳細資料」。
使用 API 指定具有自訂屬性的費率方案詳細資料
請先完成下列必要步驟:
- 在 API 產品的交易記錄政策中,加入用於定義費率方案的自訂屬性。詳情請參閱本主題的簡介,以及「建立交易記錄政策」。針對要納入 API 套件的每個 API 產品執行這項操作。
- API 產品和交易記錄政策設定完成後,請建立包含產品的 API 套件。請參閱「建立 API 套件」。
接著,您可以使用 API 建立費率方案。
建立房價方案時,您可以指定含有自訂屬性的房價方案詳細資料。在呼叫 /organizations/{org_name}/monetization-packages/{package_id}/rate-plans 時,您可以在要求主體內的 ratePlanDetails 屬性中指定詳細資料。在詳細資料中,您會指定評分參數值,用來識別自訂屬性的名稱。您也可以指定評分參數值,在指定時間間隔內匯總自訂屬性。
如需費率方案詳細資料選項的完整清單,請參閱費率方案詳細資料設定。
舉例來說,以下會根據名為 messageSize 的自訂屬性,建立含有自訂屬性方案的費率表 (請參閱粗體項目)。
$ curl -H "Content-Type:application/json" -X POST -d \
'{
"name": "Custom attribute-based rate card plan",
"developer":null,
"developerCategory":null,
"currency": {
"id" : "usd"
},
"description": "Custom attribute-based rate card plan",
"displayName" : "Custom attribute-based rate card plan",
"frequencyDuration": "1",
"frequencyDurationType": "MONTH",
"earlyTerminationFee": "10",
"monetizationPackage": {
"id": "location"
},
"organization": {
"id": "{org_name}"
},
"paymentDueDays": "30",
"prorate": "false",
"published": "false",
"ratePlanDetails":[
{
"currency":{
"id":"usd"
},
"duration":1,
"durationType":"MONTH",
"meteringType":"VOLUME",
"paymentDueDays":"30",
"ratingParameter":"messageSize",
"ratingParameterUnit":"MB",
"organization":{
"id":"{org_name}"
},
"ratePlanRates":[
{
"rate":0.15,
"startUnit":0,
"type":"RATECARD",
"endUnit":1000
},
{
"rate":0.1,
"startUnit":1000,
"type":"RATECARD",
"endUnit":null
}
],
"freemiumUnit":0,
"freemiumDuration":0,
"freemiumDurationType":"MONTH",
"type":"RATECARD",
"customPaymentTerm":false
}
],
"freemiumUnit":0,
"freemiumDuration":0,
"freemiumDurationType":"MONTH",
"contractDuration":"1",
"contractDurationType":"YEAR",
"recurringStartUnit": 1,
"recurringType": "CALENDAR",
"recurringFee": "10",
"setUpFee": "10",
"startDate": "2013-09-15 00:00:00",
"type": "STANDARD"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/location/rate-plans" \
-u email:password
以下範例會根據名為 messageSize 的自訂屬性,建立具有自訂屬性費率方案的可調整通知 (請參閱粗體項目)。
$ curl -H "Content-Type:application/json" -X POST -d \
'{
"name": "AdjustableNotification",
"displayName": "Custom attribute-based adjustable notification plan",
"description": "Custom attribute-based adjustable notification plan",
"published": "true",
"organization": {
"id": "myorg"
},
"startDate": "2016-04-15 00:00:00",
"type": "STANDARD",
"monetizationPackage": {
"id": "p1",
"name": "test"
},
"currency": {
"id" : "usd",
"name" : "USD"
},
"ratePlanDetails": [
{
"type": "USAGE_TARGET",
"meteringType": "DEV_SPECIFIC",
"duration": 1,
"durationType": "MONTH",
"ratingParameter": "messageSize",
"ratingParameterUnit": "MB",
"organization": {
"id": "myorg"
},
"currency": {
"id": "usd",
"name": "USD"
}
}
]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/monetization-packages/p1/rate-plans" \
-u email:password