Referenzleitfaden für Entwicklerbenachrichtigungen in Echtzeit

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:
  • (1) SUBSCRIPTION_RECOVERED: Ein Abo wurde nach einer Kontosperre reaktiviert.
  • (2) SUBSCRIPTION_RENEWED: Ein aktives Abo wurde verlängert.
  • (3) SUBSCRIPTION_CANCELED: Ein Abo wurde entweder absichtlich oder unabsichtlich gekündigt. Bei freiwilliger Kündigung wird die Benachrichtigung gesendet, wenn der Nutzer kündigt.
  • (4) SUBSCRIPTION_PURCHASED: Ein neues Abo wurde gekauft.
  • (5) SUBSCRIPTION_ON_HOLD: Ein Abo wurde in den Kontosperrmodus versetzt (falls aktiviert).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD: Ein Abo ist in die Kulanzfrist eingetreten (falls aktiviert).
  • (7) SUBSCRIPTION_RESTARTED: Der Nutzer hat sein Abo unter Play > Konto > Abos wiederhergestellt. Das Abo wurde gekündigt, war aber noch nicht abgelaufen, als der Nutzer es wiederhergestellt hat. Weitere Informationen finden Sie unter Wiederherstellungen.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (DEPRECATED): Eine Preisänderung für ein Abo wurde vom Nutzer bestätigt.
  • (9) SUBSCRIPTION_DEFERRED: Die Wiederholungszeit eines Abos wurde verlängert.
  • (10) SUBSCRIPTION_PAUSED – Ein Abo wurde pausiert.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED – Ein Pausierungszeitplan für ein Abo wurde geändert.
  • (12) SUBSCRIPTION_REVOKED: Ein Abo wurde dem Nutzer vor dem Ablaufdatum entzogen.
  • (13) SUBSCRIPTION_EXPIRED: Ein Abo ist abgelaufen.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED – Eine ausstehende Transaktion für ein Abo wurde storniert.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED – Die Preisänderungsdetails eines Aboartikels wurden aktualisiert.
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:
  • (1) ONE_TIME_PRODUCT_PURCHASED: Ein Einmalkaufprodukt wurde von einem Nutzer gekauft.
  • (2) ONE_TIME_PRODUCT_CANCELED: Ein ausstehender Kauf eines einmaligen Produkts wurde vom Nutzer storniert.
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

purchaseToken

string

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.

orderId

string

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.

productType

int

Die productType für einen stornierten Kauf kann die folgenden Werte haben:

  • (1) PRODUCT_TYPE_SUBSCRIPTION – Ein Abo wurde storniert.
  • (2) PRODUCT_TYPE_ONE_TIME – Ein einmaliger Kauf wurde storniert.

refundType

int

Die refundType für einen stornierten Kauf kann die folgenden Werte haben:

  • (1) REFUND_TYPE_FULL_REFUND: Der Kauf wurde vollständig storniert.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND: Der Kauf wurde teilweise storniert. Dies geschah durch eine mengenbasierte Teilerstattung, die nur bei Käufen in variabler Stückzahl möglich ist. Ein Kauf kann mehrmals teilweise storniert werden.

Wenn die verbleibende Gesamtmenge eines Kaufs mit mehreren Mengen erstattet wird, ist refundType REFUND_TYPE_FULL_REFUND.

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