Guida di riferimento alle notifiche in tempo reale per lo sviluppatore

Questo argomento elenca e descrive i tipi di Notifiche in tempo reale per lo sviluppatore che puoi ricevere da Google Play.

Codifica

Ogni pubblicazione effettuata in un argomento Cloud Pub/Sub contiene un singolo campo di dati codificato in base64.

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Dopo aver decodificato il campo dei dati codificato in base64, DeveloperNotification contiene i seguenti campi:

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}

Questi campi sono descritti nella tabella seguente.

Nome proprietà Valore Descrizione
versione string La versione di questa notifica. All'inizio, il valore è "1.0". Questa versione è diversa dagli altri campi della versione.
NomePacchetto string Il nome del pacchetto dell'applicazione a cui si riferisce la notifica (ad esempio "com.some.thing").
Orario eventoMillis lunghi Il timestamp in cui si è verificato l'evento, in millisecondi dall'epoca.
Notifica sottoscrizione Notifica abbonamento Se questo campo è presente, la notifica riguarda un abbonamento e questo campo contiene informazioni aggiuntive relative all'abbonamento. Tieni presente che questo campo si escludono a vicenda con oneTimeProductNotification, voidedPurchaseNotification e testNotification.
notifica oneTimeProduct Notifica prodottoOneTime Se questo campo è presente, la notifica riguarda un acquisto una tantum e contiene informazioni aggiuntive sull'acquisto. Tieni presente che questo campo si escludono a vicenda con subscriptionNotification, voidedPurchaseNotification, e testNotification.
voidedPurchaseNotification Notifica di acquisto non valida Se questo campo è presente, la notifica riguarda un acquisto annullato e questo campo contiene informazioni aggiuntive relative all'acquisto annullato. Tieni presente che questo campo si escludono a vicenda con oneTimeProductNotification, subscriptionNotification e testNotification.
testNotifica Notifica prova Se questo campo è presente, la notifica riguarda la pubblicazione di un test. Queste informazioni vengono inviate soltanto tramite la Google Play Developer Console. Tieni presente che questo campo si escludono a vicenda con oneTimeProductNotification, subscriptionNotification e voidedPurchaseNotification.

Notifica abbonamento

Un elemento SubscriptionNotification contiene i seguenti campi:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
Nome proprietà Valore Descrizione
versione string La versione di questa notifica. All'inizio, il valore è "1.0". Questa versione è diversa dagli altri campi della versione.
NotificationType int Il parametro notificationType per una sottoscrizione può avere i seguenti valori:
  • (1) SUBSCRIPTION_RECOVERED - È stato recuperato un abbonamento dopo la sospensione dell'account.
  • (2) SUBSCRIPTION_RENEWED - È stato rinnovato un abbonamento attivo.
  • (3) SUBSCRIPTION_CANCELED - Un abbonamento è stato annullato volontariamente o inavvertitamente. Per l'annullamento volontario, inviato quando l'utente annulla l'abbonamento.
  • (4) SUBSCRIPTION_PURCHASED: è stato acquistato un nuovo abbonamento.
  • (5) SUBSCRIPTION_ON_HOLD - È stata attivata la sospensione dell'account per un abbonamento (se attivata).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - Un abbonamento è entrato in un periodo di tolleranza (se abilitato).
  • (7) SUBSCRIPTION_RESTARTED - L'utente ha ripristinato l'abbonamento da Play > Account > Abbonamenti. L'abbonamento è stato annullato, ma non era ancora scaduto al ripristino dell'utente. Per maggiori informazioni, consulta Ripristino.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - La variazione di prezzo di un abbonamento è stata confermata dall'utente.
  • (9) SUBSCRIPTION_DEFERRED - La durata della ricorrenza di un abbonamento è stata estesa.
  • (10) SUBSCRIPTION_PAUSED - Un abbonamento è stato messo in pausa.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - La pianificazione della sospensione di un abbonamento è stata modificata.
  • (12) SUBSCRIPTION_REVOKED - Un abbonamento è stato revocato dall'utente prima della scadenza.
  • (13) SUBSCRIPTION_EXPIRED - Un abbonamento è scaduto.
purchaseToken string Il token fornito al dispositivo dell'utente al momento dell'acquisto dell'abbonamento.
ID abbonamento string L'ID prodotto dell'abbonamento acquistato (ad esempio, "monthly001").

Esempio

