W tym artykule znajdziesz listę powiadomień w czasie rzeczywistym dla deweloperów, które możesz otrzymywać z Google Play, oraz ich opisy.
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 pole DeveloperNotification
zawiera te pola:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
Te pola są opisane w tabeli poniżej.
Nazwa właściwości | Wartość | Opis |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. To pole różni się od innych pól wersji. |
packageName | ciąg znaków | Nazwa pakietu aplikacji, której dotyczy to powiadomienie (np. „com.example.thing”). |
eventTimeMillis | długi | Sygnatura czasowa zdarzenia w milisekundach od początku epoki. |
subscriptionNotification | SubscriptionNotification | Jeśli to pole jest obecne, oznacza, że powiadomienie jest związane z subskrypcją i zawiera dodatkowe informacje o subskrypcji. Pamiętaj, że to pole wyklucza się z polami oneTimeProductNotification, voidedPurchaseNotification i testNotification. |
oneTimeProductNotification | OneTimeProductNotification | Jeśli to pole jest obecne, powiadomienie jest związane z jednorazowym zakupem i zawiera dodatkowe informacje dotyczące tego zakupu. Pamiętaj, że to pole wyklucza się nawzajem z polem subscriptionNotification, voidedPurchaseNotification i testNotification. |
voidedPurchaseNotification | VoidedPurchaseNotification | Jeśli to pole jest obecne, oznacza, że powiadomienie jest związane z unieważnionym zakupem i zawiera dodatkowe informacje na temat tego zakupu. Pamiętaj, że to pole wyklucza się z polem 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 dla deweloperów. Pamiętaj, że to pole wyklucza się z pola oneTimeProductNotification, subscriptionNotification i voidedPurchaseNotification. |
SubscriptionNotification
Plik SubscriptionNotification
zawiera te pola:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
Nazwa właściwości | Wartość | Opis |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. To pole różni się od innych pól wersji. |
notificationType | int | Parametr notificationType dla subskrypcji może mieć te 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
Plik 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”. To pole różni się od innych pól wersji. |
notificationType | int | Typ powiadomienia. Może ona przyjmować te wartości:
|
purchaseToken | ciąg znaków | Token przekazany na urządzenie użytkownika w momencie dokonania 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
Formularz VoidedPurchaseNotification
zawiera te pola:
Nazwa usługi |
Wartość |
Opis |
|
|
Token powiązany z zakupem, który został unieważniony. Te informacje są przekazywane deweloperowi w momencie dokonania nowego zakupu. |
|
|
Unikalny identyfikator zamówienia powiązany z transakcją, która została anulowana. W przypadku zakupów jednorazowych jest to jedyny identyfikator zamówienia wygenerowany dla tego zakupu. W przypadku subskrypcji z automatycznym odnawianiem dla każdej transakcji odnowienia generowany jest nowy identyfikator zamówienia. |
|
|
Wartość
|
|
|
Wartość
Pamiętaj, że gdy zwrócisz pozostałą łączną liczbę sztuk zakupu złożonego z wielu sztuk, |
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
}
}
Wykorzystanie VoidedPurchaseNotification
Gdy klient RTDN otrzyma VoidedPurchaseNotification
, należy wziąć pod uwagę te informacje:
packageName
: identyfikuje aplikację.eventTimeMillis
: informuje dewelopera o czasie zmiany stanu.purchaseToken
: token dostarczony na urządzenie użytkownika w momencie zakupu produktu.orderId
: identyfikuje zamówienie powiązane z anulowaną transakcją.productType
: ta wartość informuje, czy anulowany zakup był zakupem w aplikacji czy subskrypcją.refundType
: określa rodzaj zwrotu środków, który unieważnił zakup.
Jeśli do wprowadzenia zmian uprawnień wystarczy znalezienie odpowiedniego zakupu i zamówienia, masz już wszystkie potrzebne informacje. Aby dowiedzieć się, jak uzyskać dodatkowe informacje o unieważnionym zakupie, skorzystaj z interfejsu Google Play Voided Purchases API, który jest modelem pull zapewniającym dodatkowe dane o unieważnionych zakupach między danym sygnaturą czasową.
W przypadku częściowo unieważnionych zakupów obejmujących wiele sztuk pole refundableQuantity
udostępnione przez purchases.products
zawiera pozostałą liczbę zakupionych produktów, które nie zostały unieważnione.
TestNotification
Formularz TestNotification
zawiera te pola:
{
"version": string
}
Nazwa właściwości | Wartość | Opis |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. To pole 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"
}
}