일회성 제품의 멀티 제품

이 문서에서는 Play 결제 라이브러리 (PBL)의 다중 제품 기능을 앱과 통합하는 방법을 설명합니다.

일회성 제품 (OTP)의 다중 제품 기능을 사용하면 여러 일회성 제품을 단일 단위로 결합할 수 있습니다. 이렇게 번들로 묶인 제품은 함께 구매, 청구, 관리할 수 있습니다. 번들로 묶인 OTP에 대한 할인 혜택을 만들어 제품 구매를 유도할 수도 있습니다.

고려사항

일회성 제품 번들을 만들 때는 다음 사항을 고려하세요.

  • 일회성 제품 번들에는 정기 결제가 포함될 수 없습니다.
  • 동일한 일회성 제품 번들에 디지털 콘텐츠와 서비스를 함께 포함할 수 없습니다.
  • 번들로 묶인 일회성 제품은 즉시 다운로드할 수 있어야 합니다. 예를 들어 일회성 제품 번들은 즉시 다운로드할 수 없으므로 선주문 구매를 포함할 수 없습니다.
  • 일회성 제품의 다중 제품은 대여 구매 옵션을 지원하지 않습니다.

Play Billing Library와 통합

이 섹션에서는 앱에 PBL 종속 항목 추가, BillingClient 초기화 , Google Play 연결과 같은 초기 PBL 통합 단계를 잘 알고 있다고 가정합니다. 이 섹션에서는 다중 제품 OTP 구매와 관련된 PBL 통합 측면에 중점을 둡니다.

구매 흐름 시작

다중 제품 일회성 제품의 구매 흐름을 시작하려면 다음 단계를 따르세요.

  1. QueryProductDetailsParams.Builder.setProductList 메서드를 사용하여 모든 일회성 제품이 포함된 제품 목록을 만듭니다.

  2. BillingClient.queryProductDetailsAsync 메서드를 사용하여 모든 일회성 제품을 가져옵니다.

    다음 샘플에서는 모든 일회성 제품을 가져오는 방법을 보여줍니다.

    자바

    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 구매의 결제 절차를 시작하는 방법을 보여줍니다.

    자바

    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 결제 라이브러리 통합에 설명된 기존 단일 항목 구매와 동일합니다. 유일한 차이점은 다중 제품 OTP 구매의 경우 제품을 하나만 부여하는 대신 모든 제품에 대한 자격을 부여해야 하므로 사용자가 한 번의 구매로 여러 자격을 받을 수 있다는 것입니다. 다중 제품 OTP 구매는 Google Play 결제 라이브러리의 Purchase.getProducts()를 사용한 후 purchases.products.getlineItems 목록을 사용하여 가져올 수 있는 여러 항목을 반환합니다.

실시간 개발자 알림

sku 필드는 다중 제품 OTP 구매의 경우 RTDN에 제공되지 않습니다. 다중 제품 OTP 구매는 둘 이상의 제품을 나타냅니다. 따라서 Play Developer API를 사용하여 구매 데이터를 가져오고 모든 항목을 확인할 수 있습니다.

환불

다중 제품 OTP 구매에서 사용자는 개별 항목에 대한 환불을 요청할 수 없으며 개발자도 개별 항목에 대한 환불을 발행할 수 없습니다. 하지만 전체 다중 제품 OTP 구매에 대한 환불을 요청하고 발행하는 것은 허용됩니다. 사용자의 다중 제품 OTP 구매를 취소하는 경우 구매와 연결된 모든 자격이 취소됩니다.

재무 보고 및 조정

수익 보고서를 사용하여 활성 다중 제품 OTP 구매를 Play의 Google 지급 및 거래와 조정합니다. 각 거래 항목에는 주문 ID가 있습니다. 다중 제품 OTP 구매의 경우 수익 및 예상 판매 보고서에는 관련된 각 항목에 대해 청구, 수수료, 세금, 환불과 같은 각 거래에 대한 별도의 행 (동일한 주문 ID 포함)이 포함됩니다.

Play Console의 대시보드:

  • 콘솔의 재무 보고 섹션에 표시되는 수익 통계는 개별 제품별로 분류됩니다.

  • 주문 관리는 다중 제품 OTP 구매를 반영하고 구매한 항목의 항목별 목록을 표시합니다. 주문 관리에서 사용자의 구매를 취소하거나 완전히 환불할 수 있습니다.