Przewodnik po powiadomieniach w czasie rzeczywistym dla deweloperów

W tym temacie wymieniono i opisano typy Powiadomienia w czasie rzeczywistym dla deweloperów które możesz otrzymywać z Google Play.

Kodowanie

Każda publikacja w temacie Cloud Pub/Sub zawiera jeden polu danych zakodowanego w base64.

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

Po zdekodowaniu pola danych zakodowanego w formacie base64 interfejs DeveloperNotification zawiera następujące pola:

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}

Opis tych pól znajdziesz w tabeli poniżej.

Nazwa usługi Wartość Opis
Wersja tekst Wersja tego powiadomienia. Początkowo jest to „1.0”. Ten jest inna niż pozostałe pola wersji.
nazwapakietu tekst Nazwa pakietu aplikacji, której dotyczy to powiadomienie do (na przykład „com.some.thing”).
czas_zdarzenia w milisekundach długi Sygnatura czasowa momentu wystąpienia zdarzenia (w milisekundach od momentu wystąpienia zdarzenia) epoki.
Powiadomienie o subskrypcji Powiadomienie o subskrypcji Jeśli to pole jest obecne, to powiadomienie jest związane z subskrypcji, a to pole zawiera dodatkowe informacje do subskrypcji. Pamiętaj, że to pole wyklucza się wzajemnie z: oneTimeProduct Notification, voidedPurchase Notification, testPowiadomienie.
oneTimeProductPowiadomienie Powiadomienie OneTimeProduct Jeśli to pole jest obecne, to powiadomienie jest związane z do jednorazowego zakupu, a to pole zawiera dodatkowe informacje związane z zakupem. Pamiętaj, że to pole wzajemnie się wyklucza za pomocą powiadomienia o subskrypcjach, voidedPurchase Notification, oraz testnotification.
Powiadomienie o unieważnieniu zakupu Unieważnione powiadomienie o zakupie Jeśli to pole jest obecne, to powiadomienie jest związane z unieważniony zakup. To pole zawiera dodatkowe informacje na temat na unieważniony zakup. Pamiętaj, że to pole wzajemnie się wyklucza za pomocą funkcji oneTimeProductnotification, subscriptionnotification oraz testPowiadomienie.
powiadomienie testowe Powiadomienie testowe Jeśli to pole jest obecne, to powiadomienie jest związane z publikowania testowego. Są one wysyłane tylko przez dewelopera w Google Play Konsola. Pamiętaj, że to pole wyklucza się wzajemnie z: oneTimeProductPowiadom, powiadomienia o subskrypcji i voidedPurchasePowiadomienie.

Powiadomienie o subskrypcji

SubscriptionNotification zawiera te pola:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
Nazwa usługi Wartość Opis
Wersja tekst Wersja tego powiadomienia. Początkowo jest to „1.0”. Ten różni się od innych pól wersji.
Typ powiadomienia int Typ powiadomienia o subskrypcji może mieć następujące wartości:
  • (1) SUBSCRIPTION_RECOVERED – subskrypcja została odzyskana ze strony zawieszenia konta.
  • (2) SUBSCRIPTION_RENEWED – aktywna subskrypcja została odnowiona.
  • (3) SUBSCRIPTION_CANCELED – subskrypcja została dodana dobrowolnie lub dobrowolnie anulowano. Do dobrowolnego anulowania, wysyłane, gdy: anuluje użytkownik.
  • (4) SUBSCRIPTION_PURCHASED – zakupiono nową subskrypcję.
  • (5) SUBSCRIPTION_ON_HOLD – Subskrypcja została dodana do konta wstrzymanie (jeśli jest włączone).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD – Rozpoczęła się subskrypcja okres prolongaty (jeśli jest włączony).
  • (7) SUBSCRIPTION_RESTARTED – Użytkownik przywrócił swoje subskrypcja w Google Play > Konto > Subskrypcje. subskrypcja została anulowana, ale nie wygasła, gdy użytkownik przywraca. Więcej informacji: Przywracanie.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED – cena subskrypcji zmiana została potwierdzona przez użytkownika.
  • (9) SUBSCRIPTION_DEFERRED – czas powtarzania subskrypcji został przedłużony.
  • (10) SUBSCRIPTION_PAUSED – subskrypcja została wstrzymana.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED – Wstrzymanie subskrypcji harmonogram został zmieniony.
  • (12) SUBSCRIPTION_REVOKED – Subskrypcja została anulowana użytkownika przed upływem terminu ważności.
  • (13) SUBSCRIPTION_Wygasła – subskrypcja wygasła.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED – oczekująca transakcja 1 subskrypcja została anulowana.
purchaseToken tekst Token przekazany do urządzenia użytkownika w momencie, gdy subskrypcja była zakupu.
identyfikator subskrypcji tekst identyfikator produktu zakupionej subskrypcji (np. „month001”).

