נושא זה מפרט ומתאר את הסוגים של התראות בזמן אמת למפתחים שאפשר לקבל מ-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
}
השדות האלה מתוארים בטבלה הבאה.
שם הנכס | הערך | תיאור |
גרסה | String (מחרוזת) | מספר הגרסה של ההודעה הזו. בהתחלה, הערך הוא '1.0'. הזה של הגרסה שונה משדות גרסה אחרים. |
שם החבילה | String (מחרוזת) | שם החבילה של האפליקציה שההתראה הזו מתייחסת אליה ל- (לדוגמה, 'com.some.thing'). |
eventTimeMillis | ארוך | חותמת הזמן שבה האירוע התרחש, באלפיות השנייה מאז את התקופה. |
הודעה לגבי מינוי | התראה על מינוי | אם שדה זה קיים, ההתראה הזו קשורה המינוי, ושדה זה מכיל מידע נוסף הקשור למינוי. שימו לב שהשדה הזה בלעדי עם oneTimeProductNotification, canceledPurchaseNotification וכן התראה לבדיקה. |
OneTimeProduct Notification | התראה של OneTimeProduct | אם שדה זה קיים, ההתראה הזו קשורה לרכישה חד פעמית, והשדה הזה מכיל מידע נוסף שקשורים לרכישה. חשוב לשים לב שהשדה הזה בלעדי עם subscriptionNotification, canceledPurchaseNotification, ו-testNotification. |
הודעה על ביטול רכישה | הודעת VoidedPurchase | אם שדה זה קיים, ההתראה הזו קשורה הרכישה מבוטלת, והשדה הזה מכיל מידע נוסף שקשור לרכישה שבוטלה. חשוב לשים לב שהשדה הזה בלעדי עם oneTimeProductNotification, subscriptionNotification ו התראה לבדיקה. |
התראת בדיקה | התראת בדיקה | אם שדה זה קיים, ההתראה הזו קשורה פרסום בדיקה. הם נשלחים רק דרך Google Play Developer מסוף. שימו לב שהשדה הזה בלעדי עם oneTimeProductNotification, subscriptionNotification, CanceledPurchaseNotification. |
התראה על מינוי
השדה SubscriptionNotification
מכיל את השדות הבאים:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"subscriptionId": string
}
שם הנכס | הערך | תיאור |
גרסה | String (מחרוזת) | מספר הגרסה של ההודעה הזו. בהתחלה, הערך הוא '1.0'. הזה של הגרסה שונה משדות גרסה אחרים. |
סוג התראה | INT | messageType עבור מינוי יכול לכלול את הערכים הבאים:
|
purchaseToken | String (מחרוזת) | האסימון שסופק למכשיר של המשתמש כשהמינוי היה נרכשו. |
מזהה מינוי | String (מחרוזת) | מזהה המוצר של המינוי שנרכש (לדוגמה: "Monthly001"). |
דוגמה
דוגמה להתראה על רכישת מינוי חדש:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN",
"subscriptionId":"monthly001"
}
}
התראה של OneTimeProduct
השדה OneTimeProductNotification
מכיל את השדות הבאים:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
שם הנכס | הערך | תיאור |
גרסה | String (מחרוזת) | מספר הגרסה של ההודעה הזו. בהתחלה, הערך הזה יהיה '1.0'. הזה של הגרסה שונה משדות גרסה אחרים. |
סוג התראה | INT | סוג ההתראה. הוא יכול לקבל את הערכים הבאים:
|
purchaseToken | String (מחרוזת) | האסימון שסופק למכשיר של המשתמש בזמן ביצוע הרכישה. |
מק"ט | String (מחרוזת) | מזהה המוצר החד-פעמי שנרכש (לדוגמה, 'sword_001') |
דוגמה
דוגמה להתראה על רכישה חד-פעמית חדשה:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
הודעת VoidedPurchase
השדה VoidedPurchaseNotification
מכיל את השדות הבאים:
שם הנכס |
הערך |
תיאור |
|
|
האסימון שמשויך לרכישה בוטל. הזה מידע מסופק למפתח כאשר רכישה חדשה מתרחשת. |
|
|
מזהה ההזמנה הייחודי שמשויך לעסקה שמכילה בוטל. ברכישות חד-פעמיות, המזהה הזה מייצג את מזהה ההזמנה היחיד שנוצר עבור הרכישה. עבור מינויים שמתחדשים אוטומטית, לכל עסקת חידוש נוצר מזהה הזמנה. |
|
|
|
|
|
חשוב לשים לב מתי הכמות הכוללת שנותרה לרכישה בכמות מרובה היא
החזר כספי, בסך |
דוגמה
דוגמה להתראה על רכישה חדשה שבוטלה:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
שימוש בהתראות של VoidedPurchase
כשלקוח ה-RTDN מקבל VoidedPurchaseNotification
, חשוב לשים לב ל
הבאים:
packageName
: מזהה את האפליקציה.eventTimeMillis
: מודיע למפתח על מועד השינוי הסטטוס.purchaseToken
: האסימון שניתן למכשיר של המשתמש בזמן המוצר נרכש.orderId
: מזהה את ההזמנה המשויכת לבקשה המבוטלת העסקה.productType
: מציין אם הרכישה שבוטלה הייתה מתוך האפליקציה רכישה או מינוי.refundType
: מציין את סוג ההחזר הכספי שביטל את הרכישה.
אם כל מה שצריך לעשות כדי לשנות את ההרשאות הוא לאתר את הרכישה הנכונה עכשיו יש לכם את כל המידע שאתם צריכים. למידה איך לקבל מידע נוסף על הרכישה שבוטלה, אפשר לעיין Google Play Voided Purchases API, שהוא מודל משיכה שמספק נתונים נוספים לגבי רכישות מבוטלות בין חותמת זמן נתונה.
עבור רכישות בכמות גדולה שבוטלו באופן חלקי, השדה refundableQuantity
סופק על ידי purchases.products
מכיל את שאר הערכים
מספר המוצרים שנרכשו, שלא בוטלו.
התראת בדיקה
השדה TestNotification
מכיל את השדות הבאים:
{
"version": string
}
שם הנכס | הערך | תיאור |
גרסה | String (מחרוזת) | מספר הגרסה של ההודעה הזו. בהתחלה, הערך הוא '1.0'. הזה של הגרסה שונה משדות גרסה אחרים. |
דוגמה
דוגמה להודעת בדיקה:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}