เอกสารนี้อธิบายวิธีตรวจหาและส่งไอเทมแบบเรียกเก็บเงินครั้งเดียวในเกม หลังจากที่ผู้เล่นซื้อด้วยแต้ม Play ในแอป Google Play
เมื่อผู้ใช้แลกแต้ม Play เป็นไอเทมแบบเรียกเก็บเงินครั้งเดียวในแอป Google Play คุณควรส่งไอเทมดังกล่าวในเกมทันที ภาพต่อไปนี้ แสดงวิธีที่ผู้ใช้ซื้อไอเทมด้วยแต้ม Play
1. คลิกแต้ม Play | 2. คลิกแท็บใช้เพื่อดูไอเทม | 3. เลือกรายการแล้วคลิกใช้แต้มเพื่อทำการซื้อให้เสร็จสมบูรณ์ | 4. รับสินค้า |
![]() |
![]() |
![]() |
![]() |
ในตัวอย่างนี้ เกมไม่ได้ทำงานขณะที่ซื้อผลิตภัณฑ์ ผู้ใช้ยังแลกแต้ม Play เป็นไอเทมได้ด้วยเมื่อไม่ได้ติดตั้งเกมในอุปกรณ์ ด้วยเหตุนี้ คุณจึงต้องออกแบบเกมให้รองรับการนำส่งไอเทมในแอป จากภายนอกร้านค้าในเกม
ก่อนเริ่มต้นใช้งาน
ก่อนที่จะตรวจหาและส่งผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียว คุณต้องสร้างผลิตภัณฑ์และโปรโมชัน Play Points
ข้อกำหนดในการนำส่ง
เมื่อส่งไอเทมแบบเรียกเก็บเงินครั้งเดียวในเกมโดยใช้โปรโมชัน Play Points คุณ ต้องทำตามข้อกำหนดในส่วนนี้
เวลาในการนำส่ง
เมื่อผู้เล่นแลกคะแนน Play เป็นผลิตภัณฑ์แบบครั้งเดียว คุณต้องส่งไอเทมให้ผู้เล่นทันทีโดยไม่ต้องให้ผู้เล่นรีสตาร์ทเกม ในกรณีที่ต้องทำเนื้อหาเกมให้เสร็จก่อน เช่น การทำบทแนะนำให้เสร็จ ระบบควรส่งไอเทมให้ทันทีหลังจากนั้น
ข้อความนำส่ง
เมื่อผู้ใช้กลับมาที่เกมหลังจากซื้อไอเทมแบบครั้งเดียวนอกเกม คุณต้องแสดงการยืนยันว่ามีการให้ไอเทมดังกล่าวในเกมเรียบร้อยแล้ว ข้อความควรอยู่ในรูปแบบกล่องโต้ตอบ หรือข้อความในเกม ผู้ใช้ไม่ควรต้องดำเนินการใดๆ เพิ่มเติมเพื่อ รับไอเทม
รูปแบบข้อความที่จำเป็นมีดังนี้
ข้อความที่ชัดเจนว่าได้รับสินค้าแล้ว
ระบุชื่อไอเทมอย่างชัดเจนและอ้างอิงถึง "Play Points" เพื่อให้ผู้ใช้แยกไอเทมดังกล่าวออกจากเนื้อหาอื่นๆ ที่ได้รับ
ชื่อของสินค้าต้องระบุมูลค่าที่ถูกต้องของสินค้าด้วย หากมีสินค้าที่คล้ายกันซึ่งมีมูลค่าหลายรายการ
กล่องโต้ตอบ ข้อความ หรือการแจ้งเตือนในเกมควรปรากฏต่อผู้ใช้จนกว่าผู้ใช้จะคลิกการยืนยัน เช่น ต่อไปหรือตกลง ไม่ควรมีปุ่มยกเลิก เนื่องจากข้อความนี้มีไว้เพื่อแจ้งให้ผู้ใช้ทราบถึงไอเทมที่ได้รับในเกมเท่านั้น หากไม่มีปุ่มยืนยัน ข้อความควรแสดงต่อผู้ใช้เป็นเวลาอย่างน้อย 3 วินาที ก่อนที่จะหายไปเพื่อให้ผู้ใช้ทราบว่าได้รับไอเทมแล้ว
ตัวอย่างข้อความ
"ได้รับสินค้าแล้ว คุณเพิ่งได้รับอัญมณี 100 เม็ดจาก Play Points ดำเนินการต่อ"
ผู้ใช้ควรเห็นภาพเคลื่อนไหวหรือการยืนยันด้วยภาพที่แสดง ยอดเงินสกุลเงินในเกมที่เพิ่มขึ้น หากไอเทมเป็นไอเทมในแอปที่ใช้งานได้นานหรือไอเทมที่ใช้แล้วหมดไป ระบบควรนำผู้ใช้ไปยังตำแหน่งที่ไอเทม ปลดล็อกแล้วหรือพร้อมใช้งานในเกม
ตรวจหาไอเทมที่ได้รับนอกเกม
หากเกมของคุณใช้ Google Play Billing Library ให้ทำการเปลี่ยนแปลงต่อไปนี้เพื่อตรวจหาไอเทมแบบเรียกเก็บเงินครั้งเดียวที่ได้รับนอกเกม
ใน
[onResume()][onResume]
การเรียกกลับ[queryPurchases()][queryPurchases]
ของเกม ให้เรียกใช้เมธอด[queryPurchases()][queryPurchases]
เพื่อดึงรายการไอเทม เพื่อให้คุณระบุได้ว่าไอเทมใดที่ยังไม่ได้รับการรับทราบหากเกมมีเซิร์ฟเวอร์ เราขอแนะนำให้คุณ ยืนยันการซื้อจากเซิร์ฟเวอร์ โดยใช้ Subscriptions and In-App Purchases API
หากมีไอเทมที่คุณเป็นเจ้าของแต่ยังไม่ได้ยืนยัน ให้ยืนยันการซื้อด้วย
[consumeAsync()][consumeAsync]
สำหรับไอเทมที่ใช้แล้วหมดไป หรือด้วย[acknowledgePurchase()][acknowledgePurchase]
สำหรับไอเทมที่ใช้แล้วไม่หมดไปให้สิทธิ์ในไอเทมที่ซื้อภายในเกม
ตรวจหารายการที่ได้รับในโหมดแยกหน้าจอ
หากเกมรองรับโหมดหลายหน้าต่าง ผู้ใช้จะแลกแต้ม Play และรับไอเทมได้ขณะที่ เรียกใช้แอป Play Store และเกมพร้อมกัน ภาพหน้าจอนี้ แสดงตัวอย่าง
หากต้องการรองรับสถานการณ์นี้ด้วย Google Play Billing Library ให้ทำดังนี้
Google Play จะเรียกใช้
[onPurchasesUpdated()][onPurchasesUpdated]
เมธอดเพื่อแจ้งให้เกมทราบว่ามีไอเทมใหม่ที่รอดำเนินการหากเกมมีเซิร์ฟเวอร์ เราขอแนะนำให้คุณ ยืนยันการซื้อจากเซิร์ฟเวอร์ โดยใช้ Subscriptions and In-App Purchases API
รับทราบการซื้อด้วย
consumeAsync()
สำหรับไอเทมที่ใช้แล้วหมดไป หรือด้วยacknowledgePurchase()
สำหรับไอเทมที่อยู่ตลอดไปให้สิทธิ์ในไอเทมที่ซื้อภายในเกม
แสดงการยืนยันการนำส่ง
เมื่อผู้ใช้แลกแต้ม Play และได้รับไอเทมแลกรับ ผู้ใช้จะคาดหวังให้เกม แสดงข้อความในเกมหรือใช้การแจ้งเตือนบางอย่างเพื่อแจ้งให้ผู้ใช้ทราบ ว่าเกมได้รับและประมวลผลไอเทมอย่างถูกต้อง ตัวเลือกการยืนยันการนำส่งมีดังนี้
แสดงกล่องโต้ตอบในเกม
ส่งข้อความไปยังกล่องข้อความในเกม และระบุอย่างชัดเจนว่ามีข้อความใหม่ในกล่องข้อความในเกม
ใช้ข้อความการแจ้งเตือนของระบบปฏิบัติการ
เกมอาจอยู่ในสถานะใดก็ได้เมื่อได้รับไอเทมโปรโมชัน ซึ่งรวมถึงสถานะที่ไม่ได้ติดตั้งในอุปกรณ์ คุณต้องตรวจหารายการส่งเสริมการขายไม่ว่าเกมจะอยู่ในสถานะใดเมื่อได้รับรายการ ดังกล่าว อย่างไรก็ตาม มีข้อยกเว้นบางกรณีที่อาจยอมรับได้หากไม่แจ้งให้ผู้ใช้ทราบทันทีว่าได้รับรายการแล้ว เช่น
ในระหว่างการแข่งขัน ซึ่งการแสดงข้อความอาจรบกวนผู้ใช้ ในกรณีนี้ คุณต้องแจ้งให้ผู้ใช้ทราบหลังจากที่การดำเนินการสิ้นสุดลง
ในฉากคัตซีน ซึ่งการแสดงข้อความอาจรบกวนผู้ใช้ ในกรณีนี้ คุณต้องแจ้งให้ผู้ใช้ทราบหลังจากฉากคัตซีนจบลง
ในระหว่างบทแนะนำเบื้องต้นและส่วนการตั้งค่าผู้ใช้ของเกม เราขอแนะนำให้คุณ แจ้งให้ผู้ใช้ใหม่ทราบถึงรางวัลทันทีหลังจากที่ผู้ใช้เปิดเกมหรือในระหว่าง การตั้งค่าผู้ใช้ครั้งแรก อย่างไรก็ตาม คุณสามารถรอจนกว่าลำดับเกมหลักจะพร้อมใช้งานเพื่อแจ้งให้ผู้ใช้ทราบได้
หากแอปมีตัวละครหรือบัญชีหลายรายการที่ใช้ไอเทมได้ เราขอแนะนำให้คุณแจ้งให้ผู้ใช้เลือกบัญชีที่จะรับไอเทมโปรโมชัน
คำนึงถึงผู้ใช้เมื่อตัดสินใจว่าจะแจ้งเตือนผู้ใช้เกี่ยวกับสินค้าโปรโมชันเมื่อใดและอย่างไร ทุกครั้งที่ผู้ใช้ไม่ได้รับการแจ้งเตือนทันที ผู้ใช้อาจสับสน หยุดเล่นเกม ติดต่อทีมสนับสนุนผู้ใช้ หรือบ่นเกี่ยวกับปัญหานี้บนโซเชียลมีเดีย
ข้อมูลอัปเดตสำหรับเกมเอนจินที่เฉพาะเจาะจง
ข้อควรพิจารณาสำหรับเกมเอนจินบางรายการมีดังนี้
หากเกมของคุณสร้างด้วย Unity เราขอแนะนําให้คุณตรวจสอบว่าการติดตั้งใช้งาน IAP ที่คุณใช้อยู่รองรับโปรโมชัน Play Points แล้วหรือไม่
หากสร้างเกมด้วย Cocos2d-x หรือ Unreal Engine (C/C++) คุณอาจต้องเขียนโค้ด JNI ที่เรียกใช้ Java API จากโค้ด C/C++
แนวทางปฏิบัติแนะนำฝั่งเซิร์ฟเวอร์
ส่วนนี้มีแนวทางปฏิบัติแนะนำฝั่งเซิร์ฟเวอร์สำหรับการใช้โปรโมชัน Play Points ดังนี้
หากคุณเรียกใช้
Purchases.products: get
ในเซิร์ฟเวอร์ ให้ตรวจสอบว่าคุณต้องจัดการไอเทมแลกรับรางวัล Play และผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวอื่นๆ แยกกันหรือไม่ตามค่าproductId
หากใช้
Onetimeproducts: list
ในเซิร์ฟเวอร์ ให้ตรวจสอบว่าคุณต้องแยกไอเทมการแลกรับรางวัล Play ออกจากผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวอื่นๆ หรือไม่โดยใช้ค่าproductId
โปรดอ่านแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อตรวจสอบว่าคุณต้องทำการเปลี่ยนแปลงเพิ่มเติมหรือไม่
- ข้อมูลอ้างอิง
- ใช้การยืนยันลายเซ็นฝั่งเซิร์ฟเวอร์
- ตรวจสอบว่าค่า
purchaseToken
และorderId
ไม่ซ้ำกันและยังไม่เคยใช้มาก่อน
การแก้ปัญหา
ส่วนนี้มีคำแนะนำสำหรับสถานการณ์ที่อาจทำให้ลูกค้าสอบถาม
บัญชีผู้ใช้หลายบัญชี
หากผู้ใช้มีบัญชี Google หลายบัญชีในอุปกรณ์และแลกคะแนน Play
ในบัญชีที่ไม่ถูกต้อง Google จะโอนไอเทมไปยังบัญชีอื่นๆ ไม่ได้
ในทำนองเดียวกัน แอปของคุณจะโอนไอเทมโดยเรียกใช้เมธอด
getPurchases()
ไม่ได้ ในสถานการณ์นี้ ให้พิจารณาการมอบไอเทมในแอปให้แก่ผู้ใช้ด้วยตนเองโดยใช้การดำเนินการสนับสนุนลูกค้า
สินค้าล่าช้าหรือสูญหาย
หากผู้เล่นได้รับไอเทมรางวัลล่าช้าหรือไม่ได้รับ ให้ดูคำแนะนำในการแก้ปัญหาสำหรับการซื้อในแอป ในเอกสารประกอบความช่วยเหลือของ Google Play