REST Resource: purchases.subscriptions

Risorsa: Acquisto di un abbonamento

Una risorsa SubscriptionPurchase indica lo stato dell'acquisto dell'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)

Ora di scadenza dell'abbonamento, in millisecondi a partire dall'epoca.

autoResumeTimeMillis

string (int64 format)

Ora in cui l'abbonamento verrà ripristinato 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 raggiungimento della data di scadenza attuale.

priceCurrencyCode

string

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

priceAmountMicros

string (int64 format)

Prezzo dell'abbonamento (per i paesi non comprensivi di imposte, il prezzo non è comprensivo delle imposte). Per i paesi in cui l'IVA è comprensiva di IVA, il prezzo è comprensivo di IVA. Il prezzo è espresso in micro-unità, dove 1.000.000 di micro-unità rappresentano un'unità della valuta. Ad esempio, se il prezzo dell'abbonamento è 1,99 €, il valore priceAmountMicros è 1990000.

introductoryPriceInfo

object (IntroductoryPriceInfo)

Informazioni sui prezzi di lancio dell'abbonamento. Questa opzione è presente solo se l'abbonamento è stato acquistato a un prezzo di lancio.

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

countryCode

string

Il 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 del pagamento dell'abbonamento. I valori possibili sono: 0. Pagamento in attesa 1. Pagamento ricevuto 2. Prova senza costi 3. In attesa di upgrade/downgrade differito

Non presente per abbonamenti annullati e scaduti.

cancelReason

integer

Il motivo per cui un abbonamento è stato annullato o non si rinnova automaticamente. 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)

L'ora 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, questo sarà l'ID dell'ordine di pagamento rifiutato.

linkedPurchaseToken

string

Il token di acquisto dell'acquisto di origine 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 sia inizialmente registrato e tu ricevi il token di acquisto X, poi l'utente lo annulli ed esegui la procedura di nuova registrazione (prima che l'abbonamento scada) e tu ricevi il token di acquisto Y. Infine, l'utente esegue l'upgrade dell'abbonamento e tu ricevi 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 (ovvero acquistato da un account di test delle licenze) 1. Promozione (ovvero acquistata utilizzando un codice promozionale)

priceChange

object (SubscriptionPriceChange)

Le informazioni sulla variazione di prezzo più recenti disponibili. Questa opzione è presente solo quando è prevista una variazione di prezzo dell'abbonamento ancora da applicare.

Una volta rinnovato l'abbonamento con il nuovo prezzo o annullato l'abbonamento, non verranno fornite 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 del 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 dichiarare 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 monouso 1. Codice vanity

promotionCode

string

Il codice promozionale applicato a questo acquisto. Questo campo è impostato solo se viene applicata una promozione con codice vanità 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 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 di lancio dell'abbonamento. Ad esempio, se il prezzo è specificato in sterline britanniche, priceCurrencyCode è "GBP".

introductoryPriceAmountMicros

string (int64 format)

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

introductoryPricePeriod

string

Periodo di prezzo di lancio, 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 a cui offrire il prezzo 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 dell'input personalizzato da parte dell'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 in relazione alla variazione di prezzo nell'app. Ad esempio, puoi chiedere conferma all'utente o personalizzare l'esperienza per una conversione riuscita.

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

object (Price)

Il nuovo prezzo con cui si rinnoverà l'abbonamento se la variazione di prezzo viene accettata dall'utente.

state

integer

Stato attuale della variazione di prezzo. I valori possibili sono: 0. In sospeso: stato di una variazione di prezzo in attesa in attesa di accettazione da parte dell'utente. In questo stato, puoi scegliere di chiedere conferma all'utente utilizzando l'API in-app. 1. Accettato: stato relativo a una variazione di prezzo accettata con cui verrà rinnovato l'abbonamento, a meno che non venga annullato. La modifica di prezzo verrà applicata in una data futura di 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

Annulla l'acquisto dell'abbonamento di un utente.

defer

Rimanda l'acquisto dell'abbonamento di un utente fino a una scadenza futura specificata.

get

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

refund

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

revoke

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