API acquisti annullati

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:

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 con voidedQuantity 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 parametro token 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.