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

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

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

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

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

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

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

ส่วนนี้จะถือว่าคุณคุ้นเคยกับขั้นตอนการผสานรวม PBL เบื้องต้น เช่น การเพิ่มทรัพยากร Dependency ของ 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 หลายรายการที่ใช้งานอยู่ กับรายได้และการทำธุรกรรมใน Play รายการธุรกรรมแต่ละรายการจะมีรหัสคำสั่งซื้อ สำหรับการซื้อ OTP หลายรายการ รายงานรายได้และยอดขายโดยประมาณจะมีแถวแยกกัน (ที่มีรหัสคำสั่งซื้อเดียวกัน) สำหรับธุรกรรมแต่ละรายการ เช่น การเรียกเก็บเงิน ค่าธรรมเนียม ภาษี และการคืนเงิน สำหรับแต่ละรายการที่เกี่ยวข้อง

สำหรับแดชบอร์ดใน Play Console

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

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