คุณเพิ่งใช้การเรียกเก็บเงินของ Google Play ในแอป Android หรือ Progressive Web App และผู้ใช้สามารถซื้อสินค้าดิจิทัลของคุณได้ ตอนนี้ได้เวลาติดตั้งใช้งานคอมโพเนนต์การเรียกเก็บเงินของ Play ที่สำคัญบางอย่างในเซิร์ฟเวอร์แบ็กเอนด์แล้ว
API สำหรับนักพัฒนาซอฟต์แวร์ Google Play
Google Play Developer API มี 2 องค์ประกอบ ได้แก่ Subscriptions and In-app Purchases API และ Publishing API Subscriptions and In-app Purchases API ประกอบด้วยทรัพยากร REST ต่อไปนี้เพื่อช่วยจัดการผลิตภัณฑ์และการซื้อ
inappproducts: การจัดการแคตตาล็อกไอเทมและการสมัครใช้บริการที่ซื้อในแอปpurchases.products: สถานะการซื้อไอเทมที่ซื้อในแอปpurchases.subscriptions: สถานะการซื้อและการจัดการการสมัครใช้บริการ
คุณสามารถใช้ Google Play Developer API โดยตรงเป็น REST API หรือไลบรารีของไคลเอ็นต์จะช่วยให้คุณเริ่มพัฒนาได้อย่างรวดเร็ว คุณดูไลบรารีของไคลเอ็นต์สำหรับภาษาที่รองรับทั้งหมดได้ที่นี่ ทำตามคู่มือเริ่มต้นใช้งานสำหรับ Google Play Developer API เพื่อลิงก์โปรเจ็กต์ API และตั้งค่าไคลเอ็นต์การเข้าถึง API
แสดงรายการไอเทมที่ซื้อในแอปทั้งหมด
เมื่อค้นหารายละเอียดผลิตภัณฑ์ที่พร้อมใช้งานในส่วนหน้า (ในแอป Android หรือ Progressive Web App) คุณต้องระบุรายการรหัสผลิตภัณฑ์ คุณสามารถใช้ฟีเจอร์นี้ในเซิร์ฟเวอร์แบ็กเอนด์ด้วยเมธอด inappproducts.list ของ Play Developer API ซึ่งจะแสดงรายการไอเทมที่ซื้อในแอปและการสมัครใช้บริการทั้งหมดที่คุณสร้างใน Play Console โปรดตรวจสอบ status ของแต่ละผลิตภัณฑ์และส่งเฉพาะ active ไปยังไคลเอ็นต์แอปของคุณ
ยืนยันการซื้อก่อนให้สิทธิ์
ส่วนสำคัญของการติดตั้งใช้งานการเรียกเก็บเงินของ Play ในแอป Android หรือ Progressive Web App คือการตรวจสอบว่าคุณได้ยืนยันการซื้อก่อนที่จะให้สิทธิ์แก่ผู้ใช้ เมื่อให้สิทธิ์ผู้ใช้ คุณจะให้สิทธิ์เข้าถึงสิทธิประโยชน์หรือเนื้อหาที่เชื่อมโยงกับไอเทมที่ผู้ใช้ซื้อ เนื่องจากต้องจัดการข้อมูลที่ละเอียดอ่อน จึงควรจัดการในเซิร์ฟเวอร์แบ็กเอนด์
Google Play Developer API มีเมธอด purchases.products:get และ purchases.subscriptions:get ใช้รหัสเหล่านี้กับโทเค็นการซื้อที่เรียกข้อมูลในแอปหรือจัดเก็บไว้ในเซิร์ฟเวอร์แบ็กเอนด์เพื่อยืนยันว่าการซื้อนั้นถูกต้อง คุณควรติดตามโทเค็นการซื้อในเซิร์ฟเวอร์แบ็กเอนด์สำหรับการซื้อเพิ่มเติมและการยืนยันสิทธิ์ของผู้ใช้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับขั้นตอนที่คุณควรทำได้ในเอกสารประกอบการเรียกเก็บเงินของ Google Play เกี่ยวกับการยืนยันการซื้อ
การซื้อในแอป
หลังจากได้รับโทเค็นการซื้อจากไคลเอ็นต์แล้ว แบ็กเอนด์ของคุณควรเรียกใช้ Google Play Developer API และตรวจสอบว่าโทเค็นยังไม่ได้ใช้ ฟิลด์ purchaseState ของการซื้อที่ถูกต้องคือ 1
หากการซื้อถูกต้อง ไคลเอ็นต์ควรรับทราบการซื้อและให้สิทธิ์หลังจากได้รับคำตอบจากเซิร์ฟเวอร์
การซื้อการสมัครใช้บริการ
เซิร์ฟเวอร์แบ็กเอนด์ควรเรียก Google Play Developer API หลังจากได้รับโทเค็นการซื้อจากไคลเอ็นต์ และตรวจสอบว่าการสมัครใช้บริการยังคงใช้งานได้ เช่นเดียวกับการยืนยันการซื้อในแอป
ลูกค้าควรให้สิทธิ์หากฟิลด์ expiryTimeMillis ของการสมัครใช้บริการมีค่ามากกว่าเวลาปัจจุบัน
นอกจากนี้ ยังเป็นช่วงเวลาที่ดีในการตรวจสอบฟิลด์ linkedPurchaseToken และอัปเดตฐานข้อมูลการสมัครใช้บริการให้เหมาะสมเพื่อจัดการการอัปเกรด ดาวน์เกรด และขั้นตอนการสมัครใช้บริการอื่นๆ ส่วนที่เหลือของหน้านี้จะอธิบายรายละเอียดเพิ่มเติม
อัปเดตสถานะแบ็กเอนด์อยู่เสมอ
หากแอปของคุณพร้อมให้บริการบนแพลตฟอร์มต่างๆ (ซึ่งอาจใช้วิธีการชำระเงินที่แตกต่างกันด้วย) การติดตามผู้ใช้และการซื้อของผู้ใช้ในเซิร์ฟเวอร์แบ็กเอนด์จะช่วยให้มั่นใจได้ว่าผู้ใช้จะเข้าถึงสิทธิ์เดียวกันในอุปกรณ์และแพลตฟอร์มที่ใช้แอปของคุณได้
ซึ่งอาจเป็นเพียงการมีฐานข้อมูลที่คุณบันทึกผู้ใช้และสิทธิ์ปัจจุบันของผู้ใช้ จากนั้นเมื่อผู้ใช้ทำการซื้อหรือใช้สิทธิ์ คุณก็อัปเดตข้อมูลให้สอดคล้องกัน ในครั้งถัดไปที่ผู้ใช้เข้าถึงแอปจากแพลตฟอร์มอื่น คุณสามารถดึงสิทธิ์ที่เหมาะสมจากแบ็กเอนด์เพื่อให้ผู้ใช้เข้าถึงได้
จัดการการเปลี่ยนแปลงสถานะการสมัครใช้บริการ
การสมัครใช้บริการอาจมีการเปลี่ยนแปลงสถานะต่างๆ ตลอดวงจรการใช้งาน และคุณควรตอบสนองต่อการเปลี่ยนแปลงแต่ละครั้งอย่างเหมาะสม ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการวงจรการสมัครใช้บริการเพื่อให้แบ็กเอนด์เป็นเวอร์ชันล่าสุดอยู่เสมอ
Subscription linkedPurchaseToken
ตามที่ระบุไว้ในเอกสารประกอบเกี่ยวกับการสมัครใช้บริการ ขั้นตอนการซื้อใหม่ทุกครั้งใน Google Play (การซื้อครั้งแรก การอัปเกรด หรือการดาวน์เกรด) จะสร้างโทเค็นการซื้อใหม่ ฟิลด์ linkedPurchaseToken ช่วยให้ทราบได้ว่าโทเค็นการซื้อหลายรายการเป็นของการสมัครใช้บริการเดียวกันเมื่อใด
ทุกครั้งที่คุณยืนยันการสมัครใช้บริการ แบ็กเอนด์ควรตรวจสอบว่าได้ตั้งค่าฟิลด์ linkedPurchaseToken หรือไม่ หากเป็นเช่นนั้น ค่าในฟิลด์นั้นจะแสดงโทเค็นก่อนหน้าซึ่งตอนนี้ถูกแทนที่แล้ว คุณควรมาร์กโทเค็นก่อนหน้าว่าไม่ถูกต้องทันที เพื่อไม่ให้ผู้ใช้ใช้โทเค็นดังกล่าวเพื่อเข้าถึงเนื้อหาของคุณได้
เช่น เมื่อแบ็กเอนด์ได้รับโทเค็นการซื้อ A สำหรับการซื้อครั้งแรกโดยมีช่อง linkedPurchaseToken ว่างเปล่า ระบบจะเปิดใช้สิทธิ์สำหรับโทเค็นนั้น ต่อมา เมื่อแบ็กเอนด์ได้รับโทเค็นการซื้อใหม่ B หลังจากอัปเกรดแล้ว ระบบจะตรวจสอบฟิลด์ linkedPurchaseToken และเห็นว่าตั้งค่าเป็น A จึงปิดใช้สิทธิ์สำหรับโทเค็นการซื้อ A

