- Risorsa: ProductPurchaseV2
- PurchaseStateContext
- PurchaseState
- TestPurchaseContext
- FopType
- ProductLineItem
- ProductOfferDetails
- RentOfferDetails
- ConsumptionState
- AcknowledgementState
- Metodi
Risorsa: ProductPurchaseV2
Una risorsa ProductPurchaseV2 indica lo stato dell'acquisto di un prodotto in-app da parte di un utente.
| Rappresentazione JSON |
|---|
{ "productLineItem": [ { object ( |
| Campi | |
|---|---|
productLineItem[] |
Contiene informazioni a livello di articolo per un ProductPurchaseV2. |
kind |
Questo tipo rappresenta un oggetto ProductPurchaseV2 nel servizio androidpublisher. |
purchaseStateContext |
Informazioni sullo stato dell'acquisto. |
testPurchaseContext |
Informazioni relative agli acquisti di test. Verrà impostato solo per gli acquisti di test. |
orderId |
L'ID ordine associato all'acquisto del prodotto in-app. Potrebbe non essere impostato se non è presente alcun ordine associato all'acquisto. |
obfuscatedExternalAccountId |
Una versione offuscata dell'ID associato in modo univoco all'account dell'utente nella tua app. Presente solo se specificato utilizzando https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid al momento dell'acquisto. |
obfuscatedExternalProfileId |
Una versione offuscata dell'ID associato in modo univoco al profilo dell'utente nella tua app. Presente solo se specificato utilizzando https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid al momento dell'acquisto. |
regionCode |
Codice regione di fatturazione ISO 3166-1 alpha-2 dell'utente al momento della concessione del prodotto. |
purchaseCompletionTime |
L'ora in cui l'acquisto è andato a buon fine, ovvero quando PurchaseState è passato a PURCHASED. Questo campo non sarà presente finché il pagamento non sarà completato. Ad esempio, se l'utente ha avviato una transazione in attesa (https://developer.android.com/google/play/billing/integrate#pending), questo campo non verrà compilato finché l'utente non avrà completato correttamente i passaggi necessari per completare la transazione. Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
acknowledgementState |
Solo output. Lo stato di riconoscimento dell'acquisto. |
PurchaseStateContext
Contesto sullo stato dell'acquisto.
| Rappresentazione JSON |
|---|
{
"purchaseState": enum ( |
| Campi | |
|---|---|
purchaseState |
Solo output. Lo stato dell'acquisto. |
PurchaseState
Stati di acquisto possibili.
| Enum | |
|---|---|
PURCHASE_STATE_UNSPECIFIED |
Stato dell'acquisto non specificato. Questo valore non deve mai essere impostato. |
PURCHASED |
Acquisto completato. |
CANCELLED |
Aquisto annullato. |
PENDING |
L'acquisto è in stato in attesa e non è ancora stato completato. Per ulteriori informazioni sulla gestione degli acquisti in attesa, visita la pagina https://developer.android.com/google/play/billing/integrate#pending. |
TestPurchaseContext
Contesto di un acquisto di prova.
| Rappresentazione JSON |
|---|
{
"fopType": enum ( |
| Campi | |
|---|---|
fopType |
Il tipo di fop dell'acquisto di test. |
FopType
Possibili tipi di FOP.
| Enum | |
|---|---|
FOP_TYPE_UNSPECIFIED |
Tipo di FOP non specificato. Questo valore non deve mai essere impostato. |
TEST |
L'acquisto è stato effettuato utilizzando una carta di prova. |
ProductLineItem
Contiene informazioni a livello di articolo per un ProductPurchaseV2.
| Rappresentazione JSON |
|---|
{
"productId": string,
"productOfferDetails": {
object ( |
| Campi | |
|---|---|
productId |
L'ID prodotto acquistato (ad esempio "monthly001"). |
productOfferDetails |
I dettagli dell'offerta per questo articolo. |
ProductOfferDetails
Informazioni sui dettagli dell'offerta relative a una voce dell'acquisto.
| Rappresentazione JSON |
|---|
{ "offerTags": [ string ], "offerId": string, "purchaseOptionId": string, "rentOfferDetails": { object ( |
| Campi | |
|---|---|
offerTags[] |
I tag delle offerte più recenti associati all'offerta. Include i tag ereditati dall'opzione di acquisto. |
offerId |
L'ID offerta. Presente solo per le offerte. |
purchaseOptionId |
L'ID opzione di acquisto. |
rentOfferDetails |
Offri dettagli sulle offerte di affitto. Questo valore verrà impostato solo per gli elementi pubblicitari di noleggio. |
offerToken |
Il token dell'offerta per transazione utilizzato per creare questa voce dell'acquisto. |
quantity |
La quantità associata all'acquisto del prodotto in-app. |
refundableQuantity |
La quantità idonea per il rimborso, ovvero la quantità per cui non è stato effettuato alcun rimborso. Il valore riflette i rimborsi parziali e totali basati sulla quantità. |
consumptionState |
Solo output. Lo stato di consumo dell'acquisto. |
RentOfferDetails
Questo tipo non contiene campi.
Informazioni sui dettagli dell'offerta relative a un elemento pubblicitario di noleggio.
ConsumptionState
Possibili stati di consumo.
| Enum | |
|---|---|
CONSUMPTION_STATE_UNSPECIFIED |
Stato del consumo non specificato. Questo valore non deve mai essere impostato. |
CONSUMPTION_STATE_YET_TO_BE_CONSUMED |
Ancora da consumare. |
CONSUMPTION_STATE_CONSUMED |
Già consumato. |
AcknowledgementState
Stato di conferma del prodotto a pagamento singolo.
| Enum | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
Stato di riconoscimento non specificato. |
ACKNOWLEDGEMENT_STATE_PENDING |
L'acquisto non è ancora stato riconosciuto. |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
L'acquisto è stato riconosciuto. |
Metodi |
|
|---|---|
|
Controlla lo stato di acquisto e consumo di un elemento in-app. |
Codici di errore
Le operazioni di questa risorsa restituiscono i seguenti codici di errore HTTP:
| Codice di errore | Motivo | Descrizione | Risoluzione |
|---|---|---|---|
400 |
invalidPurchaseState |
L'acquisto non è in uno stato valido per eseguire l'operazione richiesta. Ad esempio, potresti tentare di confermare un acquisto già consumato o annullare un abbonamento non attivo. | Prima di tentare l'operazione, controlla lo stato attuale della risorsa utilizzando l'API Get corrispondente. Assicurati che la risorsa si trovi in uno stato appropriato per l'azione. |
400 |
invalidValue |
Nella richiesta è stato fornito un valore non valido. Questo errore viene spesso restituito per un token di acquisto non valido o con un formato non corretto. | Correggi il valore del campo non valido nel corpo della richiesta o nei parametri in base al riferimento API. |
400 |
productNotOwnedByUser |
Il token di acquisto fornito è valido, ma l'utente non possiede attualmente il prodotto. Ciò può verificarsi se l'acquisto è stato rimborsato, revocato o è scaduto prima della conferma. | Prima di tentare l'operazione, controlla lo stato attuale della risorsa utilizzando l'API Get corrispondente. Assicurati che la risorsa si trovi in uno stato appropriato per l'azione. |
400 |
purchaseTokenMismatch |
Il token di acquisto fornito non corrisponde all'acquisto, al nome del pacchetto, all'ID abbonamento o all'ID prodotto. | Verifica che tutti i dettagli della richiesta siano corretti e corrispondano tra loro. |
400 |
required |
Nella richiesta manca un campo o un parametro obbligatorio. | Consulta la documentazione dell'API per assicurarti di includere tutti i campi e i parametri obbligatori. |
400 |
unsupportedIabType |
L'operazione non è supportata per il tipo di fatturazione in-app specificato. | Assicurati che il metodo API sia compatibile con il tipo di elemento gestito. |
403 |
userInsufficientPermission |
L'utente non dispone di autorizzazioni sufficienti per eseguire l'operazione richiesta. | Assicurati che l'utente autenticato disponga delle autorizzazioni necessarie in Google Play Console. Per ulteriori dettagli, consulta Utilizzo di un service account. |
404 |
notFound |
Impossibile trovare la risorsa richiesta. | Verifica che gli identificatori (ad es. token di acquisto, nome del pacchetto, ID prodotto, ID abbonamento) siano corretti. |
409 |
concurrentUpdate |
È stato effettuato un tentativo di aggiornamento di un oggetto in fase di aggiornamento simultaneo. | Riprova a inviare la richiesta con il backoff esponenziale. Evita modifiche simultanee alla stessa risorsa. |
5xx |
Generic error |
Errore generico nel server Google Play. | Riprova a inviare la richiesta. Se il problema persiste, contatta il tuo Account Manager Google Play o invia una richiesta di assistenza. Ti consigliamo di controllare la dashboard dello stato di Play per eventuali interruzioni note. |