Gestione dei saldi dell'account con pagamento anticipato

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questa pagina descrive come gestire gli account di fatturazione prepagati.

Puoi utilizzare le API Apigee per gestire gli account di fatturazione prepagata dei tuoi sviluppatori. Utilizzando le API, puoi eseguire le seguenti attività:

Visualizza la configurazione della monetizzazione

Per visualizzare la configurazione di monetizzazione di uno sviluppatore, invia una richiesta GET alla seguente API:

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

Con questa API, puoi visualizzare il tipo di fatturazione dello sviluppatore. Per ulteriori informazioni sull'API, consulta getMonetizationConfig.

L'esempio seguente mostra come visualizzare la configurazione della monetizzazione per uno sviluppatore utilizzando il comando curl:

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

Quando esegui il comando, puoi vedere una risposta simile alla seguente:

{
  "billingType": "PREPAID",
}

Aggiornare la configurazione della monetizzazione

Per aggiornare la configurazione della monetizzazione di uno sviluppatore, invia una richiesta PUT alla seguente API:

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

Con questa API puoi aggiornare il tipo di fatturazione dello sviluppatore. Per ulteriori informazioni sull'API, consulta updateMonetizationConfig.

Il seguente esempio mostra come aggiornare la configurazione della monetizzazione per uno sviluppatore utilizzando il comando 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

Quando esegui il comando, puoi vedere una risposta simile alla seguente:

{
  "billingType": "POSTPAID",
}

Modifica del tipo di fatturazione

Gli sviluppatori possono passare dalla fatturazione prepagata a quella postpaid e viceversa. Questa sezione descrive le modifiche che si verificano in Apigee quando gli sviluppatori cambiano il tipo di fatturazione.

Da postpaid a prepagato

Se uno sviluppatore passa dal pagamento posticipato a quello prepagato, Apigee imposta immediatamente billingType su PREPAID nella configurazione. Lo sviluppatore può iniziare a utilizzare le API fino all'importo del ricaricamento prepagato. In base ai tuoi report personalizzati sulla monetizzazione, qualsiasi utilizzo esistente nell'account postpaid dello sviluppatore deve essere fatturato separatamente da te (fornitore dell'API).

Da prepagato a postpaid

Se uno sviluppatore passa dal pagamento prepagato a quello posticipato, Apigee imposta immediatamente billingType su POSTPAID nella configurazione. I report sulla monetizzazione personalizzata mostrano qualsiasi saldo esistente (di tutte le valute) nell'account prepagato dello sviluppatore come transazione di credito. Quando calcoli l'importo dovuto da uno sviluppatore dopo il ciclo di fatturazione, tu (fornitore dell'API) devi considerare il saldo del credito nell'account dello sviluppatore.

Visualizzare il saldo dello sviluppatore

Per visualizzare il saldo dell'account prepagato di uno sviluppatore, invia una richiesta GET alla seguente API:

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

Per ulteriori informazioni sull'API, consulta getBalance.

L'esempio seguente mostra come visualizzare il saldo nell'account prepagato di uno sviluppatore:

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

Quando esegui il comando, puoi vedere una risposta simile alla seguente:

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

Nella risposta di esempio, lo sviluppatore ha due saldi dell'account prepagati, uno per ogni valuta. Puoi conoscere l'importo del saldo dai campi units e nanos. Il campo lastCreditTime è in formato epoch time e indica l'ora dell'ultimo accredito sul saldo dello sviluppatore.

Saldo dello sviluppatore negativo

Se uno sviluppatore effettua più chiamate API in un breve lasso di tempo, è possibile che sia autorizzato a effettuare chiamate API in eccesso, il che si traduce in un saldo del portafoglio negativo per lo sviluppatore.

Questo scenario si verifica quando più processori di messaggi gestiscono le chiamate API dello stesso sviluppatore. Ogni elaboratore di messaggi avrà una copia del saldo dello sviluppatore in base alla quale consente le chiamate API. Tutti gli elaboratori di messaggi sincronizzano periodicamente i propri saldi con il saldo principale nel database Cassandra. A causa dei piccoli ritardi nella sincronizzazione, il saldo del wallet di uno sviluppatore in un elaboratore di messaggi potrebbe non essere sincronizzato con il saldo principale. Ad esempio, in un determinato momento, se il saldo del portafoglio dello sviluppatore in un elaboratore di messaggi è di 2 €, il saldo principale potrebbe essere pari a 0 €. Di conseguenza, il processore di messaggi consente le chiamate API dello sviluppatore, pensando che il suo portafoglio contenga ancora 2 $.

Apigee sincronizza il saldo del portafoglio di un elaboratore di messaggi in tempo quasi reale con piccoli ritardi e non puoi controllare o configurare questo comportamento di Apigee. Tuttavia, tutte le chiamate API in eccesso effettuate da uno sviluppatore vengono prese in considerazione. Dopo aver elaborato tutte le chiamate API di uno sviluppatore, l'importo finale nel suo portafoglio riflette l'addebito anche per le chiamate API in eccesso. Pertanto, la prossima volta che lo sviluppatore ricaricherà l'account, per avere un saldo positivo del portafoglio, dovrà prima pagare l'eventuale saldo negativo del portafoglio.

Saldo del credito dello sviluppatore

Per accreditare il saldo nell'account prepagato di uno sviluppatore, invia una richiesta POST alla seguente API:

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

Per ulteriori informazioni sull'API, consulta creditBalance.

L'accreditamento del saldo di uno sviluppatore prevede i seguenti passaggi:

  1. Uno sviluppatore ricarica l'account sviluppatore dal portale per sviluppatori utilizzando un gateway di pagamento.
  2. Il portale per gli sviluppatori genera un ID transazione univoco per il ricaricamento.
  3. Il portale per sviluppatori aggiorna il saldo dello sviluppatore utilizzando l'API organizations/{org}/developers/{developer}/balance:credit.

L'esempio seguente mostra la chiamata API per il passaggio 3 e accredita 150,21 $ sul saldo dello sviluppatore. transactionId è impostato sul valore dell'ID transazione della transazione di ricarica (passaggio 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

Quando esegui il comando, puoi vedere una risposta simile alla seguente:

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

Regolare il saldo dello sviluppatore

Se hai addebitato un importo inferiore o superiore a quello dovuto all'account di uno sviluppatore, puoi utilizzare l'API adjustBalance per diminuire o aumentare il saldo dell'account.

Per modificare il saldo dell'account prepagato di uno sviluppatore, invia una richiesta POST alla seguente API:

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

Per ulteriori informazioni sull'API, consulta adjustBalance.

Se vuoi ridurre il saldo di uno sviluppatore a cui è stato addebitato un importo inferiore, imposta il campo units nella richiesta su un valore positivo. Nell'esempio seguente, il saldo dell'account prepagato di uno sviluppatore diminuisce di 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

Quando esegui il comando, puoi vedere una risposta simile alla seguente:

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

Se vuoi aumentare il saldo di uno sviluppatore a cui è stato addebitato un importo eccessivo, imposta il campo units nella richiesta su un valore negativo. Nell'esempio seguente, il saldo dell'account prepagato di uno sviluppatore aumenta di 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

Quando esegui il comando, puoi vedere una risposta simile alla seguente:

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