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

รูปที่ 1 แอปพลิเคชันของคุณจะเริ่ม การตรวจสอบใบอนุญาตผ่านไลบรารีการยืนยันใบอนุญาตและไคลเอ็นต์ Google Play ซึ่งจะจัดการการสื่อสารกับเซิร์ฟเวอร์ของ Google Play
หมายเหตุ: ก่อนหน้านี้คุณสามารถทดสอบแอปได้โดย การอัปโหลดเวอร์ชัน "ฉบับร่าง" ที่ไม่ได้เผยแพร่ ฟังก์ชันนี้ไม่รองรับอีกต่อไป แต่คุณต้องเผยแพร่ไปยังแทร็กการทดสอบแบบปิดหรือแบบเปิดแทน ดูข้อมูลเพิ่มเติมได้ที่ระบบไม่รองรับแอปฉบับร่าง อีกต่อไป
เซิร์ฟเวอร์การให้สิทธิ์ต้องมีข้อมูลเกี่ยวกับแอปพลิเคชันและผู้ใช้เพื่อระบุผู้ใช้และกำหนดสถานะใบอนุญาตอย่างถูกต้อง โดยแอปพลิเคชันของคุณและไคลเอ็นต์ Google Play จะทำงานร่วมกันเพื่อรวบรวมข้อมูล และไคลเอ็นต์ Google Play จะส่งข้อมูลไปยังเซิร์ฟเวอร์
Android SDK มีชุดแหล่งที่มาของไลบรารีที่ดาวน์โหลดได้ซึ่งคุณสามารถรวมไว้ในโปรเจ็กต์แอปพลิเคชันเพื่อช่วยเพิ่มการอนุญาตให้ใช้สิทธิลงในแอปพลิเคชันของคุณได้ นั่นคือแพ็กเกจการอนุญาตให้ใช้สิทธิของ Google Market ไลบรารีการยืนยันใบอนุญาต (LVL) คือไลบรารีที่คุณเพิ่มลงในแอปพลิเคชันได้ ซึ่งจะจัดการการสื่อสารที่เกี่ยวข้องกับการออกใบอนุญาตทั้งหมดกับบริการออกใบอนุญาตของ Google Play เมื่อเพิ่ม LVL ลงในแอปพลิเคชันแล้ว แอปพลิเคชันจะกำหนดสถานะการให้สัญญาอนุญาตสำหรับผู้ใช้ปัจจุบันได้โดยเพียงแค่เรียกใช้เมธอดและใช้การเรียกกลับที่รับการตอบกลับสถานะ
แอปพลิเคชันของคุณไม่ได้ค้นหาเซิร์ฟเวอร์การอนุญาต โดยตรง แต่จะเรียกไคลเอ็นต์ Google Play ผ่าน IPC ระยะไกลเพื่อ เริ่มคำขอใบอนุญาตแทน ในคำขอใบอนุญาต
- แอปพลิเคชันของคุณระบุชื่อแพ็กเกจของแอป Nonce ที่ใช้ในภายหลังเพื่อ ตรวจสอบการตอบกลับจากเซิร์ฟเวอร์ และการเรียกกลับที่ใช้ส่ง การตอบกลับแบบไม่พร้อมกัน
- ไคลเอ็นต์ Google Play จะรวบรวมข้อมูลที่จำเป็นเกี่ยวกับผู้ใช้และอุปกรณ์ เช่น ชื่อผู้ใช้บัญชี Google หลักของอุปกรณ์, IMSI และข้อมูลอื่นๆ จากนั้นจะส่งคำขอตรวจสอบใบอนุญาตไปยังเซิร์ฟเวอร์ในนามของ แอปพลิเคชันของคุณ
- เซิร์ฟเวอร์ Google Play จะประเมินคำขอโดยใช้ข้อมูลทั้งหมดที่มีอยู่ และพยายาม ยืนยันตัวตนของผู้ใช้ในระดับที่มั่นใจได้เพียงพอ จากนั้นเซิร์ฟเวอร์จะตรวจสอบตัวตนของผู้ใช้กับบันทึกการซื้อของแอปพลิเคชันของคุณ และ ส่งคืนการตอบกลับเกี่ยวกับใบอนุญาต ซึ่งไคลเอ็นต์ Google Play จะส่งคืนไปยังแอปพลิเคชันของคุณ ผ่าน Callback ของ IPC
คุณเลือกเวลาและความถี่ที่ต้องการให้แอปพลิเคชันตรวจสอบใบอนุญาตได้ และคุณมีสิทธิ์ควบคุมอย่างเต็มที่ว่าจะให้แอปพลิเคชันจัดการการตอบกลับ ยืนยันข้อมูลการตอบกลับที่ลงนาม และบังคับใช้การควบคุมการเข้าถึงอย่างไร
โปรดทราบว่าในระหว่างการตรวจสอบใบอนุญาต แอปพลิเคชันของคุณจะไม่จัดการการเชื่อมต่อเครือข่ายหรือใช้ API ที่เกี่ยวข้องกับการอนุญาตให้ใช้สิทธิในแพลตฟอร์ม Android
การตอบกลับเกี่ยวกับใบอนุญาตมีความปลอดภัย
เซิร์ฟเวอร์จะลงนามในข้อมูลการตอบกลับของใบอนุญาตโดยใช้คู่คีย์ RSA ที่แชร์เฉพาะระหว่างเซิร์ฟเวอร์ Google Play กับคุณ เพื่อให้มั่นใจในความสมบูรณ์ของการค้นหาใบอนุญาตแต่ละครั้ง
บริการให้สัญญาอนุญาตจะสร้างคู่คีย์การให้สัญญาอนุญาตคู่เดียวสำหรับแต่ละแอปพลิเคชัน และแสดงคีย์สาธารณะในหน้าบริการและ API ของแอปพลิเคชันใน Play Console คุณต้องคัดลอก คีย์สาธารณะจาก Play Console และฝังไว้ในซอร์สโค้ดของแอปพลิเคชัน เซิร์ฟเวอร์จะเก็บคีย์ส่วนตัวไว้ภายในและใช้เพื่อลงนาม การตอบกลับเกี่ยวกับใบอนุญาตสำหรับแอปพลิเคชันที่คุณเผยแพร่ด้วยบัญชีนั้น
เมื่อแอปพลิเคชันได้รับการตอบกลับที่ลงนามแล้ว แอปพลิเคชันจะใช้คีย์สาธารณะที่ฝังไว้เพื่อยืนยันข้อมูล การใช้การเข้ารหัสคีย์สาธารณะในบริการออกใบอนุญาตช่วยให้แอปพลิเคชันตรวจหาการตอบกลับที่ถูกดัดแปลงหรือถูกปลอมแปลงได้
ไลบรารีการยืนยันการอนุญาตให้ใช้สิทธิ
Android SDK มีแพ็กเกจที่ดาวน์โหลดได้ชื่อแพ็กเกจการอนุญาตให้ใช้สิทธิของ Google Market ซึ่งรวมถึงไลบรารีการตรวจสอบใบอนุญาต (LVL) LVL ช่วยลดความซับซ้อนของกระบวนการ เพิ่มการอนุญาตให้ใช้สิทธิลงในแอปพลิเคชัน และช่วยให้มั่นใจได้ว่าการติดตั้งใช้งานแอปพลิเคชัน จะมีความปลอดภัยและมีประสิทธิภาพมากขึ้น LVL มีคลาสภายในที่จัดการการดำเนินการมาตรฐานส่วนใหญ่ของคำค้นหาใบอนุญาต เช่น การติดต่อไคลเอ็นต์ Google Play เพื่อเริ่มคำขอใบอนุญาต รวมถึงการยืนยันและการตรวจสอบการตอบกลับ นอกจากนี้ ยังมีอินเทอร์เฟซที่ช่วยให้คุณเสียบโค้ดที่กำหนดเองเพื่อกำหนดนโยบายการให้สิทธิ์และจัดการการเข้าถึงได้ตามที่แอปพลิเคชันต้องการ อินเทอร์เฟซ LVL หลักมีดังนี้
Policy
- การติดตั้งใช้งานของคุณจะเป็นตัวกำหนดว่าจะอนุญาตให้เข้าถึง แอปพลิเคชันหรือไม่ โดยอิงตามการตอบกลับของใบอนุญาตที่ได้รับจากเซิร์ฟเวอร์และข้อมูลอื่นๆ ที่มี (เช่น จากเซิร์ฟเวอร์แบ็กเอนด์ที่เชื่อมโยงกับ แอปพลิเคชันของคุณ) การติดตั้งใช้งานสามารถประเมินฟิลด์ต่างๆ ของการตอบกลับของใบอนุญาต และใช้ข้อจำกัดอื่นๆ ได้หากจำเป็น การติดตั้งใช้งานยังช่วยให้คุณจัดการการตรวจสอบใบอนุญาตที่ทำให้เกิดข้อผิดพลาด เช่น ข้อผิดพลาดเกี่ยวกับเครือข่าย ได้ด้วย
LicenseCheckerCallback
- การติดตั้งใช้งานจะจัดการการเข้าถึงแอปพลิเคชันตามผลลัพธ์ของการจัดการออบเจ็กต์
Policy
ของการตอบกลับใบอนุญาต การติดตั้งใช้งานของคุณสามารถจัดการการเข้าถึงได้ทุกวิถีทางที่ต้องการ ซึ่งรวมถึง การแสดงผลลัพธ์ของใบอนุญาตใน UI หรือการนำผู้ใช้ไปซื้อ แอปพลิเคชัน (หากยังไม่มีใบอนุญาต)
LVL มีการติดตั้งใช้งาน Policy
ที่สมบูรณ์ 2 แบบให้คุณใช้โดยไม่ต้องแก้ไขหรือปรับให้เหมาะกับความต้องการของคุณ เพื่อช่วยให้คุณเริ่มต้นใช้งาน Policy
ได้
ServerManagedPolicy
Policy
ที่ยืดหยุ่น ซึ่งใช้การตั้งค่าที่เซิร์ฟเวอร์การออกใบอนุญาตระบุเพื่อจัดการการแคชการตอบกลับ และการเข้าถึงแอปพลิเคชันขณะที่อุปกรณ์ออฟไลน์ (เช่น เมื่อ ผู้ใช้อยู่บนเครื่องบิน) เราขอแนะนำอย่างยิ่งให้ใช้ServerManagedPolicy
สำหรับแอปพลิเคชันส่วนใหญ่StrictPolicy
Policy
ที่จำกัดซึ่ง ไม่แคชข้อมูลการตอบกลับใดๆ และอนุญาตให้แอปพลิเคชันเข้าถึงได้เฉพาะ เมื่อเซิร์ฟเวอร์ส่งการตอบกลับที่ได้รับอนุญาต
LVL พร้อมใช้งานเป็นแพ็กเกจที่ดาวน์โหลดได้ของ Android SDK แพ็กเกจประกอบด้วย LVL เองและแอปพลิเคชันตัวอย่างที่แสดงวิธี ผสานรวมไลบรารีกับแอปพลิเคชันของคุณ รวมถึงวิธีที่แอปพลิเคชันของคุณ ควรจัดการข้อมูลการตอบกลับ การโต้ตอบ UI และเงื่อนไขข้อผิดพลาด
แหล่งที่มาของ LVL มีให้ในรูปแบบโปรเจ็กต์ไลบรารี Android ซึ่งหมายความว่าคุณสามารถดูแลแหล่งที่มาของไลบรารีชุดเดียวและแชร์แหล่งที่มาเหล่านั้นในแอปพลิเคชันหลายรายการได้ นอกจากนี้ ยังมีสภาพแวดล้อมการทดสอบแบบเต็มผ่าน SDK เพื่อให้คุณพัฒนาและทดสอบการใช้งานการให้สัญญาอนุญาตในแอปพลิเคชันก่อนเผยแพร่ได้ แม้ว่าจะไม่มีสิทธิ์เข้าถึงอุปกรณ์จริงก็ตาม
ข้อกำหนดและข้อจำกัด
การอนุญาตให้ใช้สิทธิของ Google Play ออกแบบมาเพื่อให้คุณใช้การควบคุมใบอนุญาตกับแอปพลิเคชันที่คุณเผยแพร่ผ่าน Google Play ได้ บริการนี้ไม่ได้ ออกแบบมาเพื่อให้คุณควบคุมการเข้าถึงแอปพลิเคชันที่ไม่ได้เผยแพร่ ผ่าน Google Play หรือที่เรียกใช้ในอุปกรณ์ที่ไม่มีไคลเอ็นต์ Google Play
ต่อไปนี้คือประเด็นที่ควรคำนึงถึงเมื่อใช้การอนุญาตให้ใช้สิทธิในแอปพลิเคชัน
- แอปพลิเคชันจะใช้บริการได้ก็ต่อเมื่อติดตั้งไคลเอ็นต์ Google Play ในอุปกรณ์โฮสต์และอุปกรณ์นั้นใช้ Android 1.5 (API ระดับ 3) ขึ้นไป
- หากต้องการตรวจสอบใบอนุญาตให้เสร็จสมบูรณ์ คุณต้องเข้าถึงเซิร์ฟเวอร์การให้ใบอนุญาตผ่านเครือข่ายได้ คุณสามารถใช้ลักษณะการทำงานของการแคชใบอนุญาตเพื่อจัดการการเข้าถึงแอปพลิเคชันเมื่อ ไม่มีการเชื่อมต่อเครือข่าย
- การควบคุมการออกใบอนุญาตของแอปพลิเคชันจะขึ้นอยู่กับการออกแบบการใช้งานของคุณเอง บริการนี้มีองค์ประกอบพื้นฐานที่ช่วยให้คุณตรวจสอบการออกใบอนุญาตได้อย่างปลอดภัย แต่การบังคับใช้และการจัดการใบอนุญาตจริงเป็นปัจจัยที่คุณต้องรับผิดชอบ การปฏิบัติตามแนวทางปฏิบัติแนะนำในเอกสารต่อไปนี้จะช่วยให้การติดตั้งใช้งานมีความปลอดภัย
- การเพิ่มการอนุญาตให้ใช้สิทธิลงในแอปพลิเคชันจะไม่ส่งผลต่อวิธีการทำงานของแอปพลิเคชัน เมื่อเรียกใช้ในอุปกรณ์ที่ไม่มี Google Play
- คุณสามารถใช้การควบคุมการอนุญาตให้ใช้สําหรับแอปฟรีได้ แต่จะทําได้ก็ต่อเมื่อคุณใช้บริการเพื่อ ระบุไฟล์เสริม APK
การแทนที่การป้องกันการคัดลอก
การอนุญาตให้ใช้สิทธิของ Google Play เป็นกลไกที่ยืดหยุ่นและปลอดภัยสำหรับการควบคุม การเข้าถึงแอปพลิเคชันของคุณ ซึ่งจะแทนที่กลไกการป้องกันการคัดลอก (ไม่รองรับอีกต่อไป) ที่เคยมีให้บริการใน Google Play และ ช่วยให้คุณมีศักยภาพในการจัดจำหน่ายแอปพลิเคชันได้กว้างขึ้น
การให้สัญญาอนุญาตช่วยให้คุณเปลี่ยนไปใช้โมเดลตามสัญญาอนุญาตที่บังคับใช้ได้ใน อุปกรณ์ทั้งหมดที่มีสิทธิ์เข้าถึง Google Play การเข้าถึงไม่ได้ขึ้นอยู่กับ ลักษณะของอุปกรณ์โฮสต์ แต่ขึ้นอยู่กับ แอปพลิเคชันของคุณใน Google Play (ผ่านคีย์สาธารณะของแอป) และ นโยบายการอนุญาตให้ใช้สิทธิที่คุณกำหนด คุณติดตั้งและ จัดการแอปพลิเคชันได้ในอุปกรณ์ใดก็ได้ในที่เก็บข้อมูลใดก็ได้ รวมถึงการ์ด SD
แม้ว่ากลไกการอนุญาตให้ใช้สิทธิจะป้องกันการใช้งานที่ไม่ได้รับอนุญาตทั้งหมดไม่ได้โดยสมบูรณ์ แต่บริการอนุญาตให้ใช้สิทธิจะช่วยให้คุณควบคุมการเข้าถึงสำหรับการใช้งานปกติส่วนใหญ่ ในอุปกรณ์ที่รองรับทั้งหมด ไม่ว่าจะล็อกหรือไม่ก็ตาม
หากต้องการเริ่มเพิ่มการอนุญาตให้ใช้สิทธิแอปพลิเคชันลงในแอปพลิเคชัน ให้ไปที่การตั้งค่าสำหรับการอนุญาตให้ใช้สิทธิ