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

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

Функция «Многопродукт за разовый продукт» (OTP) позволяет объединить несколько разовых продуктов в один. Эти пакеты продуктов можно приобретать, оплачивать и управлять ими совместно. Вы также можете создавать скидки на эти пакеты OTP, чтобы стимулировать покупку.

Соображения

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

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

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

В этом разделе предполагается, что вы знакомы с начальными этапами интеграции PBL, такими как добавление зависимости PBL в ваше приложение , инициализация BillingClient и подключение к Google Play . В этом разделе рассматриваются аспекты интеграции PBL, характерные для покупок одноразовых кодов (OTP) нескольких продуктов.

Запустить процесс покупки

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

  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 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) из нескольких товаров и показывает подробные списки приобретенных товаров. В разделе управления заказами вы можете отозвать, отменить или полностью вернуть средства за покупку пользователя.