REST Resource: purchases.subscriptionsv2

Risorsa: SubscriptionPurchaseV2

Indica lo stato dell'acquisto di un abbonamento da parte di un utente.

Rappresentazione JSON
{
  "kind": string,
  "regionCode": string,
  "lineItems": [
    {
      object (SubscriptionPurchaseLineItem)
    }
  ],
  "startTime": string,
  "subscriptionState": enum (SubscriptionState),
  "latestOrderId": string,
  "linkedPurchaseToken": string,
  "pausedStateContext": {
    object (PausedStateContext)
  },
  "canceledStateContext": {
    object (CanceledStateContext)
  },
  "testPurchase": {
    object (TestPurchase)
  },
  "acknowledgementState": enum (AcknowledgementState),
  "externalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "subscribeWithGoogleInfo": {
    object (SubscribeWithGoogleInfo)
  }
}
Campi
kind

string

Questo tipo rappresenta un oggetto SubscriptionPurchaseV2 nel servizio androidpublisher.

regionCode

string

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

lineItems[]

object (SubscriptionPurchaseLineItem)

Informazioni a livello di articolo per l'acquisto di un abbonamento. Gli articoli dello stesso acquisto devono essere tutti con AutoRenewingPlan o tutti con PrepaidPlan.

startTime

string (Timestamp format)

Ora in cui è stato concesso l'abbonamento. Non impostato per gli abbonamenti in attesa (l'abbonamento è stato creato, ma è in attesa di pagamento durante la registrazione).

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

subscriptionState

enum (SubscriptionState)

Lo stato attuale dell'abbonamento.

latestOrderId
(deprecated)

string

Deprecato: utilizza lineItems.latest_successful_order_id. L'ID ordine dell'ultimo ordine associato all'acquisto dell'abbonamento. Per l'abbonamento con rinnovo automatico, questo è l'ID ordine di registrazione se non è ancora stato rinnovato o l'ultimo ID ordine ricorrente (ordine riuscito, in attesa o rifiutato). Per l'abbonamento prepagato, questo è l'ID ordine associato al token di acquisto della query.

linkedPurchaseToken

string

Il token di acquisto del vecchio abbonamento se questo abbonamento è uno dei seguenti: * Registrazione di nuovo di un abbonamento annullato ma non scaduto * Upgrade/downgrade da un abbonamento precedente. * Converti l'abbonamento prepagato in un abbonamento con rinnovo automatico. * Convertire un abbonamento con rinnovo automatico in un abbonamento prepagato. * Ricaricare un abbonamento prepagato.

pausedStateContext

object (PausedStateContext)

Contesto aggiuntivo sugli abbonamenti in pausa. Presente solo se l'abbonamento ha attualmente subscriptionState SUBSCRIPTION_STATE_PAUSED.

canceledStateContext

object (CanceledStateContext)

Contesto aggiuntivo sugli abbonamenti annullati. Presente solo se l'abbonamento ha attualmente subscriptionState SUBSCRIPTION_STATE_CANCELED o SUBSCRIPTION_STATE_EXPIRED.

testPurchase

object (TestPurchase)

Presente solo se l'acquisto dell'abbonamento è un acquisto di test.

acknowledgementState

enum (AcknowledgementState)

Lo stato di riconoscimento della sottoscrizione.

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

Identificatore dell'account utente nel servizio di terze parti.

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

Profilo utente associato agli acquisti effettuati con "Abbonati con Google".

SubscriptionState

I potenziali stati in cui può trovarsi un abbonamento, ad esempio se è attivo o annullato. Gli elementi all'interno di un acquisto di abbonamento possono essere tutti piani con rinnovo automatico o piani prepagati.

Enum
SUBSCRIPTION_STATE_UNSPECIFIED Stato dell'abbonamento non specificato.
SUBSCRIPTION_STATE_PENDING L'abbonamento è stato creato, ma è in attesa di pagamento durante la registrazione. In questo stato, tutti gli articoli sono in attesa di pagamento.
SUBSCRIPTION_STATE_ACTIVE L'abbonamento è attivo. - (1) Se l'abbonamento è un piano con rinnovo automatico, almeno un articolo è autoRenewEnabled e non è scaduto. - (2) Se l'abbonamento è un piano prepagato, almeno un elemento non è scaduto.
SUBSCRIPTION_STATE_PAUSED L'abbonamento è in pausa. Lo stato è disponibile solo quando l'abbonamento è un piano con rinnovo automatico. In questo stato, tutti gli elementi sono in pausa.
SUBSCRIPTION_STATE_IN_GRACE_PERIOD L'abbonamento è in periodo di tolleranza. Lo stato è disponibile solo quando l'abbonamento è un piano con rinnovo automatico. In questo stato, tutti gli elementi sono nel periodo di tolleranza.
SUBSCRIPTION_STATE_ON_HOLD L'abbonamento è in attesa (sospeso). Lo stato è disponibile solo quando l'abbonamento è un piano con rinnovo automatico. In questo stato, tutti gli articoli sono in attesa.
SUBSCRIPTION_STATE_CANCELED L'abbonamento è stato annullato, ma non è ancora scaduto. Lo stato è disponibile solo quando l'abbonamento è un piano con rinnovo automatico. Per tutti gli elementi, autoRenewEnabled è impostato su false.
SUBSCRIPTION_STATE_EXPIRED L'abbonamento è scaduto. Tutti gli elementi hanno expiryTime nel passato.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED La transazione in attesa per l'abbonamento è stata annullata. Se questo acquisto in attesa riguardava un abbonamento esistente, utilizza linkedPurchaseToken per ottenere lo stato attuale dell'abbonamento.

