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

เอกสารนี้แสดงและอธิบายประเภท การแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาแอปที่คุณจะได้รับจาก 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 - การสมัครใช้บริการหมดอายุแล้ว
  • (17) SUBSCRIPTION_ITEMS_CHANGED - มีการเปลี่ยนแปลงรายการในแพ็กเกจการสมัครใช้บริการ
  • (18) SUBSCRIPTION_CANCELLATION_SCHEDULED - มีการกำหนดเวลาการยกเลิกการสมัครใช้บริการแบบผ่อนชำระให้มีผลเมื่อสิ้นสุดระยะเวลาผูกมัด
  • (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"
  }
}