Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

Adicionar recursos específicos de produto de aquisição única

Este documento explica como implementar funcionalidades específicas para produtos de aquisição única.

O Google Play Faturamento é compatível com os seguintes tipos de produto de aquisição única:

  • Produtos de aquisição única não consumíveis são produtos que oferecem um efeito permanente, como um upgrade premium. Para evitar que os usuários comprem esses produtos novamente, não indique o consumo deles.

  • Produtos de aquisição única consumíveis são produtos que oferecem benefícios temporários e podem ser comprados novamente, como moedas e vidas extras em um jogo. Para disponibilizar novamente para compra um produto de aquisição única, é necessário enviar uma solicitação de consumo ao Google Play.

Indicar que um produto de aquisição única foi consumido

Para indicar que um produto de aquisição única foi consumido, chame consumeAsync() na sua instância de BillingClient e inclua o token de compra que o Google Play disponibilizará para a recompra. Você também precisa transmitir um objeto que implemente a interface ConsumeResponseListener. Esse objeto cuida do resultado da operação de consumo. É possível modificar o método onConsumeResponse() da interface ConsumeResponseListener, que é chamada pela Google Play Billing Library quando a operação é concluída.

As compras concluídas geram um token de compra, que é um identificador exclusivo representando um único produto no aplicativo comprado por um usuário. Você também pode recuperar o token associado chamando getPurchaseToken() em um objeto Purchase.

O exemplo a seguir ilustra o consumo de um produto usando o token de compra associado:

Kotlin

    val consumeParams =
        ConsumeParams.newBuilder()
            .setPurchaseToken(/* token */)
            .setDeveloperPayload(/* payload */)
            .build()

    billingClient.consumeAsync(consumeParams, { billingResult, outToken ->
        if (billingResult.responseCode == BillingResponse.OK) {
            // Handle the success of the consume operation.
            // For example, increase the number of coins inside the user's basket.
        }
    })

    

Java

    ConsumeParams consumeParams =
        ConsumeParams.newBuilder()
            .setPurchaseToken(/* token */)
            .setDeveloperPayload(/* payload */)
            .build();

    ConsumeResponseListener listener = new ConsumeResponseListener() {
        @Override
        public void onConsumeResponse(BillingResult billingResult, String outToken) {
                if (billingResult.getResponseCode() == BillingResponse.OK) {
                    // Handle the success of the consume operation.
                    // For example, increase the number of coins inside the user's basket.
        }
    };

    billingClient.consumeAsync(consumeParams, listener);

    

Como as solicitações de consumo podem falhar, é necessário verificar o servidor de back-end seguro para garantir que cada token de compra não tenha sido usado. Como alternativa, você pode esperar até receber uma resposta de consumo bem-sucedido do Google Play antes de fornecer o item. Se você decidir suspender as compras do usuário até que o Google Play envie uma resposta de consumo bem-sucedido, você precisará ter muito cuidado para não perder o controle da compra depois da solicitação de consumo.

Implementar uma promoção para um produto de aquisição única

Promoções, ou códigos promocionais, permitem que você ofereça produtos de aquisição única ou avaliações de assinatura gratuitamente para um número limitado de usuários. Para implementar códigos promocionais para produtos de aquisição única, consulte Implementar uma promoção.

A seguir

Depois de adicionar recursos de aquisição única específicos do produto, consulte as Práticas recomendadas.