Vários produtos para produtos únicos

Este documento descreve como integrar seu app ao recurso de vários produtos da Biblioteca Play Faturamento (PBL).

Com o recurso de vários produtos para um produto único (OTP, na sigla em inglês), é possível combinar vários produtos únicos em uma única unidade. Esses produtos agrupados podem ser comprados, faturados e gerenciados coletivamente. Também é possível criar ofertas de desconto para esses OTPs agrupados e incentivar a compra de produtos.

Considerações

Ao criar pacotes de produtos únicos, considere o seguinte:

  • Não é possível ter assinaturas em um pacote de produtos únicos.
  • Não é possível ter uma combinação de conteúdo digital e serviço no mesmo pacote de produtos únicos.
  • Os produtos únicos agrupados precisam estar disponíveis para download imediato. Por exemplo, um pacote de produtos único não pode ser comprado na pré-venda porque não está disponível para download imediato.
  • O multiproduto para produtos únicos não é compatível com a opção de compra de aluguel.

Integrar com a Biblioteca Play Faturamento

Esta seção pressupõe que você já conhece as etapas iniciais de integração do PBL, como adicionar a dependência do PBL ao seu app, inicializar o BillingClient e conectar ao Google Play. Esta seção se concentra nos aspectos da integração do PBL específicos para compras de OTP de vários produtos.

Iniciar um fluxo de compra

Para iniciar um fluxo de compra de produtos únicos com vários itens, siga estas etapas:

  1. Crie uma lista de produtos com todos os produtos únicos usando o método QueryProductDetailsParams.Builder.setProductList.

  2. Extraia todos os seus produtos únicos usando o método BillingClient.queryProductDetailsAsync.

    O exemplo a seguir mostra como buscar todos os seus produtos únicos:

    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. Defina o objeto ProductDetails para cada produto único.

  4. Especifique os detalhes do produto único no método BillingFlowParams.Builder.setProductDetailsParamsList. A classe BillingFlowParams especifica os detalhes de um fluxo de compra.

    O exemplo a seguir mostra como iniciar o fluxo de faturamento para uma compra de OTP de vários produtos:

    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);

Processar compras

O processamento de compras únicas de vários produtos é igual ao das compras de um único item, conforme descrito em Integrar a Biblioteca Google Play Faturamento ao app. A única diferença é que você precisa conceder direitos a todos os produtos em vez de apenas um para compras únicas de vários produtos. Assim, o usuário pode receber vários direitos com uma única compra. Uma compra única de vários produtos retorna vários itens que podem ser recuperados usando Purchase.getProducts() na Biblioteca Google Play Faturamento e, em seguida, a lista lineItems em purchases.products.get da API Google Play Developer.

Notificações do desenvolvedor em tempo real

O campo sku não é fornecido no RTDN para compras de OTP de vários produtos. As compras de OTP de vários produtos representam mais de um produto. Portanto, você pode usar as APIs Play Developer para receber os dados de compra e ver todos os itens neles.

Reembolsos

Em uma compra de OTP de vários produtos, os usuários não podem pedir reembolsos de itens individuais, e você também não pode emitir reembolsos de itens individuais. No entanto, é permitido solicitar e emitir reembolsos para toda a compra de OTP de vários produtos. Se você estiver cancelando uma compra de OTP de vários produtos para um usuário, todos os direitos associados à compra serão cancelados.

Relatórios e conciliação financeira

Use o Relatório de ganhos para conciliar suas compras ativas de OTP de vários produtos com os pagamentos e transações do Google no Play. Cada item de linha de transação tem um ID do pedido. Em uma compra única de vários produtos, os relatórios de ganhos e vendas estimadas incluem linhas separadas (com o mesmo ID do pedido) para cada transação, como cobrança, taxa, tributo e reembolso, de cada item envolvido.

Para painéis no Play Console:

  • As estatísticas de receita apresentadas na seção Relatórios financeiros do console são divididas por produtos individuais.

  • O gerenciamento de pedidos reflete compras de OTP de vários produtos e mostra listas detalhadas do que foi comprado. No gerenciamento de pedidos, você pode revogar, cancelar ou reembolsar totalmente a compra de um usuário.