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

เอกสารนี้แสดงและอธิบายประเภท การแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาแอปที่คุณจะได้รับจาก 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 ยาว การประทับเวลาเมื่อเกิดเหตุการณ์เป็นมิลลิวินาทีนับตั้งแต่ Epoch
subscriptionNotification SubscriptionNotification หากมีฟิลด์นี้ แสดงว่าการแจ้งเตือนนี้เกี่ยวข้องกับ การสมัครใช้บริการ และฟิลด์นี้มีข้อมูลเพิ่มเติมที่เกี่ยวข้อง กับการสมัครใช้บริการ โปรดทราบว่าฟิลด์นี้จะใช้ร่วมกับ oneTimeProductNotification, voidedPurchaseNotification และ testNotification ไม่ได้
oneTimeProductNotification OneTimeProductNotification หากมีฟิลด์นี้ แสดงว่าการแจ้งเตือนนี้เกี่ยวข้องกับ การซื้อแบบครั้งเดียว และฟิลด์นี้มีข้อมูลเพิ่มเติม ที่เกี่ยวข้องกับการซื้อ โปรดทราบว่าฟิลด์นี้เป็นข้อมูลแยกกัน กับ subscriptionNotification, voidedPurchaseNotification และ testNotification
voidedPurchaseNotification VoidedPurchaseNotification หากมีฟิลด์นี้ แสดงว่าการแจ้งเตือนนี้เกี่ยวข้องกับการซื้อที่ ถูกยกเลิก และฟิลด์นี้มีข้อมูลเพิ่มเติมที่เกี่ยวข้อง กับการซื้อที่ถูกยกเลิก โปรดทราบว่าฟิลด์นี้จะใช้ร่วมกับ oneTimeProductNotification, subscriptionNotification และ testNotification ไม่ได้
testNotification TestNotification หากมีฟิลด์นี้ การแจ้งเตือนนี้จะเกี่ยวข้องกับการเผยแพร่เวอร์ชันทดสอบ โดยจะส่งผ่าน Google Play Developer Console เท่านั้น โปรดทราบว่าฟิลด์นี้จะใช้ร่วมกับ oneTimeProductNotification, subscriptionNotification และ voidedPurchaseNotification ไม่ได้

SubscriptionNotification

SubscriptionNotification มีช่องต่อไปนี้

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

TestNotification

TestNotification มีช่องต่อไปนี้

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

ตัวอย่าง

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

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