Referenzleitfaden für Entwicklerbenachrichtigungen in Echtzeit

In diesem Thema werden die Arten von Entwicklerbenachrichtigungen in Echtzeit die Sie von Google Play erhalten können.

Codierung

Jede Veröffentlichung in einem Cloud Pub/Sub-Thema enthält base64-codiertes Datenfeld.

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

Nachdem Sie das base64-codierte Datenfeld decodiert haben, wird der DeveloperNotification enthält 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 Wert Beschreibung
Version string Die Version dieser Benachrichtigung. Anfangs ist dies „1.0“. Dieses „version“ unterscheidet sich von anderen Versionsfeldern.
Paketname string Der Paketname der Anwendung, auf die sich diese Benachrichtigung bezieht an (z. B. „com.some.thing“).
EventTimeMillis long Der Zeitstempel des Ereignisses, in Millisekunden seit der Epoche.
Abobenachrichtigung Abobenachrichtigung Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf Abonnement. Dieses Feld enthält zusätzliche Informationen zum für das Abo. Beachten Sie, dass sich dieses Feld mit oneTimeProductNotification, voidedPurchaseNotification und testNotification angeben.
oneTimeProductNotification Einmalige Produktbenachrichtigung Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf einmaligen Kauf. Dieses Feld enthält zusätzliche Informationen, die mit dem Kauf in Verbindung stehen. Beachten Sie, dass sich dieses Feld gegenseitig ausschließen kann. mit „subscriptionNotification“, „voidedPurchaseNotification“, und testNotification.
voidedPurchaseNotification Ungültige Kaufbenachrichtigung Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf Kauf storniert. Dieses Feld enthält zusätzliche Informationen zum auf den ungültigen Kauf hinzu. Beachten Sie, dass sich dieses Feld gegenseitig ausschließen kann. mit oneTimeProductNotification, subscriptionNotification und testNotification angeben.
testNotification (Testbenachrichtigung) Testbenachrichtigung Wenn dieses Feld vorhanden ist, bezieht sich diese Benachrichtigung auf Testveröffentlichung. Sie werden nur über den Google Play Developer Konsole. Beachten Sie, dass sich dieses Feld mit oneTimeProductNotification, subscriptionNotification und voidedPurchaseNotification.

Abobenachrichtigung

Ein SubscriptionNotification enthält die folgenden Felder:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
Property-Name Wert Beschreibung
Version string Die Version dieser Benachrichtigung. Anfangs ist dies „1.0“. Dieses „version“ unterscheidet sich von anderen Versionsfeldern.
Benachrichtigungstyp int Der messageType für ein Abo kann die folgenden Werte haben: <ph type="x-smartling-placeholder">
    </ph>
  • (1) SUBSCRIPTION_RECOVERED – Ein Abo wurde wiederhergestellt aus Kontosperre.
  • (2) SUBSCRIPTION_RENEWED – Ein aktives Abonnement wurde verlängert.
  • (3) SUBSCRIPTION_CANCELED – Ein Abonnement war entweder freiwillig oder unfreiwillig gekündigt werden. Bei freiwilliger Kündigung, gesendet am bricht der Nutzer ab.
  • (4) SUBSCRIPTION_PURCHASED – Ein neues Abo wurde gekauft.
  • (5) SUBSCRIPTION_ON_HOLD - Ein Abonnement hat das Konto eingegeben. halten (falls aktiviert).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD – Ein Abonnement ist eingegangen. Kulanzzeitraum (falls aktiviert).
  • (7) SUBSCRIPTION_RESTARTED – Der Nutzer hat sein bei Google Play > Konto > Abos. Die Abo gekündigt wurde, aber noch nicht abgelaufen war, als der Nutzer wiederhergestellt werden. Weitere Informationen finden Sie unter Wiederherstellungen.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - ein Abonnementpreis Änderung wurde vom Nutzer bestätigt.
  • (9) SUBSCRIPTION_DEFERRED - Die Wiederholungszeit eines Abonnements wurde wurde verlängert.
  • (10) SUBSCRIPTION_PAused - Ein Abo wurde pausiert.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - Pausierung des Abonnements Zeitplan wurde geändert.
  • (12) SUBSCRIPTION_REVOKED - Ein Abonnement wurde widerrufen von vor der Ablaufzeit gesendet werden.
  • (13) SUBSCRIPTION_EXPIRED - Ein Abonnement ist abgelaufen.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED – eine ausstehende Transaktion eines Abonnements wurde gekündigt.
Kauftoken string Das Token, das dem Nutzergerät beim Abschluss des Abos bereitgestellt wurde gekauft.
Abo-ID string Die Produkt-ID des gekauften Abos, z. B. „monthly001“).

Beispiel

