במסמך הזה מפורטים סוגי ההתראות למפתחים בזמן אמת שאפשר לקבל מ-Google Play, ומוסבר מה כל אחת מהן אומרת.
קידוד
כל פרסום שמתבצע בנושא Cloud Pub/Sub מכיל שדה נתונים יחיד שמקודד ב-base64.
{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}
אחרי שמפענחים את שדה הנתונים בקידוד base64, השדה DeveloperNotification
כולל את השדות הבאים:
{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}
השדות האלה מתוארים בטבלה הבאה.
| שם הנכס | הערך | תיאור | 
| גרסה | מחרוזת | גרסת ההתראה. הערך הראשוני הוא '1.0'. הגרסה הזו שונה משדות גרסה אחרים. | 
| packageName | מחרוזת | שם החבילה של האפליקציה שאליה ההתראה הזו מתייחסת (לדוגמה, com.some.thing). | 
| eventTimeMillis | ארוך | חותמת הזמן שבה האירוע התרחש, באלפיות השנייה מאז תחילת התקופה של זמן מערכת. | 
| subscriptionNotification | SubscriptionNotification | אם השדה הזה מופיע, המשמעות היא שההתראה הזו קשורה למינוי, והשדה מכיל מידע נוסף שקשור למינוי. שימו לב: השדה הזה לא יכול להיות משולב עם השדות oneTimeProductNotification, voidedPurchaseNotification ו-testNotification. | 
| oneTimeProductNotification | OneTimeProductNotification | אם השדה הזה מופיע, המשמעות היא שההתראה הזו קשורה לרכישה חד-פעמית, והשדה מכיל מידע נוסף שקשור לרכישה. שימו לב: השדה הזה לא יכול להיות בשימוש עם השדות subscriptionNotification, voidedPurchaseNotification ו-testNotification. | 
| voidedPurchaseNotification | VoidedPurchaseNotification | אם השדה הזה קיים, המשמעות היא שההתראה הזו קשורה לרכישה שבוטלה, והשדה מכיל מידע נוסף שקשור לרכישה שבוטלה. שימו לב: השדה הזה לא יכול להיות משולב עם השדות oneTimeProductNotification, subscriptionNotification ו-testNotification. | 
| testNotification | TestNotification | אם השדה הזה קיים, ההתראה הזו קשורה לפרסום של בדיקה. ההודעות האלה נשלחות רק דרך Google Play Console. הערה: השדה הזה לא יכול להיות בשימוש עם השדות oneTimeProductNotification, subscriptionNotification ו-voidedPurchaseNotification. | 
SubscriptionNotification
אובייקט SubscriptionNotification מכיל את השדות הבאים:
{
  "version": string,
  "notificationType": int,
  "purchaseToken": string
}
| שם הנכס | הערך | תיאור | 
| גרסה | מחרוזת | גרסת ההתראה. הערך הראשוני הוא '1.0'. הגרסה הזו שונה משדות גרסה אחרים. | 
| notificationType | INT | הערך של notificationType למינוי יכול להיות אחד מהערכים הבאים: 
 | 
| purchaseToken | מחרוזת | האסימון שסופק למכשיר של המשתמש כשנרכש המינוי. | 
דוגמה
דוגמה להודעה על רכישת מינוי חדש:
{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN"
  }
}
OneTimeProductNotification
אובייקט OneTimeProductNotification מכיל את השדות הבאים:
{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
| שם הנכס | הערך | תיאור | 
| גרסה | מחרוזת | גרסת ההתראה. הערך הראשוני יהיה '1.0'. הגרסה הזו שונה משדות גרסה אחרים. | 
| notificationType | INT | סוג ההתראה. הערכים האפשריים: 
 | 
| purchaseToken | מחרוזת | האסימון שסופק למכשיר של המשתמש בזמן הרכישה. | 
| sku | מחרוזת | מזהה המוצר בחיוב חד-פעמי שנרכש (לדוגמה, sword_001) | 
דוגמה
דוגמה להודעה על רכישה חדשה חד-פעמית:
{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}
VoidedPurchaseNotification
אובייקט VoidedPurchaseNotification מכיל את השדות הבאים:
| שם הנכס | הערך | תיאור | 
| 
 | 
 | הטוקן שמשויך לרכישה שבוטלה. המידע הזה מועבר למפתח כשמתבצעת רכישה חדשה. | 
| 
 | 
 | מזהה ההזמנה הייחודי שמשויך לעסקה שבוטלה. ברכישות חד-פעמיות, זהו מזהה ההזמנה היחיד שנוצר עבור הרכישה. במינויים עם חידוש אוטומטי, נוצר מזהה הזמנה חדש לכל עסקה של חידוש. | 
| 
 | 
 | הערך של  
 | 
| 
 | 
 | הערך של  
 הערה: אם תקבלו החזר כספי על כל הכמות שנותרה ברכישה בכמות גדולה, הערך של  | 
דוגמה
דוגמה להתראה על רכישה חדשה שבוטלה:
{
  "version":"1.0",
  "packageName":"com.some.app",
  "eventTimeMillis":"1503349566168",
  "voidedPurchaseNotification":
  {
    "purchaseToken":"PURCHASE_TOKEN",
    "orderId":"GS.0000-0000-0000",
    "productType":1
    "refundType":1
  }
}
Consuming VoidedPurchaseNotification
כשלקוח RTDN מקבל VoidedPurchaseNotification, חשוב לשים לב למידע הבא:
- packageName: מזהה את האפליקציה.
- eventTimeMillis: מציין את השעה שבה חל שינוי בסטטוס.
- purchaseToken: האסימון שסופק למכשיר של המשתמש כשהמוצר נרכש.
- orderId: מזהה את ההזמנה שמשויכת לביטול העסקה.
- productType: מציין אם הרכישה שבוטלה הייתה רכישה מתוך האפליקציה או מינוי.
- refundType: מציין את סוג ההחזר שביטל את הרכישה.
TestNotification
אובייקט TestNotification מכיל את השדות הבאים:
{
  "version": string
}
| שם הנכס | הערך | תיאור | 
| גרסה | מחרוזת | גרסת ההתראה. הערך הראשוני הוא '1.0'. הגרסה הזו שונה משדות גרסה אחרים. | 
דוגמה
דוגמה להודעת בדיקה:
{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}
