В этом документе рассказывается, как интегрировать в приложение функцию поддержки нескольких продуктов из библиотеки Play Платежей (PBL).
Функция "Несколько товаров для разовой покупки" позволяет объединять несколько товаров для разовой покупки в один. После этого их можно будет покупать, оплачивать и администрировать вместе. Вы также можете создать предложения со скидкой для этих пакетов, чтобы стимулировать покупку товаров.
Что нужно учесть
При создании разовых наборов продуктов учитывайте следующее:
- В пакет контента для однократных покупок нельзя добавлять подписки.
- Нельзя объединять цифровой контент и сервис в одном пакете контента для однократных покупок.
- Контент, оплачиваемый однократно, должен быть доступен для скачивания сразу после покупки. Например, для контента для однократных покупок нельзя оформить предзаказ, поскольку его нельзя скачать сразу.
- Для контента, оплачиваемого однократно, не поддерживается аренда.
Как интегрировать библиотеку Play Платежей
В этом разделе предполагается, что вы знакомы с начальными этапами интеграции библиотеки Google Play Платежей, например добавлением зависимости 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содержит сведения о процессе покупки.В приведенном ниже примере показано, как запустить процесс оплаты для покупки нескольких товаров с помощью одноразового пароля:
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);
Обрабатывать покупки
Обработка покупок нескольких товаров с разовой оплатой выполняется так же, как и покупок одного товара, как описано в разделе Как интегрировать библиотеку Google Play Платежей в приложение. Единственное отличие заключается в том, что для покупок нескольких товаров с разовой оплатой нужно предоставить права на все товары, а не на один.
При покупке нескольких товаров с помощью одноразового кода возвращается несколько объектов, которые можно получить с помощью Purchase.getProducts() в библиотеке Google Play Платежей, а затем списка lineItems в purchases.products.get Google Play Developer API.
Уведомления для разработчиков в режиме реального времени
Поле sku не указано в RTDN для покупок с несколькими продуктами с помощью одноразового кода.
Покупки с помощью одноразового пароля, включающие несколько товаров. Поэтому вы можете использовать Play Developer API, чтобы получать данные о покупках и просматривать все товары в них.
Возврат средств
При покупке нескольких товаров с разовой оплатой пользователи не могут запрашивать возврат средств за отдельные товары, и вы тоже не можете его оформить. Однако можно запросить и оформить возврат средств за всю покупку с несколькими товарами. Если вы отменяете покупку нескольких продуктов с одноразовой оплатой для пользователя, отменяются все права, связанные с этой покупкой.
Финансовая отчетность и сверка
С помощью отчета о доходах можно сопоставить активные покупки с разовой оплатой нескольких продуктов с выплатами Google и транзакциями в Google Play. У каждой позиции в строке транзакции есть идентификатор заказа. Если пользователь приобрел несколько товаров с помощью одноразового кода, в отчетах о доходах и расчетных продажах будут отдельные строки (с одинаковым идентификатором заказа) для каждой транзакции, например списания средств, комиссии, налога и возврата, для каждого товара.
Для панелей управления в Play Console:
Статистика дохода, представленная в разделе Финансовые отчеты консоли, разбита по отдельным продуктам.
В управлении заказами отражаются покупки нескольких товаров с помощью одноразового кода, а также списки приобретенных товаров. В разделе управления заказами можно отозвать, отменить или полностью вернуть средства за покупку пользователя.