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 di 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 di 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 di monetizzazione

Per aggiornare la configurazione di 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 maggiori informazioni sull'API, consulta updateMonetizationConfig.

L'esempio seguente mostra come aggiornare la configurazione di 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

I tuoi sviluppatori possono passare da una fatturazione prepagata a con pagamento posticipato e viceversa. Questa sezione descrive le modifiche che vengono apportate in Apigee quando gli sviluppatori cambiano il tipo di fatturazione.

Da pagamento posticipato a prepagato

Se uno sviluppatore passa dal pagamento posticipato al pagamento prepagato, Apigee imposta immediatamente il valore billingType dello sviluppatore su PREPAID nella configurazione. Lo sviluppatore può iniziare a utilizzare le API fino all'importo di ricarica prepagato. In base ai report sulla monetizzazione personalizzati, qualsiasi utilizzo esistente nell'account con pagamento posticipato dello sviluppatore deve essere fatturato separatamente da te (provider API).

Da prepagato a con pagamento posticipato

Se uno sviluppatore passa dal pagamento anticipato al pagamento posticipato, Apigee imposta immediatamente il valore billingType dello sviluppatore su POSTPAID nella configurazione. I report sulla monetizzazione personalizzati mostrano l'eventuale saldo esistente (di tutte le valute) nell'account prepagato dello sviluppatore sotto forma di transazione di credito. Nel calcolare l'importo dovuto da uno sviluppatore dopo il ciclo di fatturazione, il fornitore di API deve considerare il saldo del credito nell'account dello sviluppatore.

Visualizza saldo sviluppatori

Per visualizzare il saldo nell'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 maggiori informazioni sull'API, consulta la pagina getBalance.

L'esempio seguente 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 dell'account prepagati, uno per ogni valuta. Puoi conoscere l'importo del saldo nei campi units e nanos. Il campo lastCreditTime è nel formato dell'ora del periodo e indica il momento in cui è stato accreditato l'ultimo accredito del saldo dello sviluppatore.

Saldo sviluppatori negativo

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

Questo scenario si verifica quando più processori di messaggi gestiscono le chiamate API dallo stesso sviluppatore. Ogni elaboratore dei 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 lievi ritardi nella sincronizzazione, il saldo del portafoglio 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 dei messaggi è pari a 2 $, il saldo principale potrebbe essere pari a 0 $. Di conseguenza, il processore di messaggi consente le chiamate API dello sviluppatore, pensando che il portafoglio dello sviluppatore abbia ancora 2 $.

Apigee sincronizza il saldo del portafoglio di un processore di messaggi quasi in tempo reale con lievi ritardi, e non puoi controllare o configurare questo comportamento di Apigee. Tuttavia, vengono prese in considerazione tutte le chiamate API in eccesso effettuate da uno sviluppatore. Dopo l'elaborazione di tutte le chiamate API di uno sviluppatore, l'importo finale nel portafoglio dello sviluppatore riflette l'addebito anche per le chiamate API in eccesso. Quindi, la prossima volta che lo sviluppatore ricarica l'account, per avere un saldo del portafoglio positivo, deve prima pagare qualsiasi importo del saldo negativo nel portafoglio.

Saldo credito 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 maggiori informazioni sull'API, consulta la pagina creditBalance.

Per accreditare l'importo sul saldo di uno sviluppatore:

  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 la ricarica.
  3. Il portale per gli sviluppatori aggiorna il saldo per gli sviluppatori utilizzando l'API organizations/{org}/developers/{developer}/balance:credit.

L'esempio seguente mostra la chiamata API per il passaggio 3 e accredita il saldo dello sviluppatore di 150,21 $. 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"
    }
  ]
}

Modifica il saldo sviluppatori

Se l'account di uno sviluppatore è stato addebitato in eccesso o in difetto, puoi utilizzare l'API adjustBalance per aumentare o diminuire il saldo dell'account.

Per regolare il saldo di un 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 maggiori informazioni sull'API, consulta adjustBalance.

Se vuoi diminuire il saldo di uno sviluppatore che ha un addebito insufficiente, imposta il campo units nella richiesta su un valore positivo. L'esempio seguente riduce il saldo dell'account prepagato di uno sviluppatore di 50 USD:

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 che ha un addebito eccessivo, imposta il campo units nella richiesta su un valore negativo. L'esempio seguente aumenta il saldo dell'account prepagato di uno 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"
    }
  ]
}