In diesem Dokument werden die Arten von Entwicklerbenachrichtigungen in Echtzeit aufgeführt und beschrieben, die Sie von Google Play erhalten können.
Codierung
Jede Veröffentlichung in einem Cloud Pub/Sub-Thema enthält ein einzelnes base64-codiertes Datenfeld.
{
"message": {
"attributes": {
"key": "value"
},
"data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Nachdem Sie das Base64-codierte Datenfeld decodiert haben, enthält DeveloperNotification
die folgenden Felder:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
Diese Felder werden in der folgenden Tabelle beschrieben.
Eigenschaftsname | Wert | Beschreibung |
Version | String | Die Version dieser Benachrichtigung. Anfangs ist das „1.0“. Diese Version unterscheidet sich von anderen Versionsfeldern. |
packageName | String | Der Paketname der Anwendung, auf die sich diese Benachrichtigung bezieht, z. B. `com.some.thing`. |
eventTimeMillis | long | Der Zeitstempel des Ereignisses in Millisekunden seit der Epoche. |
subscriptionNotification | SubscriptionNotification | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf ein Abo und enthält zusätzliche Informationen zum Abo. Dieses Feld schließt sich gegenseitig mit oneTimeProductNotification, voidedPurchaseNotification und testNotification aus. |
oneTimeProductNotification | OneTimeProductNotification | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf einen einmaligen Kauf. Dieses Feld enthält zusätzliche Informationen zum Kauf. Dieses Feld schließt subscriptionNotification, voidedPurchaseNotification und testNotification gegenseitig aus. |
voidedPurchaseNotification | VoidedPurchaseNotification | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf einen stornierten Kauf und enthält zusätzliche Informationen zum stornierten Kauf. Dieses Feld schließt oneTimeProductNotification, subscriptionNotification und testNotification aus. |
testNotification | TestNotification | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf eine Testveröffentlichung. Diese werden nur über die Google Play Console gesendet. Dieses Feld schließt sich gegenseitig mit oneTimeProductNotification, subscriptionNotification und voidedPurchaseNotification aus. |
SubscriptionNotification
Eine SubscriptionNotification
enthält die folgenden Felder:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
Eigenschaftsname | Wert | Beschreibung |
Version | String | Die Version dieser Benachrichtigung. Anfangs ist das „1.0“. Diese Version unterscheidet sich von anderen Versionsfeldern. |
notificationType | int | Der notificationType für ein Abo kann die folgenden Werte haben:
|
purchaseToken | String | Das Token, das dem Gerät des Nutzers beim Kauf des Abos bereitgestellt wurde. |
Beispiel
Hier sehen Sie ein Beispiel für eine Benachrichtigung über den Kauf eines neuen Abos:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN"
}
}
OneTimeProductNotification
Eine OneTimeProductNotification
enthält die folgenden Felder:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
Eigenschaftsname | Wert | Beschreibung |
Version | String | Die Version dieser Benachrichtigung. Anfangs ist das „1.0“. Diese Version unterscheidet sich von anderen Versionsfeldern. |
notificationType | int | Die Art der Benachrichtigung. Das Attribut kann die folgenden Werte haben:
|
purchaseToken | String | Das Token, das dem Gerät des Nutzers beim Kauf zur Verfügung gestellt wurde. |
sku | String | Die ID des gekauften Einmalkaufprodukts (z. B. „sword_001“) |
Beispiel
Hier ein Beispiel für eine Benachrichtigung über einen neuen Einmalkauf:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
Eine VoidedPurchaseNotification
enthält die folgenden Felder:
Eigenschaftsname |
Wert |
Beschreibung |
|
|
Das mit dem Kauf verknüpfte Token, das für ungültig erklärt wurde. Diese Informationen werden dem Entwickler bei einem neuen Kauf zur Verfügung gestellt. |
|
|
Die eindeutige Bestell-ID, die der stornierten Transaktion zugeordnet ist. Bei einmaligen Käufen ist dies die einzige Bestell-ID, die für den Kauf generiert wird. Bei Abos mit automatischer Verlängerung wird für jede Verlängerungstransaktion eine neue Bestell-ID generiert. |
|
|
Die
|
|
|
Die
Wenn die verbleibende Gesamtmenge eines Kaufs mit mehreren Mengen erstattet wird, ist |
Beispiel
Hier ein Beispiel für eine Benachrichtigung über einen neuen stornierten Kauf:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
VoidedPurchaseNotification verarbeiten
Wenn Ihr RTDN-Client eine VoidedPurchaseNotification
empfängt, beachten Sie die folgenden Informationen:
packageName
: Gibt die App an.eventTimeMillis
: Gibt die Uhrzeit an, zu der die Statusänderung erfolgt ist.purchaseToken
: Das Token, das dem Gerät des Nutzers beim Kauf des Produkts bereitgestellt wurde.orderId
: Gibt die Bestellung an, die mit der stornierten Transaktion verknüpft ist.productType
: Gibt an, ob es sich bei dem stornierten Kauf um einen In-App-Kauf oder ein Abo gehandelt hat.refundType
: Gibt den Typ der Erstattung an, durch die der Kauf storniert wurde.
TestNotification
Eine TestNotification
enthält die folgenden Felder:
{
"version": string
}
Eigenschaftsname | Wert | Beschreibung |
Version | String | Die Version dieser Benachrichtigung. Anfangs ist das „1.0“. Diese Version unterscheidet sich von anderen Versionsfeldern. |
Beispiel
Hier ein Beispiel für eine Testbenachrichtigung:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}