หัวข้อนี้จะแสดงรายการและอธิบายประเภทของการแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาแอปที่คุณจะได้รับจาก 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 | ยาว | การประทับเวลาที่เกิดเหตุการณ์เป็นมิลลิวินาทีนับตั้งแต่เริ่มต้น |
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 สำหรับการติดตามสามารถมีค่าต่อไปนี้
|
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 | ประเภทการแจ้งเตือน โดยอาจมีค่าดังต่อไปนี้
|
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
มีฟิลด์ต่อไปนี้
ชื่อพร็อพเพอร์ตี้ |
ค่า |
คำอธิบาย |
|
|
โทเค็นที่เชื่อมโยงกับการซื้อที่ถูกทำให้เป็นโมฆะ ระบบจะส่งข้อมูลนี้ให้นักพัฒนาแอปเมื่อมีการซื้อใหม่เกิดขึ้น |
|
|
รหัสคำสั่งซื้อที่ไม่ซ้ำซึ่งเชื่อมโยงกับธุรกรรมที่ยกเลิกแล้ว สําหรับการซื้อแบบครั้งเดียว รหัสนี้จะแสดงรหัสคำสั่งซื้อเดียวที่สร้างขึ้นสําหรับการซื้อ สําหรับการสมัครใช้บริการแบบต่ออายุใหม่โดยอัตโนมัติ ระบบจะสร้างรหัสคำสั่งซื้อใหม่สําหรับธุรกรรมการต่ออายุแต่ละรายการ |
|
|
|
|
|
โปรดทราบว่าเมื่อมีการคืนเงินสำหรับจำนวนสินค้าทั้งหมดที่เหลืออยู่จากการซื้อแบบหลายรายการ |
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างการแจ้งเตือนการซื้อใหม่ที่ยกเลิก
{
"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
TestNotification
มีฟิลด์ต่อไปนี้
{
"version": string
}
ชื่อพร็อพเพอร์ตี้ | ค่า | คำอธิบาย |
เวอร์ชัน | สตริง | เวอร์ชันของการแจ้งเตือนนี้ โดยค่าเริ่มต้นจะเป็น "1.0" เวอร์ชันนี้แตกต่างจากช่องเวอร์ชันอื่นๆ |
ตัวอย่าง
ตัวอย่างการแจ้งเตือนการทดสอบมีดังนี้
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}