Guida di riferimento alle notifiche in tempo reale per lo sviluppatore

Questo documento 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 con codifica base64.

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

Dopo aver decodificato il campo 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 della proprietà Valore Descrizione
versione stringa La versione di questa notifica. Inizialmente, questo valore è "1.0". Questa versione è diversa dagli altri campi della versione.
packageName stringa Il nome del pacchetto dell'applicazione a cui si riferisce questa notifica (ad esempio, `com.some.thing`).
eventTimeMillis lunghi Il timestamp in cui si è verificato l'evento, in millisecondi dal periodo.
subscriptionNotification SubscriptionNotification 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 con oneTimeProductNotification, voidedPurchaseNotification e testNotification.
oneTimeProductNotification OneTimeProductNotification Se questo campo è presente, la notifica è relativa a un acquisto una tantum e questo campo contiene informazioni aggiuntive relative all'acquisto. Tieni presente che questo campo si esclude a vicenda con subscriptionNotification, voidedPurchaseNotification e testNotification.
voidedPurchaseNotification VoidedPurchaseNotification 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 esclude a vicenda con oneTimeProductNotification, subscriptionNotification e testNotification.
testNotification TestNotification Se questo campo è presente, la notifica è correlata a una pubblicazione di test. Questi vengono inviati solo tramite la Google Play Developer Console. Tieni presente che questo campo si esclude a vicenda con oneTimeProductNotification, subscriptionNotification e voidedPurchaseNotification.

SubscriptionNotification

Un SubscriptionNotification contiene i seguenti campi:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string
}
Nome della proprietà Valore Descrizione
versione stringa La versione di questa notifica. Inizialmente, questo valore è "1.0". Questa versione è diversa dagli altri campi della versione.
notificationType int Il valore di notificationType per un abbonamento può essere uno dei seguenti:
  • (1) SUBSCRIPTION_RECOVERED - Un abbonamento è stato recuperato dalla sospensione dell'account.
  • (2) SUBSCRIPTION_RENEWED: un abbonamento attivo è stato rinnovato.
  • (3) SUBSCRIPTION_CANCELED - Un abbonamento è stato annullato volontariamente o involontariamente. Per l'annullamento volontario, inviato quando l'utente annulla l'abbonamento.
  • (4) SUBSCRIPTION_PURCHASED: è stato acquistato un nuovo abbonamento.
  • (5) SUBSCRIPTION_ON_HOLD - A subscription has entered account hold (if enabled).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - A subscription has entered grace period (if enabled).
  • (7) SUBSCRIPTION_RESTARTED - L'utente ha ripristinato il proprio abbonamento da Play > Account > Abbonamenti. L'abbonamento è stato annullato, ma non era ancora scaduto quando l'utente lo ha ripristinato. Per ulteriori informazioni, vedi Ripristini.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (DEPRECATED) - A subscription price change has successfully been confirmed by the user.
  • (9) SUBSCRIPTION_DEFERRED - La ricorrenza di un abbonamento è stata estesa.
  • (10) SUBSCRIPTION_PAUSED - Un abbonamento è stato sospeso.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - A subscription pause schedule has been changed.
  • (12) SUBSCRIPTION_REVOKED - Un abbonamento è stato revocato all'utente prima della data di scadenza.
  • (13) SUBSCRIPTION_EXPIRED: un abbonamento è scaduto.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - Una transazione in attesa di un abbonamento è stata annullata.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED - I dettagli della variazione di prezzo di un elemento di abbonamento vengono aggiornati.
purchaseToken stringa Il token fornito al dispositivo dell'utente al momento dell'acquisto dell'abbonamento.

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"
  }
}

OneTimeProductNotification

Un OneTimeProductNotification contiene i seguenti campi:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Nome proprietà Valore Descrizione
versione stringa La versione di questa notifica. Inizialmente, 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 a pagamento singolo è stato acquistato correttamente da un utente.
  • (2) ONE_TIME_PRODUCT_CANCELED - L'acquisto di un prodotto a pagamento singolo in sospeso è stato annullato dall'utente.
purchaseToken stringa Il token fornito al dispositivo dell'utente al momento dell'acquisto.
sku stringa L'ID prodotto a pagamento singolo acquistato (ad esempio, "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"
  }
}

VoidedPurchaseNotification

Un VoidedPurchaseNotification contiene i seguenti campi:

Nome proprietà

Valore

Descrizione

purchaseToken

string

Il token associato all'acquisto annullato. Queste informazioni vengono fornite allo sviluppatore quando viene effettuato un nuovo acquisto.

orderId

string

L'ID ordine univoco associato alla transazione che è stata annullata. Per gli acquisti una tantum, questo 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 - È stato annullato un acquisto di abbonamento.
  • (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 annullato parzialmente da un rimborso parziale basato sulla quantità, applicabile solo agli acquisti di più quantità. Un acquisto può essere annullato parzialmente più volte.

Tieni presente che quando viene rimborsata la quantità totale rimanente di un acquisto con più quantità, l'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 VoidedPurchaseNotification

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

  • packageName: identifica l'app.
  • eventTimeMillis: indica l'ora in cui è avvenuto il cambio 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: Specifica il tipo di rimborso che ha annullato l'acquisto.

TestNotification

Un TestNotification contiene i seguenti campi:

{
  "version": string
}
Nome della proprietà Valore Descrizione
versione stringa La versione di questa notifica. Inizialmente, questo valore è "1.0". Questa versione è diversa dagli altri campi della versione.

Esempio

Ecco un esempio di notifica di test:

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