Questo argomento elenca e descrive i tipi di notifiche in tempo reale per gli sviluppatori 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 di 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 | stringa | La versione di questa notifica. Inizialmente, il valore è "1.0". Questa versione è diversa dagli altri campi di versione. |
packageName | stringa | Il nome del pacchetto dell'applicazione a cui si riferisce questa notifica (ad esempio, "com.some.thing"). |
eventTimeMillis | lunghi | Il timestamp dell'evento, in millisecondi dall'epoca. |
subscriptionNotification | SubscriptionNotification | Se questo campo è presente, la notifica è correlata a un abbonamento e contiene informazioni aggiuntive relative all'abbonamento. Tieni presente che questo campo è mutuamente esclusivo con oneTimeProductNotification, voidedPurchaseNotification e testNotification. |
oneTimeProductNotification | OneTimeProductNotification | Se questo campo è presente, la notifica riguarda un acquisto una tantum e contiene informazioni aggiuntive relative all'acquisto. Tieni presente che questo campo è mutuamente esclusivo con subscriptionNotification, voidedPurchaseNotification e testNotification. |
voidedPurchaseNotification | VoidedPurchaseNotification | Se questo campo è presente, la notifica riguarda un acquisto annullato e contiene informazioni aggiuntive relative all'acquisto annullato. Tieni presente che questo campo è mutuamente esclusivo con oneTimeProductNotification, subscriptionNotification e testNotification. |
testNotification | TestNotification | Se questo campo è presente, la notifica riguarda una pubblicazione di test. Questi vengono inviati solo tramite la Console per gli sviluppatori di Google Play. Tieni presente che questo campo è mutuamente esclusivo di oneTimeProductNotification, subscriptionNotification e voidedPurchaseNotification. |
SubscriptionNotification
Un SubscriptionNotification
contiene i seguenti campi:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
Nome proprietà | Valore | Descrizione |
versione | stringa | La versione di questa notifica. Inizialmente, il valore è "1.0". Questa versione è diversa dagli altri campi di versione. |
notificationType | int | Il valore notificationType di una sottoscrizione può avere i seguenti valori:
|
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 di versione. |
notificationType | int | Il tipo di notifica. Può avere i seguenti valori:
|
purchaseToken | stringa | Il token fornito al dispositivo dell'utente al momento dell'acquisto. |
sku | stringa | 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"
}
}
VoidedPurchaseNotification
Un VoidedPurchaseNotification
contiene i seguenti campi:
Nome proprietà |
Valore |
Descrizione |
|
|
Il token associato all'acquisto annullato. Queste informazioni vengono fornite allo sviluppatore al momento di un nuovo acquisto. |
|
|
L'ID ordine univoco associato alla transazione 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. |
|
|
Il valore
|
|
|
Il valore
Tieni presente che quando la quantità totale rimanente di un acquisto con più quantità viene rimborsata, |
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 cliente RTDN riceve un VoidedPurchaseNotification
, prendi nota delle seguenti informazioni:
packageName
: identifica l'app.eventTimeMillis
: viene comunicato allo sviluppatore l'ora in cui si è verificata la variazione 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 è stato un acquisto in-app o un abbonamento.refundType
: indica il tipo di rimborso che ha annullato l'acquisto.
Se per modificare i diritti devi solo trovare l'acquisto e l'ordine giusti, a questo punto hai tutte le informazioni di cui hai bisogno. Per scoprire come ottenere ulteriori informazioni sull'acquisto annullato, consulta l'API Google Play Voided Purchases, un modello pull che fornisce dati aggiuntivi per gli acquisti annullati tra un determinato timestamp.
Per gli acquisti con più quantità annullati parzialmente, il campo refundableQuantity
fornito da purchases.products
contiene il numero rimanente di prodotti acquistati che non sono stati annullati.
TestNotification
Un TestNotification
contiene i seguenti campi:
{
"version": string
}
Nome proprietà | Valore | Descrizione |
versione | stringa | La versione di questa notifica. Inizialmente, il valore è "1.0". Questa versione è diversa dagli altri campi di versione. |
Esempio
Ecco un esempio di notifica di prova:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}