ตรวจหาและส่งมอบไอเทมแบบครั้งเดียว

เอกสารนี้อธิบายวิธีตรวจหาและส่งไอเทมแบบเรียกเก็บเงินครั้งเดียวในเกม หลังจากที่ผู้เล่นซื้อด้วยแต้ม 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 ให้ทำการเปลี่ยนแปลงต่อไปนี้เพื่อตรวจหาไอเทมแบบเรียกเก็บเงินครั้งเดียวที่ได้รับนอกเกม

  1. ใน[onResume()][onResume]การเรียกกลับ[queryPurchases()][queryPurchases]ของเกม ให้เรียกใช้เมธอด [queryPurchases()][queryPurchases]เพื่อดึงรายการไอเทม เพื่อให้คุณระบุได้ว่าไอเทมใดที่ยังไม่ได้รับการรับทราบ

  2. หากเกมมีเซิร์ฟเวอร์ เราขอแนะนำให้คุณ ยืนยันการซื้อจากเซิร์ฟเวอร์ โดยใช้ Subscriptions and In-App Purchases API

  3. หากมีไอเทมที่คุณเป็นเจ้าของแต่ยังไม่ได้ยืนยัน ให้ยืนยันการซื้อด้วย [consumeAsync()][consumeAsync] สำหรับไอเทมที่ใช้แล้วหมดไป หรือด้วย [acknowledgePurchase()][acknowledgePurchase] สำหรับไอเทมที่ใช้แล้วไม่หมดไป

  4. ให้สิทธิ์ในไอเทมที่ซื้อภายในเกม

ตรวจหารายการที่ได้รับในโหมดแยกหน้าจอ

หากเกมรองรับโหมดหลายหน้าต่าง ผู้ใช้จะแลกแต้ม Play และรับไอเทมได้ขณะที่ เรียกใช้แอป Play Store และเกมพร้อมกัน ภาพหน้าจอนี้ แสดงตัวอย่าง

ภาพหน้าจอที่แสดงปุ่ม "แลกแต้ม" ขณะที่เกมกำลังทำงาน

หากต้องการรองรับสถานการณ์นี้ด้วย Google Play Billing Library ให้ทำดังนี้

  1. Google Play จะเรียกใช้[onPurchasesUpdated()][onPurchasesUpdated] เมธอดเพื่อแจ้งให้เกมทราบว่ามีไอเทมใหม่ที่รอดำเนินการ

  2. หากเกมมีเซิร์ฟเวอร์ เราขอแนะนำให้คุณ ยืนยันการซื้อจากเซิร์ฟเวอร์ โดยใช้ Subscriptions and In-App Purchases API

  3. รับทราบการซื้อด้วย consumeAsync() สำหรับไอเทมที่ใช้แล้วหมดไป หรือด้วย acknowledgePurchase() สำหรับไอเทมที่อยู่ตลอดไป

  4. ให้สิทธิ์ในไอเทมที่ซื้อภายในเกม

แสดงการยืนยันการนำส่ง

เมื่อผู้ใช้แลกแต้ม 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

  • โปรดอ่านแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อตรวจสอบว่าคุณต้องทำการเปลี่ยนแปลงเพิ่มเติมหรือไม่

การแก้ปัญหา

ส่วนนี้มีคำแนะนำสำหรับสถานการณ์ที่อาจทำให้ลูกค้าสอบถาม

บัญชีผู้ใช้หลายบัญชี

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

สินค้าล่าช้าหรือสูญหาย

หากผู้เล่นได้รับไอเทมรางวัลล่าช้าหรือไม่ได้รับ ให้ดูคำแนะนำในการแก้ปัญหาสำหรับการซื้อในแอป ในเอกสารประกอบความช่วยเหลือของ Google Play