Мультипродукт для одноразовых продуктов

В этом документе описывается, как интегрировать ваше приложение с функцией мультипродуктов Play Billing Library (PBL).

Функция объединения нескольких товаров в один пакет позволяет комбинировать несколько разовых товаров в один. Эти пакеты можно покупать, оплачивать и управлять ими совместно. Также можно создавать скидочные предложения для этих пакетов, чтобы стимулировать покупки.

Соображения

При создании разовых комплектов товаров учитывайте следующие моменты:

  • В рамках разового пакета услуг нельзя оформить подписку.
  • Нельзя объединить цифровой контент и услугу в одном разовом пакете товаров.
  • Входящие в комплект разовые продукты должны быть доступны для немедленной загрузки. Например, разовый комплект продуктов не может быть доступен для предварительного заказа, поскольку он недоступен для немедленной загрузки.
  • В многопродуктовой версии для разовых покупок опция аренды с правом выкупа не поддерживается.

Интеграция с библиотекой Play Billing.

В этом разделе предполагается, что вы знакомы с начальными этапами интеграции PBL, такими как добавление зависимости 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 определяет детали процесса покупки.

    В следующем примере показано, как запустить процесс выставления счетов для покупки нескольких товаров по одноразовому коду:

    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 в ваше приложение» . Единственное отличие заключается в том, что для покупок с использованием OTP-кода для нескольких товаров необходимо предоставить право доступа ко всем товарам, а не только к одному, чтобы пользователь мог получить несколько прав доступа за одну покупку. Покупка с использованием OTP-кода для нескольких товаров возвращает несколько товаров, которые можно получить, используя Purchase.getProducts() в библиотеке Google Play Billing, а затем список lineItems в purchases.products.get из API разработчика Google Play .

Уведомления для разработчиков в режиме реального времени

В RTDN поле sku не предоставляется для покупок нескольких товаров по OTP. Покупки нескольких товаров по OTP представляют собой более одного товара. Поэтому вы можете использовать API разработчиков Play для получения данных о покупке и просмотра всех товаров в ней.

Возврат средств

При покупке нескольких товаров по OTP пользователи не могут запрашивать возврат средств за отдельные товары, и вы также не можете осуществлять возврат средств за отдельные товары. Однако запрос и осуществление возврата средств за всю покупку нескольких товаров по OTP разрешены. Если вы отменяете покупку нескольких товаров по OTP для пользователя, все права, связанные с этой покупкой, аннулируются.

Финансовая отчетность и сверка

Используйте отчет «Доходы» , чтобы сопоставить ваши активные покупки нескольких товаров по системе OTP с выплатами Google и транзакциями в Play. Каждая позиция транзакции имеет идентификатор заказа. Для покупки нескольких товаров по системе OTP отчеты «Доходы» и «Предполагаемые продажи» будут содержать отдельные строки (с одинаковым идентификатором заказа) для каждой транзакции, такие как списание средств, комиссия, налог и возврат средств, для каждого задействованного товара.

Для отображения панелей мониторинга в Play Console:

  • В разделе «Финансовая отчетность» консоли представлены статистические данные о доходах в разбивке по отдельным продуктам.

  • Управление заказами отражает покупки нескольких товаров по системе OTP и отображает подробный список приобретенных товаров. В управлении заказами вы можете отменить, аннулировать или полностью вернуть деньги за покупку пользователя.