Ecco un esempio di notifica per l'acquisto di un nuovo abbonamento:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

Notifica prodottoOneTime

Un elemento OneTimeProductNotification contiene i seguenti campi:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Nome proprietà Valore Descrizione
versione string La versione di questa notifica. Inizialmente il valore sarà "1.0". Questa versione è diversa dagli altri campi della versione.
NotificationType int Il tipo di notifica. Può avere i seguenti valori:
  • (1) ONE_TIME_PRODUCT_PURCHASED: un prodotto una tantum è stato acquistato da un utente.
  • (2) ONE_TIME_PRODUCT_CANCELED - Un acquisto di un prodotto una tantum in sospeso è stato annullato dall'utente.
purchaseToken string Il token fornito al dispositivo dell'utente al momento dell'acquisto.
SKU string L'ID prodotto unico acquistato (ad es. "sword_001")

Esempio

Ecco un esempio di notifica per un nuovo acquisto una tantum:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

Notifica di acquisto non valida

Un elemento VoidedPurchaseNotification contiene i seguenti campi:

Nome proprietà

Valore

Descrizione

purchaseToken

string

Il token associato all'acquisto che è stato annullato. Queste informazioni vengono fornite allo sviluppatore quando si verifica un nuovo acquisto.

orderId

string

L'ID ordine univoco associato alla transazione che è stata annullata. Per gli acquisti una tantum, rappresenta l'unico ID ordine generato per l'acquisto. Per gli abbonamenti con rinnovo automatico, viene generato un nuovo ID ordine per ogni transazione di rinnovo.

productType

int

Il productType per un acquisto annullato può avere i seguenti valori:

  • (1) PRODUCT_TYPE_SUBSCRIPTION: l'acquisto di un abbonamento è stato annullato.
  • (2) PRODUCT_TYPE_ONE_TIME - Un acquisto una tantum è stato annullato.

refundType

int

Il refundType per un acquisto annullato può avere i seguenti valori:

  • (1) REFUND_TYPE_FULL_REFUND - L'acquisto è stato completamente annullato.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND: l'acquisto è stato parzialmente annullato da un rimborso parziale basato sulla quantità, applicabile solo agli acquisti di più quantità. Un acquisto può essere parzialmente annullato più volte.

Tieni presente che, quando la quantità totale rimanente per un acquisto di più quantità viene rimborsata, il refundType sarà REFUND_TYPE_FULL_REFUND.

Esempio

Ecco un esempio di notifica per un nuovo acquisto annullato:

{
  "version":"1.0",
  "packageName":"com.some.app",
  "eventTimeMillis":"1503349566168",
  "voidedPurchaseNotification":
  {
    "purchaseToken":"PURCHASE_TOKEN",
    "orderId":"GS.0000-0000-0000",
    "productType":1
    "refundType":1
  }
}

Utilizzo di una notifica di acquisto annullata

Quando il tuo client RTDN riceve un VoidedPurchaseNotification, tieni presente le seguenti informazioni:

  • packageName: identifica l'app.
  • eventTimeMillis: indica allo sviluppatore quando si è verificata la modifica di stato.
  • purchaseToken: il token fornito al dispositivo dell'utente al momento dell'acquisto del prodotto.
  • orderId: identifica l'ordine associato alla transazione annullata.
  • productType: indica se l'acquisto annullato era un acquisto in-app o un abbonamento.
  • refundType: indica il tipo di rimborso che ha annullato l'acquisto.

Se tutto ciò che devi fare per gli aggiustamenti dei diritti è individuare l'acquisto e l'ordine giusti, a questo punto hai a disposizione tutte le informazioni di cui hai bisogno. Per scoprire come ottenere ulteriori informazioni sull'acquisto annullato, consulta l'API Voided Purchases di Google Play, un modello pull che fornisce dati aggiuntivi per gli acquisti annullati tra un determinato timestamp.

Per gli acquisti di più quantità parzialmente annullati, il campo refundableQuantity fornito da purchases.products contiene il numero rimanente di prodotti acquistati che non sono stati annullati.

Notifica prova

Un elemento TestNotification contiene i seguenti campi:

{
  "version": string
}
Nome proprietà Valore Descrizione
versione string La versione di questa notifica. All'inizio, il valore è "1.0". Questa versione è diversa dagli altri campi della versione.

Esempio

Ecco un esempio di notifica di prova:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}