PausedStateContext

Informazioni specifiche per un abbonamento in stato di pausa.

Rappresentazione JSON
{
  "autoResumeTime": string
}
Campi
autoResumeTime

string (Timestamp format)

Ora in cui l'abbonamento verrà riattivato automaticamente.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

CanceledStateContext

Informazioni specifiche di un abbonamento nello stato SUBSCRIPTION_STATE_CANCELED o SUBSCRIPTION_STATE_EXPIRED.

Rappresentazione JSON
{

  // Union field cancellation_reason can be only one of the following:
  "userInitiatedCancellation": {
    object (UserInitiatedCancellation)
  },
  "systemInitiatedCancellation": {
    object (SystemInitiatedCancellation)
  },
  "developerInitiatedCancellation": {
    object (DeveloperInitiatedCancellation)
  },
  "replacementCancellation": {
    object (ReplacementCancellation)
  }
  // End of list of possible types for union field cancellation_reason.
}
Campi
Campo unione cancellation_reason. Il motivo per cui un abbonamento è stato annullato. cancellation_reason può essere solo uno dei seguenti:
userInitiatedCancellation

object (UserInitiatedCancellation)

L'abbonamento è stato annullato dall'utente.

systemInitiatedCancellation

object (SystemInitiatedCancellation)

L'abbonamento è stato annullato dal sistema, ad esempio a causa di un problema di fatturazione.

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

L'abbonamento è stato annullato dallo sviluppatore.

replacementCancellation

object (ReplacementCancellation)

L'abbonamento è stato sostituito da un nuovo abbonamento.

UserInitiatedCancellation

Informazioni specifiche sugli annullamenti avviati dagli utenti.

Rappresentazione JSON
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
Campi
cancelSurveyResult

object (CancelSurveyResult)

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

cancelTime

string (Timestamp format)

L'ora in cui l'abbonamento è stato annullato dall'utente. L'utente potrebbe ancora avere accesso all'abbonamento dopo questo periodo. Utilizza lineItems.expiry_time per determinare se un utente ha ancora accesso.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

CancelSurveyResult

Risultato del sondaggio sull'annullamento quando l'abbonamento è stato annullato dall'utente.

Rappresentazione JSON
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
Campi
reason

enum (CancelSurveyReason)

Il motivo selezionato dall'utente nel sondaggio sull'annullamento.

reasonUserInput

string

Impostata solo per CANCEL_SURVEY_REASON_OTHERS. Si tratta della risposta libera dell'utente al sondaggio.

CancelSurveyReason

Il motivo selezionato dall'utente nel sondaggio sull'annullamento.

Enum
CANCEL_SURVEY_REASON_UNSPECIFIED Motivo non specificato per l'annullamento del sondaggio.
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE Utilizzo insufficiente dell'abbonamento.
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES Problemi tecnici durante l'utilizzo dell'app.
CANCEL_SURVEY_REASON_FOUND_BETTER_APP L'utente ha trovato un'app migliore.
CANCEL_SURVEY_REASON_OTHERS Altri motivi.

SystemInitiatedCancellation

Questo tipo non contiene campi.

Informazioni specifiche sugli annullamenti avviati dal sistema Google.

DeveloperInitiatedCancellation

Questo tipo non contiene campi.

Informazioni specifiche sugli annullamenti avviati dagli sviluppatori.

ReplacementCancellation

Questo tipo non contiene campi.

Informazioni specifiche sugli annullamenti causati dalla sostituzione dell'abbonamento.

TestPurchase

Questo tipo non contiene campi.

Indica se l'acquisto dell'abbonamento è un acquisto di prova.

AcknowledgementState

I possibili stati di conferma per un abbonamento.

