Hier werden die Arten von Entwicklerbenachrichtigungen in Echtzeit aufgeführt, die du von Google Play erhalten kannst.
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.
Property-Name | mit tollem Preis-Leistungs-Verhältnis | Beschreibung |
Version | string | Die Version dieser Benachrichtigung. Anfangs ist dies „1.0“. Diese Version unterscheidet sich von anderen Versionsfeldern. |
Paketname | string | Der Paketname der Anwendung, auf die sich diese Benachrichtigung bezieht (z. B. „com.some.thing“). |
eventTimeMillis | lang | Der Zeitstempel des Ereignisses in Millisekunden seit der Epoche. |
Abo-Benachrichtigung | Abobenachrichtigung | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf ein Abo. Dieses Feld enthält zusätzliche Informationen zum Abo. Beachten Sie, dass sich dieses Feld mit oneTimeProductNotifications, voidedPurchase Notification und testNotification gegenseitig ausschließen kann. |
OneTimeProductBenachrichtigung | OneTimeProductBenachrichtigung | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf einen einmaligen Kauf. Dieses Feld enthält zusätzliche Informationen zum Kauf. Beachten Sie, dass sich dieses Feld mit „subscription Notification“, „voidedPurchase Notification“ und „testNotifications“ gegenseitig ausschließen kann. |
voidedPurchaseNotification | VoidedPurchaseNotification | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf einen stornierten Kauf. Dieses Feld enthält zusätzliche Informationen zu dem stornierten Kauf. Beachten Sie, dass sich dieses Feld mit „oneTimeProduct Notification“, „subscriptionNotification“ und „testNotification“ gegenseitig ausschließen kann. |
TestBenachrichtigung | Testbenachrichtigung | Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf eine Testveröffentlichung. Sie werden nur über die Google Play Console gesendet. Beachten Sie, dass sich dieses Feld mit oneTimeProduct Notification, subscriptionNotification und voidedPurchase Notification gegenseitig ausschließen kann. |
Abobenachrichtigung
Ein SubscriptionNotification
enthält die folgenden Felder:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"subscriptionId": string
}
Property-Name | mit tollem Preis-Leistungs-Verhältnis | Beschreibung |
Version | string | Die Version dieser Benachrichtigung. Anfangs ist dies „1.0“. Diese Version unterscheidet sich von anderen Versionsfeldern. |
Benachrichtigungstyp | 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 zur Verfügung gestellt wurde. |
Abo-ID | string | Die Produkt-ID des gekauften Abos (z. B. „monthly001“) |
Beispiel
Hier ein Beispiel für eine Benachrichtigung über einen neuen Abokauf:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN",
"subscriptionId":"monthly001"
}
}
OneTimeProductBenachrichtigung
Ein OneTimeProductNotification
enthält die folgenden Felder:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
Property-Name | mit tollem Preis-Leistungs-Verhältnis | Beschreibung |
Version | string | Die Version dieser Benachrichtigung. Anfangs ist dies „1.0“. Diese Version unterscheidet sich von anderen Versionsfeldern. |
Benachrichtigungstyp | int | Die Art der Benachrichtigung. Er kann folgende Werte haben:
|
purchaseToken | string | Token, das dem Gerät des Nutzers beim Kauf bereitgestellt wurde |
Artikelnummer | string | Die einmalige Produkt-ID des gekauften Produkts (z. B. „schwert_001“) |
Beispiel
Hier ein Beispiel für eine Benachrichtigung über einen neuen einmaligen Kauf:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
Ein VoidedPurchaseNotification
enthält die folgenden Felder:
Property-Name |
mit tollem Preis-Leistungs-Verhältnis |
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 wurde. 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 variabler Stückzahl erstattet wird, hat |
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
}
}
VoidedPurchase Notification nutzen
Wenn dein RTDN-Client eine VoidedPurchaseNotification
erhält, beachte die folgenden Informationen:
packageName
: Damit wird die App identifiziert.eventTimeMillis
: Damit wird der Entwickler über den Zeitpunkt der Statusänderung informiert.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 der stornierte Kauf ein In-App-Kauf oder ein Abo war.refundType
: Hier erfahren Sie, durch welche Art der Erstattung der Kauf annulliert wurde.
Wenn du für die Berechtigungsanpassungen lediglich die richtige Bestellung und Bestellung finden musst, hast du alle erforderlichen Informationen. Weitere Informationen zu ungültigen Käufen findest du in der Google Play Voided Purchases API. Dabei handelt es sich um ein Pull-Modell, das zusätzliche Daten für stornierte Käufe zwischen einem bestimmten Zeitstempel liefert.
Bei teilweise stornierten Käufen mit variabler Stückzahl enthält das von purchases.products
bereitgestellte Feld refundableQuantity
die verbleibende Anzahl gekaufter Produkte, die nicht storniert wurden.
Testbenachrichtigung
Ein TestNotification
enthält die folgenden Felder:
{
"version": string
}
Property-Name | mit tollem Preis-Leistungs-Verhältnis | Beschreibung |
Version | string | Die Version dieser Benachrichtigung. Anfangs ist dies „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"
}
}