Przykład

Oto przykład powiadomienia o zakupie nowej subskrypcji:

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

Powiadomienie OneTimeProduct

OneTimeProductNotification zawiera te pola:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Nazwa usługi Wartość Opis
Wersja tekst Wersja tego powiadomienia. Początkowo będzie to „1.0”. Ten różni się od innych pól wersji.
Typ powiadomienia int Typ powiadomienia. Może mieć następujące wartości:
  • (1) ONE_TIME_PRODUCT_PURCHASED – produkt został kupiony jednorazowo zakupiona przez użytkownika.
  • (2) ONE_TIME_PRODUCT_CANCELED – oczekujący produkt jednorazowy Zakup został anulowany przez użytkownika.
purchaseToken tekst Token przekazany do urządzenia użytkownika podczas dokonywania zakupu.
SKU tekst Identyfikator zakupionego produktu kupowanego raz (np. „sword_001”)

Przykład

Oto przykład powiadomienia o nowym jednorazowym zakupie:

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

Unieważnione powiadomienie o zakupie

VoidedPurchaseNotification zawiera te pola:

Nazwa usługi

Wartość

Opis

purchaseToken

string

Token powiązany z zakupem, który został unieważniony. Ten informacje są przekazywane deweloperowi po dokonaniu nowego zakupu ma miejsce.

orderId

string

Unikalny identyfikator zamówienia powiązany z transakcją, która ma unieważnione. W przypadku zakupów jednorazowych jest to jedyny identyfikator zamówienia. wygenerowanych na potrzeby zakupu. W przypadku automatycznie odnawianych subskrypcji zobaczysz nowy identyfikator zamówienia jest generowany dla każdej transakcji odnowienia.

productType

int

Wartość productType w przypadku unieważnionego zakupu może mieć następujące wartości:

  • (1) PRODUCT_TYPE_SUBSCRIPTION – subskrypcja zakup został unieważniony.
  • (2) PRODUCT_TYPE_ONE_TIME – jednorazowy zakup została unieważniona.

refundType

int

Wartość refundType w przypadku unieważnionego zakupu może mieć następujące wartości:

  • (1) REFUND_TYPE_FULL_REFUND – zakup został całkowicie unieważniony.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND – zakup został częściowo unieważniony przez częściowy zwrot środków za określoną liczbę produktów, Dotyczy tylko zakupu większej liczby sztuk tego samego produktu. Zakupem może być częściowo unieważnione wielokrotnie.

Pamiętaj, że pozostała łączna liczba sztuk w przypadku zakupu kilku sztuk tego samego produktu wynosi zostanie zwrócona kwota refundType REFUND_TYPE_FULL_REFUND

Przykład

Oto przykład powiadomienia o nowym unieważnionym zakupie:

{
  "version":"1.0",
  "packageName":"com.some.app",
  "eventTimeMillis":"1503349566168",
  "voidedPurchaseNotification":
  {
    "purchaseToken":"PURCHASE_TOKEN",
    "orderId":"GS.0000-0000-0000",
    "productType":1
    "refundType":1
  }
}

Korzystanie z powiadomienia VoidedPurchase Notification

Gdy klient RTDN otrzyma VoidedPurchaseNotification, zwróć uwagę na następujące informacje:

  • packageName: identyfikuje aplikację.
  • eventTimeMillis: informuje dewelopera o czasie zmiany – .
  • purchaseToken: token przekazany do urządzenia użytkownika, gdy produkt została kupiona.
  • orderId – wskazuje zamówienie powiązane z unieważnionym transakcji.
  • productType: informuje, czy unieważniony zakup dotyczył aplikacji. zakupu lub subskrypcji.
  • refundType: wskazuje typ zwrotu środków, który unieważnił zakup.

Jeśli aby skorygować uprawnienia, musisz tylko znaleźć odpowiedni zakup i zamówienia, to wszystko, co musisz wiedzieć na ten temat. Aby się uczyć jak uzyskać dodatkowe informacje o unieważnionym zakupie, zapoznaj się z interfejs Google Play Voided Purchases API, to model pull, który dostarcza dodatkowe dane o unieważnionych zakupach między daną sygnaturą czasową.

W przypadku częściowych unieważnionych zakupów w wielu egzemplarzach pole refundableQuantity dostarczone przez purchases.products zawiera pozostałe liczbę kupionych produktów, które nie zostały unieważnione.

Powiadomienie testowe

TestNotification zawiera te pola:

{
  "version": string
}
Nazwa usługi Wartość Opis
Wersja tekst Wersja tego powiadomienia. Początkowo jest to „1.0”. Ten różni się od innych pól wersji.

Przykład

Oto przykład powiadomienia testowego:

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