W tym temacie opisujemy typy powiadomień w czasie rzeczywistym dla deweloperów, które można otrzymywać z Google Play.
Kodowanie
Każda publikacja w temacie Cloud Pub/Sub zawiera 1 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 standardzie base64 pole DeveloperNotification
zawiera te pola:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
Pola te zostały opisane w poniższej tabeli.
Nazwa usługi | Wartość | Description |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. Ta wersja różni się od innych pól wersji. |
nazwa_pakietu | ciąg znaków | Nazwa pakietu aplikacji, której dotyczy to powiadomienie (na przykład „com.jakiś.thing”). |
eventTimeMillis | długi | Sygnatura czasowa (w milisekundach) wystąpienia zdarzenia od początku epoki. |
Powiadomienie o subskrypcji | Powiadomienie o subskrypcji | Jeśli to pole jest obecne, to powiadomienie jest związane z subskrypcją i zawiera dodatkowe informacje o niej. Pamiętaj, że to pole wzajemnie się wyklucza z właściwości oneTimeProductPowiadom, voidedPurchasePowiadomienia i testpowiadomienia. |
jednorazowe powiadomienie o produkcie | Jednorazowe powiadomienie o produkcie | Jeśli to pole występuje, oznacza to, że powiadomienie dotyczy jednorazowego zakupu i zawiera dodatkowe informacje o zakupie. Pamiętaj, że to pole wzajemnie się wyklucza z elementów subscriptionpowiadomienia, voidedPurchase Notification i testPowiadomienia. |
voidedPurchaseNotification | Powiadomienie o unieważnionym zakupie | Jeśli to pole jest obecne, to powiadomienie dotyczy unieważnionego zakupu i zawiera dodatkowe informacje dotyczące unieważnionego zakupu. To pole wyklucza się wzajemnie z polami oneTimeProductPowiadomienia, subscriptionPowiadomiciem i testpowiadomieniami. |
Powiadomienie testowe | Powiadomienie testowe | Jeśli to pole jest obecne, to powiadomienie dotyczy publikacji testowej. Są one przesyłane tylko przez Konsolę Google Play. Pamiętaj, że to pole wzajemnie się wyklucza z właściwości oneTimeProductPowiadomienia, subscriptionPowiadomienia i voidedPurchasePowiadom. |
Powiadomienie o subskrypcji
Pole SubscriptionNotification
zawiera te pola:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"subscriptionId": string
}
Nazwa usługi | Wartość | Description |
Wersja | ciąg znaków | Wersja tego powiadomienia. Początkowo jest to „1.0”. Ta wersja różni się od innych pól wersji. |
Typ powiadomienia | int | Parametr NotificationType subskrypcji może mieć te wartości:
|
Token zakupu | ciąg znaków | Token udostępniony urządzeniu użytkownika podczas kupowania subskrypcji. |
Identyfikator subskrypcji | ciąg znaków | Identyfikator produktu kupionej subskrypcji (np. „monthly001”). |
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"
}
}
Jednorazowe powiadomienie o produkcie
Pole OneTimeProductNotification
zawiera te pola:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
Nazwa usługi | Wartość | Description |
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. |
Typ powiadomienia | int | Typ powiadomienia. Może mieć te wartości:
|
Token zakupu | ciąg znaków | Token przekazany na urządzeniu użytkownika podczas dokonywania zakupu. |
SKU | ciąg znaków | Identyfikator zakupionego jednorazowego produktu (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"
}
}
Powiadomienie o unieważnionym zakupie
Pole VoidedPurchaseNotification
zawiera te pola:
Nazwa usługi |
Wartość |
Description |
|
|
Token powiązany z zakupem, który został unieważniony. Te informacje są przekazywane deweloperowi po dokonaniu nowego zakupu. |
|
|
Unikalny identyfikator zamówienia powiązany z transakcją, która została unieważniona. W przypadku jednorazowych zakupów jest to jedyny identyfikator zamówienia wygenerowany dla danego zakupu. W przypadku automatycznie odnawianych subskrypcji dla każdej transakcji dotyczącej odnowienia generowany jest nowy identyfikator zamówienia. |
|
|
Pole
|
|
|
Pole
Uwaga: gdy zwrócimy Ci pozostałą łączną liczbę za zakup wielu sztuk tego samego produktu, |
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
}
}
Wykorzystanie powiadomienia VoidedPurchase Notification
Gdy klient RTDN otrzyma powiadomienie VoidedPurchaseNotification
, zwróć uwagę na te informacje:
packageName
: identyfikuje aplikację.eventTimeMillis
: informuje dewelopera o czasie zmiany stanu.purchaseToken
: token przekazywany do urządzenia użytkownika podczas zakupu usługi.orderId
: identyfikuje zamówienie powiązane z unieważnioną transakcją.productType
: te dane wskazują, czy unieważniony zakup dotyczył zakupu w aplikacji czy subskrypcji.refundType
: te dane wskazują typ zwrotu środków, który unieważnił zakup.
Jeśli w przypadku korekty upoważnienia musisz tylko znaleźć właściwy zakup i zamówienie, będziesz mieć wszystkie potrzebne informacje. Więcej informacji o unieważnionym zakupie znajdziesz w interfejsie Google Play Voided Purchases API. Jest to model pobierania, który dostarcza dodatkowe dane na temat unieważnionych zakupów w okresie między poszczególnymi sygnaturami czasowymi.
W przypadku częściowo unieważnionych zakupów wielu sztuk pole refundableQuantity
podane przez wartość purchases.products
zawiera pozostałą liczbę kupionych produktów, które nie zostały unieważnione.
Powiadomienie testowe
Pole TestNotification
zawiera te pola:
{
"version": string
}
Nazwa usługi | Wartość | Description |
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"
}
}