เอกสารนี้อธิบายวิธีผสานรวมแอปกับฟีเจอร์หลายผลิตภัณฑ์ของ Play Billing Library (PBL)
ฟีเจอร์ผลิตภัณฑ์หลายรายการสำหรับผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียว (OTP) ช่วยให้คุณรวมผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวหลายรายการเป็นหน่วยเดียวได้ จากนั้นคุณจะซื้อ เรียกเก็บเงิน และจัดการผลิตภัณฑ์ที่รวมแพ็กเกจเหล่านี้ได้พร้อมกัน นอกจากนี้ คุณยังสร้างข้อเสนอส่วนลดสำหรับ OTP ที่รวมแพ็กเกจเหล่านี้เพื่อกระตุ้นการซื้อผลิตภัณฑ์ได้ด้วย
ข้อควรพิจารณา
เมื่อสร้างแพ็กเกจผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียว โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้
- คุณไม่สามารถรวมการสมัครใช้บริการไว้ในแพ็กเกจผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียว
- คุณไม่สามารถรวมเนื้อหาดิจิทัลและบริการไว้ในแพ็กเกจผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวเดียวกันได้
- ไอเทมแบบเรียกเก็บเงินครั้งเดียวที่รวมแพ็กเกจต้องพร้อมให้ดาวน์โหลดทันที เช่น ผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวจะไม่มีการซื้อแบบสั่งล่วงหน้าเนื่องจากไม่พร้อมให้ดาวน์โหลดทันที
- มัลติโปรดักชันสำหรับไอเทมแบบเรียกเก็บเงินครั้งเดียวยังไม่รองรับตัวเลือกการซื้อแบบเช่า
ผสานรวมกับ Play Billing Library
ส่วนนี้ถือว่าคุณคุ้นเคยกับขั้นตอนการผสานรวม PBL เริ่มต้น เช่น การเพิ่มทรัพยากร Dependency ของ PBL ลงในแอป การเริ่มต้น BillingClient และการเชื่อมต่อกับ Google Play ส่วนนี้จะมุ่งเน้นที่แง่มุมของการผสานรวม PBL ที่เฉพาะเจาะจงกับการซื้อ OTP แบบหลายผลิตภัณฑ์
เปิดตัวขั้นตอนการซื้อ
หากต้องการเปิดตัวขั้นตอนการซื้อสำหรับผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวหลายรายการ ให้ทำตาม ขั้นตอนต่อไปนี้
สร้างรายการผลิตภัณฑ์ที่มีผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวทั้งหมดโดยใช้เมธอด QueryProductDetailsParams.Builder.setProductList
ดึงข้อมูลไอเทมแบบเรียกเก็บเงินครั้งเดียวทั้งหมดโดยใช้วิธี
BillingClient.queryProductDetailsAsyncตัวอย่างต่อไปนี้แสดงวิธีดึงข้อมูลผลิตภัณฑ์แบบครั้งเดียวทั้งหมด
Java
billingClient.queryProductDetailsAsync( queryProductDetailsParams, new ProductDetailsResponseListener() { public void onProductDetailsResponse( BillingResult billingResult, QueryProductDetailsResult productDetailsResult) { // check billingResult // … // process productDetailsList returned by QueryProductDetailsResult ImmutableList
productDetailsList = productDetailsResult.getProductDetailsList(); for (ProductDetails productDetails : productDetailsList) { for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails : productDetails.getOneTimePurchaseOfferDetailsList()) { // … } } } }); ตั้งค่าออบเจ็กต์
ProductDetailsสำหรับผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวแต่ละรายการระบุรายละเอียดผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวในเมธอด
BillingFlowParams.Builder.setProductDetailsParamsListคลาสBillingFlowParamsจะระบุรายละเอียดของขั้นตอนการซื้อตัวอย่างต่อไปนี้แสดงวิธีเปิดตัวขั้นตอนการเรียกเก็บเงินสำหรับการซื้อ OTP แบบหลายผลิตภัณฑ์
Java
BillingClient billingClient = BillingClient.newBuilder() // set other options .build(); // ProductDetails obtained from queryProductDetailsAsync(). ProductDetails productDetails1 = ...; ProductDetails productDetails2 = ...; ArrayList
productDetailsList = new ArrayList<>(); productDetailsList.add(productDetails1); productDetailsList.add(productDetails2); BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList(productDetailsList) .build(); billingClient.launchBillingFlow(billingFlowParams);
ประมวลผลการซื้อ
การประมวลผลการซื้อ OTP แบบหลายผลิตภัณฑ์จะเหมือนกับการซื้อแบบไอเทมเดียวที่มีอยู่ ตามที่อธิบายไว้ในผสานรวม Google Play Billing Library เข้ากับแอป ความแตกต่างเพียงอย่างเดียวคือคุณต้องให้สิทธิ์สำหรับผลิตภัณฑ์ทั้งหมด แทนที่จะให้สิทธิ์เพียงรายการเดียวสำหรับการซื้อ OTP แบบหลายผลิตภัณฑ์ เพื่อให้ผู้ใช้รับสิทธิ์หลายรายการได้ด้วยการซื้อครั้งเดียว
การซื้อ OTP แบบหลายผลิตภัณฑ์จะแสดงผลหลายรายการซึ่งสามารถเรียกข้อมูลได้
โดยใช้ Purchase.getProducts() ใน Google
Play Billing Library จากนั้นใช้รายการ lineItems ใน
purchases.products.get ของ Google Play Developer API
การแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาซอฟต์แวร์
ไม่มีskuใน RTDN สำหรับการซื้อ OTP แบบหลายผลิตภัณฑ์
การซื้อ OTP แบบหลายผลิตภัณฑ์แสดงถึงผลิตภัณฑ์มากกว่า 1 รายการ ดังนั้น คุณ
จึงใช้ Play Developer API เพื่อรับข้อมูลการซื้อ
และดูรายการทั้งหมดในข้อมูลการซื้อได้
การคืนเงิน
ในการซื้อ OTP แบบหลายผลิตภัณฑ์ ผู้ใช้จะขอเงินคืนสำหรับแต่ละรายการไม่ได้ และคุณก็ไม่สามารถออกเงินคืนสำหรับแต่ละรายการได้เช่นกัน อย่างไรก็ตาม คุณสามารถขอและออกเงินคืนสำหรับการซื้อ OTP แบบหลายผลิตภัณฑ์ทั้งหมด ได้ หากคุณยกเลิกการซื้อ OTP แบบหลายผลิตภัณฑ์สำหรับผู้ใช้ ระบบจะยกเลิกสิทธิ์ทั้งหมดที่เชื่อมโยงกับการซื้อนั้น
การรายงานทางการเงินและการกระทบยอด
ใช้รายงานรายได้เพื่อกระทบยอดการซื้อ OTP แบบหลายผลิตภัณฑ์ที่ใช้งานอยู่ กับค่าตอบแทนและธุรกรรมของ Google ใน Play รายการบรรทัดธุรกรรมแต่ละรายการ จะมีรหัสคำสั่งซื้อ สำหรับการซื้อ OTP แบบหลายผลิตภัณฑ์ รายงานรายได้และยอดขายโดยประมาณจะมีแถวแยกกัน (มีรหัสคำสั่งซื้อเดียวกัน) สำหรับธุรกรรมแต่ละรายการ เช่น การเรียกเก็บเงิน ค่าธรรมเนียม ภาษี และการคืนเงิน สำหรับแต่ละรายการที่เกี่ยวข้อง
สำหรับแดชบอร์ดใน Play Console
สถิติรายได้ที่แสดงในส่วนการรายงานทางการเงินของ คอนโซลจะแบ่งตามผลิตภัณฑ์แต่ละรายการ
การจัดการคำสั่งซื้อจะแสดงการซื้อ OTP แบบหลายผลิตภัณฑ์ และแสดง รายการสินค้าที่ซื้อ จากการจัดการคำสั่งซื้อ คุณอาจ เพิกถอน ยกเลิก หรือคืนเงินเต็มจำนวนสำหรับการซื้อของผู้ใช้