L'API Voided Purchases di Google Play fornisce un elenco di ordini che sono associati ad acquisti annullati da un utente. Puoi utilizzare informazioni di questo elenco per implementare un sistema di revoca che impedisce all'utente di che accedono ai prodotti da questi ordini.
Questa API si applica agli ordini in-app una tantum e agli abbonamenti alle app.
Un acquisto può essere annullato nei seguenti modi:
- L'utente richiede il rimborso dell'ordine.
- L'utente annulla l'ordine.
- Un ordine viene riaddebitato.
Lo sviluppatore annulla o rimborsa l'ordine.
Google annulla o rimborsa l'ordine.
Utilizzando questa API, contribuisci a creare un'esperienza più equilibrata ed equa per tutti degli utenti della tua app, in particolare se l'app è un gioco.
Ottenere l'accesso
Per utilizzare l'API Voided Purchases, devi disporre dell'autorizzazione per visualizzare informazioni finanziarie. Puoi fornire l'autorizzazione utilizzando un client OAuth o l'account di servizio. Se utilizzi un account di servizio, attiva la sezione report" autorizzazione all'interno di questo account.
Per scoprire di più su come ottenere l'accesso autorizzato alle API Google Play Developer, consulta le seguenti guide:
- Configurazione dei client di accesso alle API
- Aggiungere utenti all'account sviluppatore e gestire le autorizzazioni
Visualizzazione degli acquisti annullati
Utilizza il metodo GET
per richiedere un elenco degli acquisti annullati. Nella tua richiesta,
includi il nome completo del pacchetto dell'app, ad esempio
com.google.android.apps.maps
e il token di autorizzazione
ricevuto quando ottieni l'accesso all'API.
GET https://www.googleapis.com/androidpublisher/v3/applications/ your_package_name/purchases/voidedpurchases?access_token=your_auth_token
Nella richiesta puoi anche includere i seguenti parametri, ognuno dei quali è facoltativo:
- startTime
Il tempo, in millisecondi a partire dall'epoca Unix, della meno recente un acquisto annullato che vuoi vedere nella risposta. Per impostazione predefinita,
startTime
è impostato su 30 giorni fa.L'API può mostrare solo gli acquisti annullati che si sono verificati in passato 30 giorni. Gli acquisti annullati in precedenza non sono inclusi nella risposta, indipendentemente del valore che hai fornito per
startTime
.- endTime
Il tempo, in millisecondi a partire dall'epoca Unix, dell'ultimo video ha annullato l'acquisto di quello che vuoi vedere nella risposta. Per impostazione predefinita,
endTime
è impostata sull'ora attuale.- maxResults
- Il numero massimo di acquisti annullati visualizzati in ogni risposta. Di predefinito, questo valore è 1000. Tieni presente che il valore massimo di questo parametro è anche 1000.
- token
- Un token di continuazione di una risposta precedente, che ti consente di visualizzare altre che consentono di analizzare i dati e visualizzare i risultati.
- tipo
Il tipo di acquisti annullati che compare in ogni risposta. Se impostato su 0, verranno restituiti solo gli acquisti in-app annullati. Se impostato su 1, vengono annullati entrambi i valori in-app acquisti e gli acquisti di abbonamenti annullati verranno restituiti. Il valore predefinito è 0.
- includeQuantityBasedPartialRefund
Indica se includere acquisti annullati di rimborsi parziali basati sulla quantità. applicabili solo agli acquisti di più quantità. Se
true
, ulteriori acquisti annullati possono essere restituiti convoidedQuantity
che indica la quantità rimborsata di un rimborso parziale basato sulla quantità. La il valore predefinito èfalse
.
La risposta è una stringa JSON contenente un elenco degli acquisti annullati. Se ci sono
sono più risultati rispetto al numero specificato nel parametro di richiesta maxResults
, la risposta include un valore nextPageToken
, che puoi passare in un
successiva per visualizzare altri risultati. Il primo risultato dell'elenco mostra
acquisto annullato meno recente.
{ "tokenPagination": { "nextPageToken": "next_page_token" }, "voidedPurchases": [ { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_purchase_token", "purchaseTimeMillis": "1468825200000", "voidedTimeMillis": "1469430000000", "orderId": "some_order_id", "voidedSource": "0", "voidedReason": "4" }, { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_other_purchase_token", "purchaseTimeMillis": "1468825100000", "voidedTimeMillis": "1470034800000", "orderId": "some_other_order_id", "voidedSource": "2", "voidedReason": "5" }, ] }
Quote
L'API Voided Purchases imposta le seguenti quote per singolo pacchetto:
- 6000 query al giorno. Il giorno inizia e termina a mezzanotte (fuso orario del Pacifico).
- 30 query in un periodo di 30 secondi.
Linee guida per le richieste iniziali
Durante la richiesta API iniziale, può essere opportuno recuperare tutti i dati disponibili per: la tua app. Sebbene improbabile, questo processo potrebbe esaurire la tua quota giornaliera. A ottenere dati relativi agli acquisti annullati in modo più sicuro e coerente, segui queste best practice:
- Utilizza il valore predefinito per il parametro
maxResults
. In questo modo, se utilizzi per un giorno, puoi recuperare i dettagli di 6.000.000 acquisti annullati. - Se una risposta include un valore per
nextPageToken
, assegna questo valore al parametrotoken
durante la prossima richiesta.
Best practice
Se usate quest'API nella vostra app, ricordate che esistono di annullare un acquisto e che non esiste un'unica soluzione valida per tutti i casi. Devi tenere in considerazione i tuoi utenti quando progetti la revoca criteri e strategie. Per farlo, puoi applicare queste pratiche consigliate:
- Utilizzare quest'API come uno dei numerosi elementi di una strategia completa per risolvere comportamenti indesiderati. La revoca dell'accesso ai prodotti in-app è in genere più efficace se combinata con un'app che offre prezzi ragionevoli per gli acquisti in-app, progettazione dell'app che scoraggia comportamenti indesiderati, una base utenti solida la cui la cultura respinge tali comportamenti e un'assistenza agli utenti reattiva ed efficiente canali.
- Amministra in modo uniforme i criteri di revoca per garantire equità a tutti gli utenti.
- Per risolvere comportamenti indesiderati, valuta la possibilità di creare un criterio temporaneo. Per Ad esempio, inizia con gli avvisi in-app per i primi reati, quindi riassegna di risposta quando il comportamento indesiderato di un utente continua. Come ultima risorsa, puoi impedire a un utente di interagire con la tua app.
- Quando introduci un criterio di revoca e ogni volta che lo aggiorni, utilizza il tuo canali di contatto dell'app per informare gli utenti dei cambiamenti. Offri agli utenti per comprendere chiaramente le modifiche prima che diventino effettive nella tua app.
- Sii trasparente nei confronti dei tuoi utenti e informali ogni volta che intraprendi un'azione, ad esempio: la revoca dell'accesso a un prodotto in-app. Idealmente, gli utenti dovrebbero essere in grado contestare le tue decisioni e tali controversie devono essere trattate in modo equo.
- Monitora i moduli di feedback e i forum della community per capire che cosa spinge gli utenti a comportarsi in modi indesiderati e su come attuano tali comportamenti. Intervieni su questi come prima linea di difesa.