REST Resource: purchases.subscriptions

Risorsa: SubscriptionPurchase

Una risorsa SubscriptionPurchase indica lo stato dell'acquisto di un abbonamento da parte di un utente.

Rappresentazione JSON
{
  "kind": string,
  "startTimeMillis": string,
  "expiryTimeMillis": string,
  "autoResumeTimeMillis": string,
  "autoRenewing": boolean,
  "priceCurrencyCode": string,
  "priceAmountMicros": string,
  "introductoryPriceInfo": {
    object (IntroductoryPriceInfo)
  },
  "countryCode": string,
  "developerPayload": string,
  "paymentState": integer,
  "cancelReason": integer,
  "userCancellationTimeMillis": string,
  "cancelSurveyResult": {
    object (SubscriptionCancelSurveyResult)
  },
  "orderId": string,
  "linkedPurchaseToken": string,
  "purchaseType": integer,
  "priceChange": {
    object (SubscriptionPriceChange)
  },
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string,
  "profileId": string,
  "acknowledgementState": integer,
  "externalAccountId": string,
  "promotionType": integer,
  "promotionCode": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Campi
kind

string

Questo tipo rappresenta un oggetto subscriptionPurchase nel servizio androidpublisher.

startTimeMillis

string (int64 format)

Ora in cui è stato concesso l'abbonamento, in millisecondi dall'epoca.

expiryTimeMillis

string (int64 format)

Data e ora di scadenza dell'abbonamento, in millisecondi dall'epoca.

autoResumeTimeMillis

string (int64 format)

Ora in cui l'abbonamento verrà ripreso automaticamente, in millisecondi dall'epoca. Presente solo se l'utente ha richiesto di mettere in pausa l'abbonamento.

autoRenewing

boolean

Indica se l'abbonamento verrà rinnovato automaticamente al termine della data di scadenza corrente.

priceCurrencyCode

string

Codice valuta ISO 4217 per il prezzo dell'abbonamento. Ad esempio, se il prezzo è specificato in sterline inglesi, il codice valuta del prezzo è "GBP".

priceAmountMicros

string (int64 format)

Prezzo dell'abbonamento. Per i paesi con imposte escluse, il prezzo non include le imposte. Per i paesi con tasse incluse, il prezzo include le tasse. Il prezzo è espresso in micro-unità, dove 1.000.000 micro-unità rappresentano un'unità di valuta. Ad esempio, se il prezzo dell'abbonamento è 1,99 €, priceAmountMicros è 1990000.

introductoryPriceInfo

object (IntroductoryPriceInfo)

Informazioni sul prezzo di lancio dell'abbonamento. Questo valore è presente solo se l'abbonamento è stato acquistato a un prezzo di lancio.

Questo campo non indica che l'abbonamento è attualmente in un periodo di prezzo di lancio.

countryCode

string

Codice paese/regione di fatturazione ISO 3166-1 alpha-2 dell'utente al momento della concessione dell'abbonamento.

developerPayload

string

Una stringa specificata dallo sviluppatore che contiene informazioni supplementari su un ordine.

paymentState

integer

Lo stato di pagamento dell'abbonamento. I valori possibili sono: 0. Pagamento in attesa 1. Pagamento ricevuto 2. Prova senza costi 3. Upgrade/downgrade differito in attesa

Non presente per gli abbonamenti annullati o scaduti.

cancelReason

integer

Il motivo per cui un abbonamento è stato annullato o non è previsto il rinnovo automatico. I valori possibili sono: 0. L'utente ha annullato l'abbonamento 1. L'abbonamento è stato annullato dal sistema, ad esempio a causa di un problema di fatturazione 2. L'abbonamento è stato sostituito con un nuovo abbonamento 3. L'abbonamento è stato annullato dallo sviluppatore

userCancellationTimeMillis

string (int64 format)

Il momento in cui l'abbonamento è stato annullato dall'utente, in millisecondi dall'epoca. Presente solo se cancelReason è 0.

cancelSurveyResult

object (SubscriptionCancelSurveyResult)

Informazioni fornite dall'utente quando completa il flusso di annullamento dell'abbonamento (sondaggio sul motivo dell'annullamento).

orderId

string

L'ID dell'ultimo ordine ricorrente associato all'acquisto dell'abbonamento. Se l'abbonamento è stato annullato perché il pagamento è stato rifiutato, si tratta dell'ID ordine dell'ordine con pagamento rifiutato.

linkedPurchaseToken

string

Il token di acquisto dell'acquisto originale, se questo abbonamento è uno dei seguenti: 0. Nuova registrazione di un abbonamento annullato, ma non scaduto 1. Eseguire l'upgrade/il downgrade da un abbonamento precedente

Ad esempio, supponiamo che un utente si registri inizialmente e tu riceva il token di acquisto X, poi l'utente annulli l'abbonamento e segua il flusso di annullamento (prima della scadenza dell'abbonamento) e tu riceva il token di acquisto Y e infine l'utente esegui l'upgrade dell'abbonamento e tu riceva il token di acquisto Z. Se chiami questa API con il token di acquisto Z, questo campo verrà impostato su Y. Se chiami questa API con il token di acquisto Y, questo campo verrà impostato su X. Se chiami questa API con il token di acquisto X, questo campo non verrà impostato.

purchaseType

integer

Il tipo di acquisto dell'abbonamento. Questo campo viene impostato solo se l'acquisto non è stato effettuato utilizzando il flusso di fatturazione in-app standard. I valori possibili sono: 0. Test (ad es. acquistato da un account di test delle licenze) 1. Promo (ovvero acquistato utilizzando un codice promozionale)

priceChange

object (SubscriptionPriceChange)

Le informazioni più recenti sulle variazioni di prezzo disponibili. Questo messaggio viene visualizzato solo quando è in programma una variazione di prezzo dell'abbonamento che deve ancora essere applicata.

Una volta rinnovato l'abbonamento con il nuovo prezzo o annullato l'abbonamento, non verranno restituite informazioni sulla variazione di prezzo.

profileName

string

Il nome del profilo dell'utente al momento dell'acquisto dell'abbonamento. Presente solo per gli acquisti effettuati con "Abbonati con Google".

emailAddress

string

L'indirizzo email dell'utente al momento dell'acquisto dell'abbonamento. Presente solo per gli acquisti effettuati con "Abbonati con Google".

givenName

string

Il nome dell'utente al momento dell'acquisto dell'abbonamento. Presente solo per gli acquisti effettuati con "Abbonati con Google".

familyName

string

Il cognome dell'utente al momento dell'acquisto dell'abbonamento. Presente solo per gli acquisti effettuati con "Abbonati con Google".

profileId

string

L'ID profilo Google dell'utente al momento dell'acquisto dell'abbonamento. Presente solo per gli acquisti effettuati con "Abbonati con Google".

acknowledgementState

integer

Lo stato di conferma del prodotto in abbonamento. I valori possibili sono: 0. Da confermare 1. Confermato

externalAccountId

string

Identificatore dell'account utente nel servizio di terze parti. Presente solo se il collegamento dell'account è avvenuto nell'ambito del flusso di acquisto dell'abbonamento.

promotionType

integer

Il tipo di promozione applicata a questo acquisto. Questo campo viene impostato solo se viene applicata una promozione al momento dell'acquisto dell'abbonamento. I valori possibili sono: 0. Codice una tantum 1. Codice vanity

promotionCode

string

Il codice promozionale applicato a questo acquisto. Questo campo viene impostato solo se viene applicata una promozione con codice vanity al momento dell'acquisto dell'abbonamento.

obfuscatedExternalAccountId

string

Una versione offuscata dell'ID associata in modo univoco all'account dell'utente nella tua app. Presente per i seguenti acquisti: * Se il collegamento dell'account è avvenuto nell'ambito del flusso di acquisto dell'abbonamento. * È stato specificato utilizzando https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid al momento dell'acquisto.

obfuscatedExternalProfileId

string

Una versione offuscata dell'ID associata 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.

IntroductoryPriceInfo

Contiene le informazioni sul prezzo di lancio di un abbonamento.

Rappresentazione JSON
{
  "introductoryPriceCurrencyCode": string,
  "introductoryPriceAmountMicros": string,
  "introductoryPricePeriod": string,
  "introductoryPriceCycles": integer
}
Campi
introductoryPriceCurrencyCode

string

Codice valuta ISO 4217 per il prezzo dell'abbonamento introduttivo. Ad esempio, se il prezzo è specificato in sterline inglesi, il codice valuta del prezzo è "GBP".

introductoryPriceAmountMicros

string (int64 format)

Prezzo di lancio dell'abbonamento, escluse le imposte. La valuta è la stessa di priceCurrencyCode. Il prezzo è espresso in micro-unità, dove 1.000.000 micro-unità rappresentano un'unità di valuta. Ad esempio, se il prezzo dell'abbonamento è 1,99 €, priceAmountMicros è 1990000.

introductoryPricePeriod

string

Periodo di prezzo introduttivo, specificato nel formato ISO 8601. I valori comuni sono (a titolo esemplificativo) "P1W" (una settimana), "P1M" (un mese), "P3M" (tre mesi), "P6M" (sei mesi) e "P1Y" (un anno).

introductoryPriceCycles

integer

Il numero di periodi di fatturazione per cui offrire i prezzi di lancio.

SubscriptionCancelSurveyResult

Informazioni fornite dall'utente quando completa il flusso di annullamento dell'abbonamento (sondaggio sul motivo dell'annullamento).

Rappresentazione JSON
{
  "cancelSurveyReason": integer,
  "userInputCancelReason": string
}
Campi
cancelSurveyReason

integer

Il motivo dell'annullamento scelto dall'utente nel sondaggio. I valori possibili sono: 0. Altro 1. Non uso abbastanza il servizio 2. Problemi tecnici 3. Per motivi di costi 4. Ho trovato un'app migliore

userInputCancelReason

string

Il motivo dell'annullamento inserito dall'utente. Presente solo quando cancelReason è 0.

SubscriptionPriceChange

Contiene le informazioni sulla variazione di prezzo di un abbonamento che possono essere utilizzate per controllare il percorso dell'utente per la variazione di prezzo nell'app. Può essere sotto forma di richiesta di conferma da parte dell'utente o di personalizzazione dell'esperienza per una conversione riuscita.

Rappresentazione JSON
{
  "newPrice": {
    object (Price)
  },
  "state": integer
}
Campi
newPrice

object (Price)

Il nuovo prezzo a cui verrà rinnovato l'abbonamento se la variazione di prezzo viene accettata dall'utente.

state

integer

Lo stato attuale della variazione di prezzo. I valori possibili sono: 0. In sospeso: stato di una variazione di prezzo in attesa dell'accettazione da parte dell'utente. In questo stato, se vuoi, puoi chiedere conferma all'utente utilizzando l'API In-App. 1. Accettata: stato di una variazione di prezzo accettata con cui verrà rinnovato l'abbonamento, a meno che non venga annullato. La variazione di prezzo viene applicata in una data futura al momento del rinnovo dell'abbonamento. Tieni presente che la modifica potrebbe non avvenire al successivo rinnovo dell'abbonamento.

Metodi

acknowledge

Conferma l'acquisto di un abbonamento.

cancel

Annullare l'acquisto di un abbonamento da parte di un utente.

defer

Rimanda l'acquisto di un abbonamento da parte di un utente fino a una data di scadenza futura specificata.

get

Controlla se l'acquisto dell'abbonamento di un utente è valido e restituisce la relativa data di scadenza.

refund

Rimborsa l'acquisto di un abbonamento da parte di un utente, ma l'abbonamento rimane valido fino alla data di scadenza e continuerà a essere ricorrente.

revoke

Rimborsa e revoca immediatamente l'acquisto di un abbonamento da parte di un utente.