W tym dokumencie znajdziesz listę i opis rodzajów powiadomień w czasie rzeczywistym dla deweloperów, które możesz otrzymywać z Google Play.
Kodowanie
Każda publikacja w temacie Cloud Pub/Sub zawiera jedno pole danych zakodowane w formacie base64.
{
"message": {
"attributes": {
"key": "value"
},
"data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Po zdekodowaniu pola danych zakodowanego w formacie Base64 element DeveloperNotification
zawiera te pola:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
Pola są opisane w tej tabeli.
Nazwa usługi | Wartość | Opis |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. Ta wersja różni się od innych pól wersji. |
packageName | ciąg znaków | Nazwa pakietu aplikacji, której dotyczy to powiadomienie (np. `com.some.thing`). |
eventTimeMillis | długi | Sygnatura czasowa zdarzenia w milisekundach od początku epoki. |
subscriptionNotification | SubscriptionNotification | Jeśli to pole jest obecne, powiadomienie jest powiązane z subskrypcją, a to pole zawiera dodatkowe informacje dotyczące subskrypcji. Pamiętaj, że to pole wyklucza się wzajemnie z polami oneTimeProductNotification, voidedPurchaseNotification i testNotification. |
oneTimeProductNotification | OneTimeProductNotification | Jeśli to pole jest obecne, powiadomienie dotyczy zakupu jednorazowego, a to pole zawiera dodatkowe informacje o zakupie. Pamiętaj, że to pole wyklucza się wzajemnie z polami subscriptionNotification, voidedPurchaseNotification i testNotification. |
voidedPurchaseNotification | VoidedPurchaseNotification | Jeśli to pole jest obecne, powiadomienie dotyczy anulowanego zakupu, a to pole zawiera dodatkowe informacje związane z anulowanym zakupem. Pamiętaj, że to pole wyklucza się wzajemnie z polami oneTimeProductNotification, subscriptionNotification i testNotification. |
testNotification | TestNotification | Jeśli to pole jest obecne, powiadomienie jest związane z publikacją testową. Są one wysyłane tylko za pomocą Konsoli Play. Pamiętaj, że to pole wyklucza się z polami oneTimeProductNotification, subscriptionNotification i voidedPurchaseNotification. |
SubscriptionNotification
SubscriptionNotification
zawiera te pola:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
Nazwa usługi | Wartość | Opis |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. Ta wersja różni się od innych pól wersji. |
notificationType | int | Wartość notificationType w przypadku subskrypcji może być jedną z tych wartości:
|
purchaseToken | ciąg znaków | Token przekazany na urządzenie użytkownika w momencie zakupu subskrypcji. |
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"
}
}
OneTimeProductNotification
OneTimeProductNotification
zawiera te pola:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
Nazwa usługi | Wartość | Opis |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo będzie to „1.0”. Ta wersja różni się od innych pól wersji. |
notificationType | int | Typ powiadomienia. Może przyjmować te wartości:
|
purchaseToken | ciąg znaków | Token przekazany na urządzenie użytkownika w momencie zakupu. |
sku | ciąg znaków | Identyfikator zakupionego produktu kupowanego raz (np. „sword_001”). |
Przykład
Oto przykład powiadomienia o nowym zakupie jednorazowym:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
VoidedPurchaseNotification
zawiera te pola:
Nazwa usługi |
Wartość |
Opis |
|
|
Token powiązany z zakupem, który został anulowany. Te informacje są przekazywane deweloperowi, gdy nastąpi nowy zakup. |
|
|
Unikalny identyfikator zamówienia powiązany z transakcją, która została anulowana. W przypadku jednorazowych zakupów jest to jedyny identyfikator zamówienia wygenerowany dla danego zakupu. W przypadku subskrypcji z automatycznym odnawianiem dla każdej transakcji odnowienia generowany jest nowy identyfikator zamówienia. |
|
|
|
|
|
Gdy zwracana jest pozostała łączna liczba produktów w zakupie obejmującym wiele produktów, wartość |
Przykład
Oto przykład powiadomienia o nowym anulowanym zakupie:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
Wykorzystywanie powiadomienia o anulowaniu zakupu
Gdy klient RTDN otrzyma VoidedPurchaseNotification
, zanotuj te informacje:
packageName
: identyfikuje aplikację.eventTimeMillis
: informuje o godzinie, o której nastąpiła zmiana stanu.purchaseToken
: token dostarczony na urządzenie użytkownika w momencie zakupu produktu.orderId
: identyfikuje zamówienie powiązane z anulowaną transakcją.productType
: wskazuje, czy anulowany zakup był zakupem w aplikacji czy subskrypcją.refundType
: określa typ zwrotu środków, który spowodował anulowanie zakupu.
TestNotification
TestNotification
zawiera te pola:
{
"version": string
}
Nazwa usługi | Wartość | Opis |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. Ta wersja 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"
}
}