Gestione dei saldi dell'account con pagamento anticipato

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

In questa pagina viene descritto 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 di monetizzazione di uno sviluppatore, invia una richiesta PUT a nell'API seguente:

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 con pagamento anticipato a quella con pagamento posticipato e viceversa. Questa sezione descrive le modifiche che vengono apportate in Apigee quando gli sviluppatori cambiano il tipo di fatturazione.

Pagamento posticipato con pagamento anticipato

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 nell'ambito dell'importo di ricarica 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. Durante il calcolo dell'importo dovuto da uno sviluppatore dopo la fatturazione (fornitore di API) devi considerare il saldo del credito nell'account dello sviluppatore.

Visualizza saldo 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 nei campi units e nanos. lastCreditTime è nel formato dell'epoca e indica l'ora in cui il saldo dello sviluppatore è stato accreditato l'ultima volta.

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 in base al quale consente le chiamate API. Tutti i processori di messaggi periodicamente sincronizzare i rispettivi saldi con il saldo principale nel database Cassandra. A causa di lievi ritardi in fase di 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 portafoglio dello sviluppatore in un processore di messaggi è pari a 2 $, il saldo principale potrebbe essere 0 $. Quindi il messaggio consente le chiamate API da parte dello sviluppatore, pensando che il portafoglio ha 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. Quindi, la prossima volta che lo sviluppatore ricarica l'account, se il saldo del portafoglio è positivo, lo sviluppatore deve prima pagare qualsiasi importo del saldo negativo in al 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"
    }
  ]
}

Regola il saldo sviluppatori

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 sottocosto, 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"
    }
  ]
}