Hier ist ein Beispiel für eine Benachrichtigung zum Kauf eines neuen Abos:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

Einmalige Produktbenachrichtigung

Ein OneTimeProductNotification enthält die folgenden Felder:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Property-Name Wert Beschreibung
Version string Die Version dieser Benachrichtigung. Anfangs ist dies „1.0“. Dieses „version“ unterscheidet sich von anderen Versionsfeldern.
Benachrichtigungstyp int Die Art der Benachrichtigung. Folgende Werte sind möglich: <ph type="x-smartling-placeholder">
    </ph>
  • (1) ONE_TIME_PRODUCT_PURCHASED – Ein Einmalkaufprodukt wurde von einem Nutzer gekauft haben.
  • (2) ONE_TIME_PRODUCT_CANCELED - ein ausstehendes Einmalkaufprodukt Kauf wurde vom Nutzer storniert.
Kauftoken string Das Token, das dem Nutzer beim Kauf bereitgestellt wurde.
Artikelnummer string Die ID des einmalig gekauften Produkts, z. B. „sword_001“

Beispiel

Hier ein Beispiel für eine Benachrichtigung zu einem neuen einmaligen Kauf:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

Ungültige Kaufbenachrichtigung

Ein VoidedPurchaseNotification enthält die folgenden Felder:

Property-Name

Wert

Beschreibung

purchaseToken

string

Das Token, das mit dem Kauf verknüpft ist, der ungültig wurde. Dieses Informationen, die dem Entwickler bei einem neuen Kauf zur Verfügung gestellt werden, erfolgt.

orderId

string

Die eindeutige Bestell-ID, die der Transaktion zugeordnet ist, für die für ungültig erklärt wurde. Bei einmaligen Käufen ist dies die einzige Bestell-ID. die für den Kauf generiert wurden. Bei sich automatisch verlängernden Abos Auftrags-ID für jede Verlängerungstransaktion generiert wird.

productType

int

productType für einen ungültigen Kauf kann folgende Werte haben:

  • (1) PRODUCT_TYPE_SUBSCRIPTION – Ein Abo der Kauf wurde für ungültig erklärt.
  • (2) PRODUCT_TYPE_ONE_TIME: ein einmaliger Kauf wurde für ungültig erklärt.

refundType

int

refundType für einen ungültigen Kauf kann folgende Werte haben:

  • (1) REFUND_TYPE_FULL_REFUND: Der Kauf wurde vollständig ungültig gemacht.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND: Der durch eine mengenbasierte teilweise Rückerstattung teilweise ungültig geworden ist, gilt nur für Käufe mit variabler Stückzahl. Ein Kauf kann mehrfach für teilweise ungültig erklärt wurde.

Beachten Sie, dass die verbleibende Gesamtmenge eines Kaufs mit variabler Stückzahl erstattet, werden refundType REFUND_TYPE_FULL_REFUND.

Beispiel

Hier ein Beispiel für eine Benachrichtigung über einen neuen ungültigen 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 dein RTDN-Client eine VoidedPurchaseNotification erhält, beachte das folgende Informationen:

  • packageName: Hiermit wird die App identifiziert.
  • eventTimeMillis: Hiermit wird der Entwickler über die Zeit informiert, zu der die Änderung Status aufgetreten ist.
  • purchaseToken: Das Token, das auf dem Gerät des Nutzers bereitgestellt wird, wenn das Produkt wurde gekauft.
  • orderId: Gibt die Bestellung an, die mit der ungültigen Aktion verknüpft ist. Transaktion.
  • productType: Gibt an, ob der ungültige Kauf ein In-App-Kauf war oder ein Abo abzuschließen.
  • refundType: Gibt die Art der Erstattung an, durch die der Kauf ungültig gemacht wurde.

Wenn du für eine Berechtigungsanpassung nur den richtigen Kauf finden musst haben Sie alle Informationen, die Sie brauchen. Weitere Informationen Weitere Informationen zum ungültigen Kauf findest du in der Google Play Voided Purchases API Dabei handelt es sich um ein Pull-Modell, das zusätzliche Daten zu ungültigen Käufen liefert. zwischen einem bestimmten Zeitstempel.

Bei teilweise ungültigen Käufen mit variabler Stückzahl wird das Feld refundableQuantity angegeben. bereitgestellt von purchases.products enthält die verbleibenden Anzahl der gekauften Produkte, die nicht ungültig gemacht wurden.

Testbenachrichtigung

Ein TestNotification enthält die folgenden Felder:

{
  "version": string
}
Property-Name Wert Beschreibung
Version string Die Version dieser Benachrichtigung. Anfangs ist dies „1.0“. Dieses „version“ unterscheidet sich von anderen Versionsfeldern.

Beispiel

Hier ist ein Beispiel für eine Testbenachrichtigung:

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