หลายผลิตภัณฑ์สำหรับผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียว

เอกสารนี้อธิบายวิธีผสานรวมแอปกับฟีเจอร์หลายผลิตภัณฑ์ของ Play Billing Library (PBL)

ฟีเจอร์ผลิตภัณฑ์หลายรายการสำหรับผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียว (OTP) ช่วยให้คุณรวมผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวหลายรายการเป็นหน่วยเดียวได้ จากนั้นคุณจะซื้อ เรียกเก็บเงิน และจัดการผลิตภัณฑ์ที่รวมแพ็กเกจเหล่านี้ได้พร้อมกัน นอกจากนี้ คุณยังสร้างข้อเสนอส่วนลดสำหรับ OTP ที่แพ็กเกจเหล่านี้เพื่อกระตุ้นการซื้อผลิตภัณฑ์ได้ด้วย

ข้อควรพิจารณา

เมื่อสร้างแพ็กเกจผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียว โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้

  • คุณไม่สามารถรวมการสมัครใช้บริการไว้ในแพ็กเกจไอเทมแบบเรียกเก็บเงินครั้งเดียว
  • คุณไม่สามารถรวมเนื้อหาดิจิทัลและบริการไว้ในแพ็กเกจผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวเดียวกันได้
  • ไอเทมแบบเรียกเก็บเงินครั้งเดียวที่รวมแพ็กเกจต้องพร้อมให้ดาวน์โหลดทันที เช่น แพ็กเกจผลิตภัณฑ์แบบครั้งเดียวจะไม่มีการซื้อแบบสั่งจองล่วงหน้าเนื่องจาก ไม่พร้อมให้ดาวน์โหลดทันที
  • การซื้อหลายรายการสำหรับไอเทมแบบเรียกเก็บเงินครั้งเดียวยังไม่รองรับตัวเลือกการซื้อแบบเช่า

ผสานรวมกับ Play Billing Library

ส่วนนี้ถือว่าคุณคุ้นเคยกับขั้นตอนการผสานรวม PBL เริ่มต้น เช่น การเพิ่มการอ้างอิง PBL ลงในแอป การเริ่มต้น BillingClient และการเชื่อมต่อกับ Google Play ส่วนนี้จะมุ่งเน้นที่แง่มุมของการผสานรวม PBL ที่เกี่ยวข้องกับการซื้อ OTP แบบหลายผลิตภัณฑ์โดยเฉพาะ

เปิดตัวขั้นตอนการซื้อ

หากต้องการเปิดตัวขั้นตอนการซื้อสำหรับผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวที่มีหลายผลิตภัณฑ์ ให้ทำตามขั้นตอนต่อไปนี้

  1. สร้างรายการผลิตภัณฑ์ที่มีผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวทั้งหมดโดยใช้วิธี QueryProductDetailsParams.Builder.setProductList

  2. ดึงข้อมูลผลิตภัณฑ์แบบเรียกเก็บเงินครั้งเดียวทั้งหมดโดยใช้วิธี 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()) {
                 // …
          }
        }
      }
    });
  3. ตั้งค่าออบเจ็กต์ ProductDetails สำหรับผลิตภัณฑ์แบบครั้งเดียวแต่ละรายการ

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