Enum
ACKNOWLEDGEMENT_STATE_UNSPECIFIED Stato di riconoscimento non specificato.
ACKNOWLEDGEMENT_STATE_PENDING L'abbonamento non è ancora stato riconosciuto.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED L'abbonamento è stato confermato.

ExternalAccountIdentifiers

Identificatore dell'account utente nel servizio di terze parti.

Rappresentazione JSON
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Campi
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.

obfuscatedExternalAccountId

string

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

SubscribeWithGoogleInfo

Informazioni associate agli acquisti effettuati con "Abbonati con Google".

Rappresentazione JSON
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
Campi
profileId

string

L'ID profilo Google dell'utente al momento dell'acquisto dell'abbonamento.

profileName

string

Il nome del profilo dell'utente al momento dell'acquisto dell'abbonamento.

emailAddress

string

L'indirizzo email dell'utente al momento dell'acquisto dell'abbonamento.

givenName

string

Il nome specificato dell'utente al momento dell'acquisto dell'abbonamento.

familyName

string

Il cognome dell'utente al momento dell'acquisto dell'abbonamento.

SubscriptionPurchaseLineItem

Informazioni a livello di articolo per l'acquisto di un abbonamento.

Rappresentazione JSON
{
  "productId": string,
  "expiryTime": string,
  "latestSuccessfulOrderId": string,

  // Union field plan_type can be only one of the following:
  "autoRenewingPlan": {
    object (AutoRenewingPlan)
  },
  "prepaidPlan": {
    object (PrepaidPlan)
  }
  // End of list of possible types for union field plan_type.
  "offerDetails": {
    object (OfferDetails)
  },

  // Union field deferred_item_change can be only one of the following:
  "deferredItemReplacement": {
    object (DeferredItemReplacement)
  },
  "deferredItemRemoval": {
    object (DeferredItemRemoval)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  }
}
Campi
productId

string

L'ID prodotto acquistato (ad esempio "monthly001").

expiryTime

string (Timestamp format)

Ora in cui l'abbonamento è scaduto o scadrà, a meno che l'accesso non venga esteso (ad es. rinnovato).

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

latestSuccessfulOrderId

string

