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 prepagati dei tuoi sviluppatori. Utilizzando le API, puoi eseguire le seguenti attività:

Visualizza la configurazione di monetizzazione

Per visualizzare la configurazione della monetizzazione di uno sviluppatore, invia una richiesta GET a nell'API seguente:

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 sui 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",
}

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

{
  "billingType": "POSTPAID",
}

Modifica del tipo di fatturazione

I tuoi sviluppatori possono passare dalla fatturazione prepagata al pagamento posticipato 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 al pagamento anticipato, Apigee imposta immediatamente Da billingType a PREPAID nella configurazione. Lo sviluppatore può iniziare a utilizzare le API fino all'importo del ricaricamento prepagato. In base alle tue preferenze report sulla monetizzazione, qualsiasi utilizzo esistente nell'account con pagamento posticipato dello sviluppatore deve essere fatturato separatamente da te (provider API).

Da prepagato a postpagato

Se uno sviluppatore passa dal pagamento anticipato a quello con pagamento posticipato, Apigee imposta immediatamente Da billingType a POSTPAID nella configurazione. La tua monetizzazione personalizzata i report mostrano il 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 nell'account prepagato di uno sviluppatore, invia una richiesta GET al nell'API seguente:

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 prepagati dell'account: 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 sviluppatore negativo

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

Questo scenario si verifica quando più processori di messaggi gestiscono l'API dallo stesso sviluppatore. Ogni elaboratore di messaggi avrà una copia del saldo dello sviluppatore in base alla quale consente le chiamate API. Tutti i processori di messaggi periodicamente sincronizzare i rispettivi 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 portafoglio dello sviluppatore in un processore di messaggi è pari a 2 $, il saldo principale potrebbe essere 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 processore di messaggi quasi in tempo reale con lievi ritardi. e non puoi controllare o configurare questo comportamento di Apigee. Tuttavia, vengono conteggiate tutte le chiamate API in eccesso effettuate da uno sviluppatore. Dopo l'elaborazione di tutti gli elementi le chiamate API di uno sviluppatore, l'importo finale nel portafoglio dello sviluppatore riflette 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.

Credito saldo sviluppatore

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

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

Per ulteriori informazioni sull'API, consulta creditBalance.

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

  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 sviluppatori utilizzando: 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 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 eccessivo o insufficiente per l'account di uno sviluppatore, puoi utilizzare adjustBalance API per ridurre o aumentare il saldo dell'account.

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

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 nell'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 che ha ricevuto un addebito in eccesso, 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"
    }
  ]
}