管理預付帳戶餘額

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本頁說明如何管理預付帳單帳戶。

您可以使用 Apigee API 管理開發人員的預付帳單帳戶。您可以使用 API 執行下列工作:

查看營利設定

如要查看開發人員的營利設定,請向下列 API 發出 GET 要求:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

您可以透過這項 API 查看開發人員的帳單類型。如要進一步瞭解 API,請參閱 getMonetizationConfig

以下範例說明如何使用 curl 指令查看開發人員的營利設定:

curl -H "Authorization: Bearer $TOKEN" \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

執行指令後,您會看到類似以下的回應:

{
  "billingType": "PREPAID",
}

更新營利設定

如要更新開發人員的營利設定,請向下列 API 發出 PUT 要求:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

您可以使用這個 API 更新開發人員的帳單類型。如要進一步瞭解 API,請參閱 updateMonetizationConfig

以下範例說明如何使用 curl 指令更新開發人員的營利設定:

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X PUT \
-d '{
"billingType": "POSTPAID",
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/monetizationConfig

執行指令後,您會看到類似以下的回應:

{
  "billingType": "POSTPAID",
}

變更帳單類型

開發人員可以將帳單付款方式從預付改為後付,反之亦然。本節說明開發人員變更帳單類型時,Apigee 會發生哪些變更。

從後付卡切換為預付卡

如果開發人員從後付改為預付,Apigee 會立即在設定中將開發人員的 billingType 設為 PREPAID。開發人員可以開始使用預付儲值金額範圍內的 API。根據您自訂的營利報表,開發人員的後付帳戶中任何現有用量都應由您 (API 供應商) 另外計費。

從預付卡改用後付

如果開發人員從預付改為後付,Apigee 會立即在設定中將開發人員的 billingType 設為 POSTPAID。自訂營利報表會將開發人員預付帳戶中所有貨幣的現有餘額,顯示為信用交易。在結算週期後計算開發人員應付款項時,您 (API 供應商) 必須考量開發人員帳戶中的信用餘額。

查看開發人員餘額

如要查看開發人員預付帳戶中的餘額,請向下列 API 發出 GET 要求:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance

如要進一步瞭解 API,請參閱 getBalance

以下範例說明如何查看開發人員預付帳戶中的餘額:

curl -H "Authorization: Bearer $TOKEN" \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance

執行指令後,您會看到類似以下的回應:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "150",
        "nanos": 500000000
      },
      "lastCreditTime": 1234567890
    },
    {
      "balance": {
        "currencyCode": "INR",
        "units": "10000",
        "nanos": 600000000
      },
      "lastCreditTime": 9876543210
    }
  ]
}

在範例回應中,開發人員有兩個預付帳戶餘額,每個貨幣各一個。您可以透過 unitsnanos 欄位瞭解餘額金額。lastCreditTime 欄位採用 Epoch 紀元時間格式,表示開發人員的餘額上次入帳的時間。

開發人員餘額為負

如果開發人員在短時間內發出多個 API 呼叫,系統可能會允許開發人員發出過多 API 呼叫,導致開發人員的錢包餘額為負值。

當多個訊息處理器處理來自同一位開發人員的 API 呼叫時,就會發生這種情況。每個訊息處理器都會擁有開發人員的餘額副本,並根據該副本允許 API 呼叫。所有訊息處理工具都會定期將其餘額與 Cassandra 資料庫中的主餘額保持同步。由於同步處理有輕微延遲,開發人員在訊息處理工具中的錢包餘額可能與主要餘額不同步。舉例來說,如果開發人員在某個時間點的訊息處理器錢包餘額為 2 美元,主要餘額可能為 0 美元。因此,訊息處理器會允許開發人員的 API 呼叫,並認為開發人員的錢包仍有 2 美元。

Apigee 會以近乎即時的方式同步訊息處理器的錢包餘額,但會有輕微延遲,且您無法控制或設定 Apigee 的這項行為。不過,開發人員所發出的所有額外 API 呼叫都會計入。處理完開發人員的所有 API 呼叫後,開發人員錢包中的最終金額會反映收取的費用,包括超出配額的 API 呼叫。因此,開發人員下次為帳戶充值時,必須先付清錢包中的任何負餘額,才能擁有正向的錢包餘額。

開發人員抵免額餘額

如要將款項存入開發人員的預付帳戶,請向下列 API 發出 POST 要求:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:credit

如要進一步瞭解 API,請參閱 creditBalance

如要為開發人員的餘額加值,請依序完成下列步驟:

  1. 開發人員使用付款服務入口,透過開發人員入口為開發人員帳戶儲值。
  2. 開發人員入口網站會為儲值產生專屬交易 ID。
  3. 開發人員入口網站會使用 organizations/{org}/developers/{developer}/balance:credit API 更新開發人員餘額。

以下範例顯示步驟 3 的 API 呼叫,並將開發人員的餘額增加 150.21 美元。transactionId 會設為儲值交易的交易 ID 值 (步驟 3)。

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X POST \
-d '{
  "transactionAmount": {
     "currencyCode": "USD",
     "units": "150",
     "nanos": 210000000
  },
  "transactionId": "ab31b63e-f8e8-11eb-9a03-0242ac130003"
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:credit

執行指令後,您會看到類似以下的回應:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "300",
        "nanos": 710000000
      },
      "lastCreditTime": "9876543210"
    },
    {
      "balance": {
        "currencyCode": "INR",
        "units": "10000",
        "nanos": 600000000
      },
      "lastCreditTime": "1234567890"
    }
  ]
}

調整開發人員餘額

如果您向開發人員帳戶收取的費用過多或過少,可以使用 adjustBalance API 減少或增加帳戶餘額。

如要調整開發人員預付帳戶中的餘額,請向下列 API 發出 POST 要求:

https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:adjust

如要進一步瞭解 API,請參閱「adjustBalance」。

如果您想減少收費不足的開發人員餘額,請將要求中的 units 欄位設為正值。以下範例會將開發人員預付帳戶的餘額減少 50 美元:

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X POST \
-d '{
  "adjustment": {
    "units": "50",
    "currencyCode": "USD"
  }
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:adjust

執行指令後,您會看到類似以下的回應:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "150"
      },
      "lastCreditTime": "1635489199530"
    }
  ]
}

如果您想為收費過高的開發人員增加餘額,請將要求中的 units 欄位設為負值。以下範例會將開發人員預付帳戶的餘額增加 50.1 美元:

curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-X POST \
-d '{
  "adjustment": {
    "units": "-50",
    "nanos": "100000000",
    "currencyCode": "USD"
  }
}' \
https://apigee.googleapis.com/v1/organizations/$YOUR_GOOGLE_PROJECT_ID/developers/$DEVELOPER_EMAIL_ID/balance:adjust

執行指令後,您會看到類似以下的回應:

{
  "wallets": [
    {
      "balance": {
        "currencyCode": "USD",
        "units": "200",
        "nanos": 100000000
      },
      "lastCreditTime": "1635489199530"
    }
  ]
}