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 i tuoi account di fatturazione prepagati.

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

Visualizza la configurazione della monetizzazione

Per visualizzare la configurazione della 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 visualizzare una risposta simile alla seguente:

{
  "billingType": "PREPAID",
}

Aggiorna 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.

L'esempio seguente 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 visualizzare una risposta simile alla seguente:

{
  "billingType": "POSTPAID",
}

Modifica del tipo di fatturazione

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

Passaggio dal pagamento posticipato al pagamento anticipato

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

Passaggio dal prepagato al postpagato

Se uno sviluppatore passa dal prepagato al postpagato, Apigee imposta immediatamente billingType dello sviluppatore su POSTPAID nella configurazione. I report sulla monetizzazione personalizzata mostrano l'eventuale saldo esistente (di tutte le valute) nell'account prepagato dello sviluppatore come una 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 in un account prepagato dello sviluppatore, invia una richiesta GET alla seguente API:

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

Per saperne di più sull'API, consulta getBalance.

Il seguente esempio mostra come visualizzare il saldo in un 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 visualizzare 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 prepagati dell'account, uno per ogni valuta. Puoi conoscere l'importo del saldo dai campi units e nanos. Il campo lastCreditTime è in formato ora Unix e indica l'ora in cui l'importo del credito dello sviluppatore è stato accreditato per l'ultima volta.

Saldo sviluppatore negativo

Se uno sviluppatore effettua più chiamate API in un breve periodo di tempo, è possibile che gli venga consentito di effettuare chiamate API in eccesso, il che comporta un saldo negativo del portafoglio per lo sviluppatore.

Questo scenario si verifica quando più processori di messaggi gestiscono le chiamate API dello stesso sviluppatore. Ogni processore di messaggi avrà una copia del saldo dello sviluppatore in base al quale consente le chiamate API. Tutti i processori di messaggi sincronizzano periodicamente i propri saldi con il saldo principale nel database Cassandra. A causa dei piccoli ritardi nella sincronizzazione, il saldo del portafoglio di uno sviluppatore in un processore 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 processore di messaggi è di 2 $, il saldo principale potrebbe essere di 0 $. Pertanto, il processore di messaggi consente le chiamate API dello sviluppatore, pensando che il wallet dello sviluppatore abbia ancora 2 $.

Apigee sincronizza il saldo del portafoglio di un processore di messaggi quasi in tempo reale con ritardi minimi e non puoi controllare o configurare questo comportamento di Apigee. Tuttavia, tutte le chiamate API in eccesso effettuate da uno sviluppatore vengono conteggiate. Dopo aver elaborato tutte le chiamate API di uno sviluppatore, l'importo finale nel portafoglio dello sviluppatore riflette l'addebito anche per le chiamate API in eccesso. Pertanto, quando lo sviluppatore ricarica l'account la volta successiva, per avere un saldo positivo del portafoglio, deve prima pagare l'eventuale importo negativo del saldo nel portafoglio.

Saldo del credito per sviluppatori

Per accreditare il saldo in un account prepagato dello 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 saperne di più sull'API, consulta creditBalance.

L'accredito del saldo di uno sviluppatore prevede i seguenti passaggi in ordine:

  1. Uno sviluppatore ricarica l'account sviluppatore dal portale sviluppatori utilizzando un gateway di pagamento.
  2. Il portale sviluppatori genera un ID transazione univoco per la ricarica.
  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 visualizzare 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 nel conto 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, vedi 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. Il seguente esempio riduce il saldo di un account prepagato dello sviluppatore 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 visualizzare 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 della richiesta su un valore negativo. Il seguente esempio aumenta il saldo di un account prepagato dello sviluppatore di 50.1 USD:

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 visualizzare una risposta simile alla seguente:

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