מדריך עזר בנושא התראות בזמן אמת למפתחים

נושא זה מפרט ומתאר את הסוגים של התראות בזמן אמת למפתחים שאפשר לקבל מ-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 עבור מינוי יכול לכלול את הערכים הבאים:
  • (1) SUBSCRIPTION_RECOVERED – המינוי שוחזר מ- השהיית חשבון.
  • (2) SUBSCRIPTION_RENEWED - מינוי פעיל חודש.
  • (3) SUBSCRIPTION_CANCELED – המינוי בוצע מרצון או ביטול שלא מרצון. לביטול מרצון, נשלח כאשר שהמשתמש מבטל.
  • (4) SUBSCRIPTION_PURCHASED – נרכש מינוי חדש.
  • (5) Subscription_ON_HOLD – מינוי נכנס לחשבון להחזיק לצורך משפטי (אם הופעל).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - נכנס מינוי תקופת חסד (אם הופעלה).
  • (7) Subscription_RESTARTED - המשתמש שיחזר את מינוי מPlay > חשבון > מינויים. המינוי בוטל אבל תוקפו של המשתמש עדיין לא פג משוחזרת. מידע נוסף זמין במאמר הבא: שחזורים.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - מחיר מינוי השינוי אושר בהצלחה על ידי המשתמש.
  • (9) SUBSCRIPTION_DEFERRED - שעת החזרה של מינוי הוא הוארך.
  • (10) Subscription_PAUSED – מינוי הושהה.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - השהיית מינוי לוח הזמנים השתנה.
  • (12) SUBSCRIPTION_REVOKED - מינוי בוטל מ- המשתמש לפני מועד התפוגה.
  • (13) SUBSCRIPTION_EXPIRED – פג התוקף של המינוי.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED – עסקה בהמתנה של מינוי בוטל.
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 סוג ההתראה. הוא יכול לקבל את הערכים הבאים:
  • (1) ONE_TIME_PRODUCT_PURCHASED – מוצר חד-פעמי המשתמש נרכש בהצלחה.
  • (2) ONE_TIME_PRODUCT_CANCELED - מוצר חד-פעמי בהמתנה הרכישה בוטלה על ידי המשתמש.
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 מכיל את השדות הבאים:

שם הנכס

הערך

תיאור

purchaseToken

string

האסימון שמשויך לרכישה בוטל. הזה מידע מסופק למפתח כאשר רכישה חדשה מתרחשת.

orderId

string

מזהה ההזמנה הייחודי שמשויך לעסקה שמכילה בוטל. ברכישות חד-פעמיות, המזהה הזה מייצג את מזהה ההזמנה היחיד שנוצר עבור הרכישה. עבור מינויים שמתחדשים אוטומטית, לכל עסקת חידוש נוצר מזהה הזמנה.

productType

int

productType לרכישה מבוטלת יכול לקבל את הערכים הבאים:

  • (1) PRODUCT_TYPE_SUBSCRIPTION – מינוי הרכישה בוטלה.
  • (2) PRODUCT_TYPE_ONE_TIME - רכישה חד-פעמית בוטל.

refundType

int

refundType לרכישה מבוטלת יכול לקבל את הערכים הבאים:

  • (1) REFUND_TYPE_FULL_REFUND – הרכישה בוטלה לגמרי.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND – הרכישה בוטלה חלקית על ידי החזר כספי חלקי המבוסס על כמות, רלוונטי רק לרכישות בכמות גדולה. רכישה יכולה להיות בוטל חלקית מספר פעמים.

חשוב לשים לב מתי הכמות הכוללת שנותרה לרכישה בכמות מרובה היא החזר כספי, בסך refundType REFUND_TYPE_FULL_REFUND.

דוגמה

דוגמה להתראה על רכישה חדשה שבוטלה:

{
  "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"
  }
}