L'ID ordine dell'ultimo ordine andato a buon fine associato a questo elemento. Non presente se l'articolo non è ancora di proprietà dell'utente (ad es. l'articolo in sostituzione differita).

Campo unione plan_type. Il tipo di piano di abbonamento. plan_type può essere solo uno dei seguenti:
autoRenewingPlan

object (AutoRenewingPlan)

L'articolo si rinnova automaticamente.

prepaidPlan

object (PrepaidPlan)

L'articolo è prepagato.

offerDetails

object (OfferDetails)

I dettagli dell'offerta per questo articolo.

Campo unione deferred_item_change. Il campo è presente quando un elemento ha una modifica posticipata. Può essere rimossa o sostituita. deferred_item_change può essere solo uno dei seguenti:
deferredItemReplacement

object (DeferredItemReplacement)

Informazioni sulla sostituzione differita degli articoli.

deferredItemRemoval

object (DeferredItemRemoval)

Informazioni sulla rimozione posticipata degli elementi.

signupPromotion

object (SignupPromotion)

Dettagli della promozione relativi a questo articolo. Impostato solo se è stata applicata una promozione durante la registrazione.

AutoRenewingPlan

Informazioni relative a un piano con rinnovo automatico.

Rappresentazione JSON
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
Campi
autoRenewEnabled

boolean

Se l'abbonamento è attualmente impostato sul rinnovo automatico, ad esempio l'utente non ha annullato l'abbonamento

recurringPrice

object (Money)

Il prezzo ricorrente attuale del piano con rinnovo automatico. Tieni presente che il prezzo non tiene conto degli sconti e non include le imposte per i prezzi non comprensivi di imposte. Chiama invece l'API orders.get se sono necessari i dettagli della transazione.

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

Le informazioni sull'ultima variazione di prezzo dell'articolo dalla registrazione dell'abbonamento.

installmentDetails

object (InstallmentPlan)

Le informazioni relative all'impegno e allo stato del piano a rate per il piano con rinnovo automatico.

SubscriptionItemPriceChangeDetails

Informazioni relative alla variazione di prezzo di un elemento dell'abbonamento.

Rappresentazione JSON
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
Campi
newPrice

object (Money)

Nuovo prezzo ricorrente per l'articolo dell'abbonamento.

priceChangeMode

enum (PriceChangeMode)

La modalità di variazione del prezzo specifica come sta cambiando il prezzo dell'articolo dell'abbonamento.

priceChangeState

enum (PriceChangeState)

Indica che la modifica del prezzo è attualmente in corso.

expectedNewPriceChargeTime

string (Timestamp format)

Il momento del rinnovo in cui la variazione di prezzo diventerà effettiva per l'utente. Questa data è soggetta a modifiche(a una data futura) a causa di casi in cui l'ora di rinnovo cambia, ad esempio in caso di pausa. Questo campo viene compilato solo se la modifica del prezzo non è stata applicata.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

PriceChangeMode

La modalità di variazione del prezzo.

Enum
PRICE_CHANGE_MODE_UNSPECIFIED Modalità di variazione di prezzo non specificata. Questo valore non deve mai essere impostato.
PRICE_DECREASE Se il prezzo dell'abbonamento sta diminuendo.
PRICE_INCREASE Se il prezzo dell'abbonamento è in aumento e l'utente deve accettarlo.
OPT_OUT_PRICE_INCREASE Se il prezzo dell'abbonamento sta per aumentare con la modalità di aumento tacito di prezzo.

PriceChangeState

Lo stato della modifica del prezzo.

Enum
PRICE_CHANGE_STATE_UNSPECIFIED Stato della variazione di prezzo non specificato. Questo valore non deve essere utilizzato.
OUTSTANDING In attesa che l'utente accetti la variazione di prezzo.
CONFIRMED La modifica del prezzo è confermata per l'utente.
APPLIED La modifica del prezzo è stata applicata, ovvero all'utente è stato addebitato il nuovo prezzo.
CANCELED La variazione di prezzo è stata annullata.

InstallmentPlan

Informazioni su un piano rateizzato.

Rappresentazione JSON
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
Campi
initialCommittedPaymentsCount

integer

Il numero totale di pagamenti per i quali l'utente si impegna inizialmente.

subsequentCommittedPaymentsCount

integer

Numero totale di pagamenti per i quali l'utente si impegnerà dopo ogni periodo di impegno. Se il campo è vuoto, il piano rateale tornerà a un normale abbonamento con rinnovo automatico dopo l'impegno iniziale.

remainingCommittedPaymentsCount

integer

Il numero totale di pagamenti impegnati rimanenti da pagare in questo ciclo di rinnovo.

pendingCancellation

object (PendingCancellation)

Se presente, questo piano di rateizzazione è in attesa di essere annullato. L'annullamento avverrà solo dopo che l'utente avrà completato tutti i pagamenti impegnati.

PendingCancellation

Questo tipo non contiene campi.

Questo indicatore mostra se è presente un annullamento in attesa del piano rateale virtuale. L'annullamento avverrà solo dopo che l'utente avrà completato tutti i pagamenti impegnati.

PrepaidPlan

Informazioni relative a un piano prepagato.

Rappresentazione JSON
{
  "allowExtendAfterTime": string
}
Campi
allowExtendAfterTime

string (Timestamp format)

Se presente, questo è il momento dopo il quale sono consentiti gli acquisti di ricarica per il piano prepagato. Non sarà presente per i piani prepagati scaduti.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

OfferDetails

Informazioni sui dettagli dell'offerta relative a una voce dell'acquisto.

Rappresentazione JSON
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
Campi
offerTags[]

string

I tag delle offerte più recenti associati all'offerta. Include i tag ereditati dal piano base.

basePlanId

string

L'ID piano base. Presente per tutti i piani base e le offerte.

offerId

string

L'ID offerta. Presente solo per le offerte scontate.

DeferredItemReplacement

Informazioni relative alla sostituzione differita dell'articolo.

Rappresentazione JSON
{
  "productId": string
}
Campi
productId

string

L'ID prodotto che sostituirà l'ID prodotto esistente.

DeferredItemRemoval

Questo tipo non contiene campi.

Informazioni relative alla sostituzione differita dell'articolo.

SignupPromotion

La promozione applicata a questo articolo al momento dell'acquisto.

Rappresentazione JSON
{

  // Union field promotion_type can be only one of the following:
  "oneTimeCode": {
    object (OneTimeCode)
  },
  "vanityCode": {
    object (VanityCode)
  }
  // End of list of possible types for union field promotion_type.
}
Campi
Campo unione promotion_type. Il tipo di promozione applicata all'articolo. promotion_type può essere solo uno dei seguenti:
oneTimeCode

object (OneTimeCode)

È stato applicato un codice monouso.

vanityCode

object (VanityCode)

È stato applicato un codice personalizzato.

OneTimeCode

Questo tipo non contiene campi.

Un codice promozionale monouso.

VanityCode

Un codice promozionale predefinito utilizzabile più volte.

Rappresentazione JSON
{
  "promotionCode": string
}
Campi
promotionCode

string

Il codice promozionale.

Metodi

get

Recuperare i metadati di un abbonamento

revoke

Revoca l'acquisto di un abbonamento per l'utente.