ดูรายละเอียดการพูดคุยเกี่ยวกับlinkedPurchaseTokenการติดตั้งใช้งานได้ที่การติดตั้งใช้งาน linkedPurchaseToken อย่างถูกต้องเพื่อป้องกันการสมัครใช้บริการที่ซ้ำกัน
การแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาแอป
เมธอด purchases.subscriptions:get ของ Google Play Developer API เป็นแหล่งข้อมูลที่เชื่อถือได้สำหรับการจัดการการสมัครใช้บริการของผู้ใช้ หากจัดการสถานะของผู้ติดตามในเซิร์ฟเวอร์แบ็กเอนด์ที่ปลอดภัย คุณควรซิงค์สถานะกับเซิร์ฟเวอร์ของ Google อย่างไรก็ตาม การสำรวจ Google Play Developer API บ่อยๆ อาจทำให้ถึงขีดจำกัดโควต้า API และทำให้การรับการแจ้งเตือนสำหรับการดำเนินการที่สำคัญของผู้ใช้ (เช่น การยกเลิกหรือการอัปเกรดการสมัครใช้บริการ) ล่าช้า
การแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาแอป (RTDN) เป็นฟีเจอร์การเรียกเก็บเงินของ Google Play ที่จะส่งการแจ้งเตือนทันทีไปยังเซิร์ฟเวอร์ของคุณเมื่อสถานะการให้สิทธิ์ของสมาชิกมีการเปลี่ยนแปลง (เช่น ซื้อการสมัครใช้บริการ ยกเลิกการสมัครใช้บริการ หรือหยุดการสมัครใช้บริการชั่วคราว) RTDN ช่วยให้คุณซิงค์ฐานข้อมูลผู้ติดตามได้โดยการตอบกลับการแจ้งเตือนเหล่านี้เท่านั้น แทนที่จะต้องสำรวจ Google Play Developer API เป็นประจำ
เซิร์ฟเวอร์แบ็กเอนด์จะได้รับ SubscriptionNotification สำหรับเหตุการณ์ที่ส่งผลต่อสถานะการสมัครใช้บริการ เช่น การต่ออายุและการยกเลิก จากนั้นเรียกใช้ Google Play Developer API ด้วยโทเค็นการซื้อในการแจ้งเตือนเพื่อรับสถานะที่สมบูรณ์และอัปเดตสถานะแบ็กเอนด์ของคุณเอง
คุณกำหนดค่า RTDN สำหรับแอปได้โดยทำตามวิธีการเหล่านี้ จากนั้นคุณควรกำหนดค่าเซิร์ฟเวอร์แบ็กเอนด์เพื่อใช้ข้อความเหล่านี้
ดูข้อมูลเพิ่มเติมได้ในข้อมูลอ้างอิง RTDN ฉบับเต็ม