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