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 di Cloud Pub/Sub contiene un singolo con codifica Base64.

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

Dopo aver decodificato il campo di dati con codifica 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 seguente tabella.

Nome proprietà Valore Descrizione
versione string La versione di questa notifica. All'inizio, è "1.0". Questo è diversa dagli altri campi della versione.
NomePacchetto string Il nome del pacchetto dell'applicazione a cui fa riferimento questa notifica (ad esempio "com.some.thing").
eventTimeMillis lunghi Il timestamp in millisecondi durante il quale si è verificato l'evento. l'epoca.
notifica abbonamento Notifica abbonamento Se questo campo è presente, la notifica è correlata a un abbonamento e questo campo contiene informazioni aggiuntive relative all'abbonamento. Tieni presente che questo campo si esclude a vicenda oneTimeProductNotification, voidedPurchaseNotification e Notificatest.
oneTimeProductNotification NotificaProdottoUna tantum Se questo campo è presente, la notifica è correlata a un una tantum e questo campo contiene informazioni aggiuntive relative all'acquisto. Tieni presente che questo campo si escludono a vicenda con subscriptionNotification, voidedPurchaseNotification, e testNotification.
notifica di acquisto annullata Notifica di acquisto annullata Se questo campo è presente, la notifica è correlata a 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 Notificatest.
Notificatest NotificaTest Se questo campo è presente, la notifica è correlata a un pubblicazione di prova. Queste vengono inviate soltanto tramite lo sviluppatore Google Play Google Cloud. Tieni presente che questo campo si esclude a vicenda oneTimeProductNotification, subscriptionNotification e voidedPurchaseNotification.

Notifica abbonamento

Un 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, è "1.0". Questo è diversa dagli altri campi della versione.
tipo di notifica int Il tipo di notifica per una sottoscrizione può avere i seguenti valori:
  • (1) SUBSCRIPTION_RECOVERED - È stato recuperato un abbonamento da sospensione dell'account.
  • (2) SUBSCRIPTION_RENEWED: un abbonamento attivo è stato rinnovato.
  • (3) SUBSCRIPTION_CANCELED - Un abbonamento è stato volontariamente o annullato involontariamente. Per l'annullamento volontario, inviato quando l'utente annulla l'abbonamento.
  • (4) SUBSCRIPTION_PURCHASED: è stato acquistato un nuovo abbonamento.
  • (5) SUBSCRIPTION_ON_HOLD - È stato inserito un abbonamento nell'account blocco (se attivo).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - È stato inserito un abbonamento periodo di tolleranza (se abilitato).
  • (7) SUBSCRIPTION_RESTARTED - L'utente ha ripristinato la sua abbonamento da Play > Account > Abbonamenti. La l'abbonamento è stato annullato, ma non era ancora scaduto quando l'utente ripristinabili. Per ulteriori informazioni, vedi Ripristino.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED: il prezzo di un abbonamento la modifica è stata confermata correttamente dall'utente.
  • (9) SUBSCRIPTION_DEFERRED: la data e l'ora di ricorrenza di un abbonamento sono è stata estesa.
  • (10) SUBSCRIPTION_PAUS - Un abbonamento è stato messo in pausa.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - Sospensione dell'abbonamento la pianificazione è stata modificata.
  • (12) SUBSCRIPTION_REVOKED - Un abbonamento è stato revocato da l'utente prima della scadenza.
  • (13) SUBSCRIPTION_EXPIRED. Un abbonamento è scaduto.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - Una transazione in attesa di un abbonamento è stato annullato.
purchaseToken string Il token fornito al dispositivo dell'utente al momento dell'abbonamento acquistato.
ID abbonamento string L'ID prodotto dell'abbonamento acquistato (ad esempio, "monthly001").

Esempio

Ecco un esempio di notifica relativa all'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"
  }
}

NotificaProdottoUna tantum

Un OneTimeProductNotification contiene i seguenti campi:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Nome proprietà Valore Descrizione
versione string La versione di questa notifica. All'inizio, sarà "1.0". Questo è diversa dagli altri campi della versione.
tipo di notifica int Il tipo di notifica. Può avere i seguenti valori:
  • (1) ONE_TIME_PRODUCT_PURCHASED - Un prodotto a pagamento singolo è stato acquistato da un utente.
  • (2) ONE_TIME_PRODUCT_CANCELED - Un prodotto a pagamento singolo in attesa l'acquisto è stato annullato dall'utente.
purchaseToken string Il token fornito al dispositivo dell'utente al momento dell'acquisto.
SKU string L'ID prodotto a pagamento singolo 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 annullata

Un VoidedPurchaseNotification contiene i seguenti campi:

Nome proprietà

Valore

Descrizione

purchaseToken

string

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

orderId

string

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

productType

int

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

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

refundType

int

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 - Il 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.

Nota quando la quantità totale rimanente di un acquisto di più quantità è rimborsato, l'importo di refundType verrà 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 VoidedPurchaseNotification

Quando il client RTDN riceve un VoidedPurchaseNotification, prendi nota della le seguenti informazioni:

  • packageName: identifica l'app.
  • eventTimeMillis: consente di comunicare allo sviluppatore l'ora della modifica in .
  • purchaseToken: il token fornito al dispositivo dell'utente quando il prodotto è stato acquistato.
  • orderId: identifica l'ordine associato all'annullamento transazione.
  • productType: indica se l'acquisto annullato è un'app in-app un acquisto o un abbonamento.
  • refundType: indica il tipo di rimborso che ha annullato l'acquisto.

Se per l'aggiustamento dei diritti non devi fare altro che trovare l'acquisto giusto e in ordine, avrai tutte le informazioni di cui hai bisogno a questo punto. Per ulteriori informazioni come ottenere ulteriori informazioni sull'acquisto annullato, consulta le API Google Play Voided Purchases, 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 fornita da purchases.products contiene i restanti numero di prodotti acquistati che non sono stati annullati.

NotificaTest

Un TestNotification contiene i seguenti campi:

{
  "version": string
}
Nome proprietà Valore Descrizione
versione string La versione di questa notifica. All'inizio, è "1.0". Questo è 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"
  }
}