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:
|
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:
|
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 |
|
|
Token powiązany z zakupem, który został unieważniony. Ten informacje są przekazywane deweloperowi po dokonaniu nowego zakupu ma miejsce. |
|
|
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. |
|
|
Wartość
|
|
|
Wartość
Pamiętaj, że pozostała łączna liczba sztuk w przypadku zakupu kilku sztuk tego samego produktu wynosi
zostanie zwrócona kwota |
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"
}
}