Vários produtos para produtos únicos

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

O recurso de vários produtos para produtos únicos (OTP, na sigla em inglês) permite 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 para incentivar a compra de produtos.

Considerações

Ao criar pacotes de produtos únicos, observe as seguintes considerações:

  • 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 únicos não pode ter uma compra de pré-encomenda porque não está disponível para download imediato.
  • O recurso de vários produtos para produtos únicos não oferece suporte à opção de compra de aluguel.

Integrar com a Biblioteca Play Faturamento

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

Iniciar um fluxo de compra

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

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

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

    O exemplo a seguir mostra como buscar todos os 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 BillingFlowParams.Builder.setProductDetailsParamsList método. 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 de OTP de vários produtos é o mesmo das compras de item único existentes , conforme descrito em Integrar a Biblioteca Google Play Faturamento ao seu app. A única diferença é que você precisa conceder o direito a todos os produtos em vez de apenas um para compras de OTP de vários produtos, para que o usuário possa receber vários direitos com uma única compra. Uma compra de OTP 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 na 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 conferir todos os itens nela.

Reembolsos

Em uma compra de OTP de vários produtos, os usuários não podem solicitar reembolsos de itens individuais, e você também não pode emitir reembolsos de itens individuais. No entanto, a solicitação e a emissão de reembolsos para toda a compra de OTP de vários produtos são permitidas. 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 reconciliação financeira

Use o relatório de ganhos para reconciliar suas compras ativas de OTP de vários produtos com pagamentos e transações do Google no Play. Cada item de linha de transação tem um código do pedido. Para uma compra de OTP de vários produtos, os relatórios de ganhos e vendas estimadas vão incluir linhas separadas (com o mesmo código do pedido) para cada transação, como cobrança, taxa, imposto e reembolso, para 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, é possível revogar, cancelar ou reembolsar totalmente a compra de um usuário.