Register now for Android Dev Summit 2019!

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 produtos 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, você não deve indicar 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 passar 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 é chamado pela biblioteca do Google Play Faturamento 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 que o usuário comprou. 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ê optar por 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.

Próximas etapas

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