이 문서에서는 Play 결제 라이브러리 (PBL)의 다중 제품 기능을 사용하여 앱을 통합하는 방법을 설명합니다.
일회성 제품 (OTP)용 다중 제품 기능을 사용하면 여러 일회성 제품을 단일 단위로 결합할 수 있습니다. 번들 제품은 일괄적으로 구매, 청구, 관리할 수 있습니다. 또한 이러한 번들 OTP에 대한 할인 혜택을 만들어 제품 구매를 유도할 수도 있습니다.
고려사항
일회성 제품 번들을 만들 때는 다음 사항을 고려하세요.
- 일회성 제품 번들에는 정기 결제가 포함될 수 없습니다.
- 동일한 일회성 제품 번들에는 디지털 콘텐츠와 서비스를 함께 포함할 수 없습니다.
- 번들로 제공되는 일회성 제품은 즉시 다운로드할 수 있어야 합니다. 예를 들어 일회성 제품 번들은 즉시 다운로드할 수 없으므로 선주문 구매가 불가능합니다.
- 일회성 제품의 다중 제품은 대여 구매 옵션을 지원하지 않습니다.
Play 결제 라이브러리와 통합
이 섹션에서는 앱에 PBL 종속 항목 추가, BillingClient 초기화, Google Play에 연결과 같은 초기 PBL 통합 단계를 잘 알고 있다고 가정합니다. 이 섹션에서는 다중 제품 OTP 구매와 관련된 PBL 통합 측면을 중점적으로 설명합니다.
구매 흐름 시작
다중 제품 일회성 제품의 구매 흐름을 시작하려면 다음 단계를 따르세요.
QueryProductDetailsParams.Builder.setProductList 메서드를 사용하여 모든 일회성 제품이 있는 제품 목록을 만듭니다.
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()) { // … } } } }); 일회성 제품마다
ProductDetails
객체를 설정합니다.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 Billing Library 통합에 설명된 기존 단일 항목 구매와 동일합니다. 유일한 차이점은 사용자가 단일 구매로 여러 권한을 받을 수 있도록 다중 제품 OTP 구매의 경우 하나의 권한만 부여하는 대신 모든 제품에 권한을 부여해야 한다는 것입니다.
다중 제품 OTP 구매는 여러 항목을 반환하며, 이 항목은 Google Play 결제 라이브러리에서 Purchase.getProducts()
를 사용한 후 Google Play Developer API의 purchases.products.get
에서 lineItems
목록을 사용하여 가져올 수 있습니다.
실시간 개발자 알림
다중 제품 OTP 구매의 경우 RTDN에 sku
필드가 제공되지 않습니다.
다중 제품 OTP 구매는 두 개 이상의 제품을 나타냅니다. 따라서 Play Developer API를 사용하여 구매 데이터를 가져오고 모든 항목을 확인할 수 있습니다.
환불
다중 제품 OTP 구매에서는 사용자가 개별 항목에 대해 환불을 요청할 수 없으며 개발자도 개별 항목에 대해 환불을 발행할 수 없습니다. 하지만 전체 다중 제품 OTP 구매에 대한 환불을 요청하고 발급하는 것은 허용됩니다. 사용자의 다중 제품 OTP 구매를 취소하는 경우 구매와 연결된 모든 권한이 취소됩니다.
재무 보고 및 조정
수익 보고서를 사용하여 활성 다중 제품 OTP 구매를 Google 지급 및 Play 거래와 조정합니다. 각 거래 항목에는 주문 ID가 있습니다. 여러 제품이 포함된 OTP 구매의 경우 수익 및 예상 매출 보고서에는 관련 항목별로 청구, 수수료, 세금, 환불과 같은 각 거래에 대한 별도의 행(주문 ID는 동일)이 포함됩니다.
Play Console의 대시보드:
콘솔의 재무 보고 섹션에 표시되는 수익 통계는 개별 제품별로 분류됩니다.
주문 관리에는 다중 제품 OTP 구매가 반영되고 구매한 항목의 목록이 표시됩니다. 주문 관리에서 사용자의 구매를 취소하거나, 취소하거나, 전액 환불할 수 있습니다.