L'API Google Play Voided Purchases fornisce un elenco di ordini associati agli acquisti annullati da un utente. Puoi utilizzare le informazioni contenute in questo elenco per implementare un sistema di revoca che impedisce all'utente di accedere ai prodotti di tali ordini.
Questa API si applica agli ordini in-app singoli e agli abbonamenti ad 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 un ordine.
Google annulla o rimborsa un ordine.
L'utilizzo di questa API contribuisce a creare un'esperienza più equilibrata ed equa per tutti gli utenti della tua app, in particolare se si tratta di un gioco.
Ottenere l'accesso
Per utilizzare l'API Voided Purchases, devi disporre dell'autorizzazione per visualizzare le informazioni finanziarie. Per fornire l'autorizzazione, devi utilizzare un client OAuth o un account di servizio. Se utilizzi un account di servizio, attiva l'autorizzazione "Visualizzazione di report finanziari" all'interno di questo account.
Per scoprire di più sull'accesso autorizzato alle API Google Play Developer, consulta le seguenti guide:
- Configurazione dei client di accesso API
- Aggiungere utenti all'account sviluppatore e gestire le autorizzazioni
Visualizzazione degli acquisti annullati
Utilizza il metodo GET
per richiedere un elenco di acquisti annullati. Nella richiesta, includi il nome completo del pacchetto dell'app, ad esempio com.google.android.apps.maps
, e il token di autorizzazione ricevuto quando ricevi l'accesso all'API.
GET https://www.googleapis.com/androidpublisher/v3/applications/ your_package_name/purchases/voidedpurchases?access_token=your_auth_token
Nella tua richiesta puoi anche includere i seguenti parametri, ognuno dei quali è facoltativo:
- ora di inizio
Il periodo di tempo, in millisecondi trascorso da Epoch Unix, del più vecchio 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 negli ultimi 30 giorni. Gli acquisti annullati precedenti non sono inclusi nella risposta, indipendentemente dal valore che hai fornito per
startTime
.- Ora di fine
Il tempo, in millisecondi dal periodo Unix, dell'ultimo acquisto annullato che vuoi vedere nella risposta. Per impostazione predefinita,
endTime
è impostato sull'ora attuale.- Numero maxRisultati
- Il numero massimo di acquisti annullati in ogni risposta. Per impostazione predefinita, questo valore è 1000. Tieni presente che anche il valore massimo per questo parametro è 1000.
- token
- Un token di continuazione di una risposta precedente, che consente di visualizzare altri risultati.
- digita
Il tipo di acquisti annullati in ogni risposta. Se viene impostato su 0, verranno restituiti solo gli acquisti in-app annullati. Se viene impostato su 1, verranno restituiti sia gli acquisti in-app annullati sia gli acquisti di abbonamenti annullati. Il valore predefinito è 0.
La risposta è una stringa JSON che contiene un elenco di acquisti annullati. Se sono presenti più risultati rispetto al numero specificato nel parametro di richiesta maxResults
, la risposta include un valore nextPageToken
, che puoi trasmettere in una richiesta successiva per visualizzare altri risultati. Il primo risultato nell'elenco mostra l'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 pacchetto:
- 6000 query al giorno La giornata inizia e termina a mezzanotte del fuso orario del Pacifico USA.
- 30 query in un periodo di 30 secondi.
Linee guida per le richieste iniziali
Durante la tua richiesta API iniziale, ti consigliamo di recuperare tutti i dati disponibili per la tua applicazione. Sebbene sia improbabile, questo processo potrebbe esaurire la tua quota giornaliera. Per ottenere dati sugli 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 l'intera quota di query per un giorno, puoi recuperare i dettagli di 6.000.000 di acquisti annullati. - Se una risposta include un valore per
nextPageToken
, assegnalo al parametrotoken
durante la richiesta successiva.
Best practice
Quando stabilisci come utilizzare questa API nella tua app, ricorda che esistono molti motivi per annullare un acquisto e che non esiste una singola soluzione che funzioni sempre. Durante la progettazione delle norme e delle strategie di revoca, devi tenere a mente gli utenti. Per farlo, puoi applicare queste best practice consigliate:
- Utilizza questa API come uno dei tanti elementi di una strategia completa per affrontare il comportamento indesiderato. La revoca dell'accesso ai prodotti in-app è generalmente più efficace se combinata con un'app con prezzi ragionevoli per gli acquisti in-app, un design dell'app che scoraggia il comportamento indesiderato, una solida base utenti la cui cultura rifiuta tale comportamento e canali di assistenza utenti reattivi ed efficienti.
- Amministrare in modo uniforme i criteri di revoca per garantire equità per tutti gli utenti.
- Valuta la possibilità di creare un criterio temporaneo per gestire i comportamenti indesiderati. Ad esempio, inizia con gli avvisi in-app per i reati iniziali, quindi riassegna le risposte man mano che il comportamento indesiderato di un utente continua. Come ultima risorsa, puoi impedire a un utente di interagire con la tua app.
- Quando introduci una norma di revoca e ogni volta che la aggiorni, utilizza i canali di contatto dell'app per informare gli utenti delle modifiche. Offri agli utenti il tempo di comprendere chiaramente questi cambiamenti prima che vengano applicati nella tua app.
- Sii trasparente per gli utenti e informali ogni volta che intraprendi un'azione, ad esempio revoca l'accesso a un prodotto in-app. Idealmente, gli utenti dovrebbero essere in grado di contestare le tue decisioni e tali controversie dovrebbero essere trattate in modo equo.
- Monitora i moduli di feedback e i forum della community per capire cosa comporta gli utenti in modo indesiderabile e come compiono tali comportamenti. Considera questi approfondimenti come prima linea di difesa.