คู่มืออ้างอิงการแจ้งเตือนนักพัฒนาแอปแบบเรียลไทม์

หัวข้อนี้จะแสดงรายการและอธิบายประเภทของ การแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาแอป ที่ได้รับจาก Google Play

การเข้ารหัส

การเผยแพร่แต่ละรายการที่สร้างไปยังหัวข้อ Cloud Pub/Sub จะมี ที่เข้ารหัสฐาน 64

{
  "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" ช่วงเวลานี้ เวอร์ชันแตกต่างจากช่องเวอร์ชันอื่นๆ
ชื่อแพ็กเกจ สตริง ชื่อแพ็กเกจของแอปพลิเคชันที่เกี่ยวข้องกับการแจ้งเตือนนี้ เป็น (เช่น "com.some.thing")
เวลาของกิจกรรมเป็นมิลลิวินาที ยาว การประทับเวลาเมื่อเกิดเหตุการณ์ในหน่วยมิลลิวินาทีตั้งแต่ Epoch
การแจ้งเตือนการติดตาม การแจ้งเตือนการติดตาม หากมีฟิลด์นี้ แสดงว่าการแจ้งเตือนนี้เกี่ยวข้องกับ และช่องนี้มีข้อมูลเพิ่มเติมเกี่ยวกับ กับการสมัครใช้บริการ โปรดทราบว่าช่องนี้ไม่เกี่ยวข้องกับ oneTimeProductNotification, voidedPurchaseNotification และ testNotification
การแจ้งเตือนผลิตภัณฑ์ครั้งเดียว การแจ้งเตือนผลิตภัณฑ์แบบครั้งเดียว หากมีฟิลด์นี้ แสดงว่าการแจ้งเตือนนี้เกี่ยวข้องกับ การซื้อครั้งเดียว โดยช่องนี้จะมีข้อมูลเพิ่มเติม ที่เกี่ยวข้องกับการซื้อ โปรดทราบว่าช่องนี้ไม่สามารถใช้ร่วมกันได้ พร้อม subscriptionNotification, voidedPurchaseNotification และ testNotification
voidedPurchaseNotification VoidedPurchaseNotification หากมีฟิลด์นี้ แสดงว่าการแจ้งเตือนนี้เกี่ยวข้องกับ การซื้อที่เป็นโมฆะ และช่องนี้มีข้อมูลเพิ่มเติมเกี่ยวกับ ไปยังการซื้อที่เป็นโมฆะ โปรดทราบว่าช่องนี้ไม่สามารถใช้ร่วมกันได้ ด้วย oneTimeProductNotification, subscriptionNotification และ testNotification
การแจ้งเตือนการทดสอบ การแจ้งเตือนการทดสอบ หากมีฟิลด์นี้ แสดงว่าการแจ้งเตือนนี้เกี่ยวข้องกับ ทดสอบการเผยแพร่ ข้อความเหล่านี้จะส่งผ่านนักพัฒนาแอป Google Play เท่านั้น คอนโซล โปรดทราบว่าช่องนี้ไม่เกี่ยวข้องกับ oneTimeProductNotification, subscriptionNotification และ voidedPurchaseNotification

การแจ้งเตือนการติดตาม

SubscriptionNotification ประกอบด้วยช่องต่อไปนี้

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย
เวอร์ชัน สตริง เวอร์ชันของการแจ้งเตือนนี้ เริ่มแรกคือ "1.0" ช่วงเวลานี้ เวอร์ชันแตกต่างจากช่องเวอร์ชันอื่นๆ
ประเภทการแจ้งเตือน Int notificationsType สำหรับการสมัครใช้บริการมีค่าต่อไปนี้ได้
  • (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 สตริง โทเค็นที่มอบให้อุปกรณ์ของผู้ใช้เมื่อสมัครใช้บริการ ที่ซื้อไว้
รหัสการสมัครใช้บริการ สตริง รหัสผลิตภัณฑ์ของการสมัครใช้บริการที่ซื้อ (เช่น "monthly001")

ตัวอย่าง

ตัวอย่างการแจ้งเตือนสำหรับการซื้อการสมัครใช้บริการใหม่มีดังนี้

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

การแจ้งเตือนผลิตภัณฑ์แบบครั้งเดียว

OneTimeProductNotification ประกอบด้วยช่องต่อไปนี้

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย
เวอร์ชัน สตริง เวอร์ชันของการแจ้งเตือนนี้ เริ่มแรกจะเป็น "1.0" ช่วงเวลานี้ เวอร์ชันแตกต่างจากช่องเวอร์ชันอื่นๆ
ประเภทการแจ้งเตือน Int ประเภทของการแจ้งเตือน ซึ่งอาจมีค่าดังต่อไปนี้
  • (1) ONE_TIME_PRODUCT_PURCHASED - ผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวคือ ผู้ใช้ซื้อสำเร็จ
  • (2) ONE_TIME_PRODUCT_CANCELED - ผลิตภัณฑ์เรียกเก็บเงินครั้งเดียวที่รอดำเนินการ ผู้ใช้ยกเลิกการซื้อ
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 ประกอบด้วยช่องต่อไปนี้

ชื่อพร็อพเพอร์ตี้

ค่า

คำอธิบาย

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

การใช้ VoidedPurchaseNotification

เมื่อไคลเอ็นต์ RTDN ได้รับ VoidedPurchaseNotification โปรดทราบว่า ข้อมูลต่อไปนี้

  • packageName: แอตทริบิวต์นี้ระบุแอป
  • eventTimeMillis: ระบบจะแจ้งให้นักพัฒนาแอปทราบถึงเวลาที่จะมีการเปลี่ยนแปลง เกิดขึ้น
  • purchaseToken: โทเค็นที่ให้ไว้กับอุปกรณ์ของผู้ใช้เมื่อผลิตภัณฑ์ มีการซื้อ
  • orderId: ข้อมูลนี้ระบุคำสั่งซื้อที่เกี่ยวข้องกับโมฆะ ธุรกรรม
  • productType: ข้อมูลนี้บอกว่าการซื้อที่เป็นโมฆะเป็นการซื้อในแอปหรือไม่ การซื้อหรือการสมัครใช้บริการ
  • refundType: ข้อมูลนี้บอกประเภทการคืนเงินที่ทำให้การซื้อเป็นโมฆะ

หากต้องทำการปรับค่าใช้จ่ายด้านการให้สิทธิ์ก็แค่ค้นหาการซื้อที่ถูกต้อง แล้วคุณก็จะได้รับข้อมูลทั้งหมดที่ต้องการในจุดนี้ เพื่อเรียนรู้ วิธีรับข้อมูลเพิ่มเติมเกี่ยวกับการซื้อที่เป็นโมฆะ ให้ไปที่ Google Play Voided Purchases API ซึ่งเป็นโมเดลพุลที่ให้ข้อมูลเพิ่มเติมสำหรับการซื้อที่เป็นโมฆะ ระหว่างการประทับเวลาที่ระบุ

สำหรับการซื้อหลายจำนวนที่เป็นโมฆะบางส่วน ช่อง refundableQuantity จาก purchases.products ประกอบด้วย จำนวนผลิตภัณฑ์ที่ซื้อซึ่งยังไม่เป็นโมฆะ

การแจ้งเตือนการทดสอบ

TestNotification ประกอบด้วยช่องต่อไปนี้

{
  "version": string
}
ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย
เวอร์ชัน สตริง เวอร์ชันของการแจ้งเตือนนี้ เริ่มแรกคือ "1.0" ช่วงเวลานี้ เวอร์ชันแตกต่างจากช่องเวอร์ชันอื่นๆ

ตัวอย่าง

ตัวอย่างการแจ้งเตือนทดสอบมีดังนี้

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}