Testar o Google Play Faturamento

Depois de implementar o Google Play Faturamento, é possível testar as compras dos seus produtos no aplicativo. Este documento tem quatro seções:

Preparar-se para o teste

Para preparar o teste da sua implementação do Google Play Faturamento, realize as seguintes tarefas:

  1. Publique seu aplicativo em uma faixa de teste fechada ou aberta no Google Play. Após a publicação de um aplicativo em uma faixa de teste, pode levar algumas horas até que ele esteja disponível para os testadores.
  2. Garanta que cada testador aceite o teste do seu aplicativo. No URL de ativação do seu teste, os testadores receberão um link para participar e uma explicação sobre o que significa ser um testador.

É possível testar em qualquer dispositivo de hardware equipado com Android que esteja executando o Android 1.6 ou posterior. É necessário que a versão mais atual do aplicativo do Google Play esteja instalada no dispositivo. Para ter informações gerais sobre como configurar um dispositivo para uso no desenvolvimento de aplicativos Android, consulte Uso de dispositivos de hardware.

Fazer o teste inicial do aplicativo do Google Play Faturamento

Testar com respostas estáticas

O Google Play Faturamento oferece uma combinação de IDs de produto reservados e respostas estáticas associadas que pode ser usada para testar sua implementação no serviço. Essas respostas permitem que você verifique se seu aplicativo está lidando corretamente com as respostas primárias do Google Play. É possível testar sua implementação do Google Play Faturamento usando essas respostas estáticas antes de envolver testadores e até mesmo se o aplicativo ainda não foi publicado.

Para testar sua implementação com respostas estáticas, faça uma solicitação no Google Play Faturamento usando um item especial que possua um ID do produto reservado. Cada ID do produto reservado retorna uma resposta estática específica do Google Play. Nenhum dinheiro é transferido quando você faz solicitações no Google Play Faturamento com os IDs de produto reservados. Além disso, não é possível especificar a forma de pagamento quando você faz uma solicitação de faturamento com um ID do produto reservado.

Observação: as respostas estáticas não podem ser usadas para testar assinaturas.

Não é preciso listar os produtos reservados na lista de produtos do seu aplicativo. O Google Play já conhece os IDs de produtos reservados. Além disso, não é necessário fazer upload do seu aplicativo para o Play Console a fim de realizar testes de resposta estática com os IDs de produto reservados. É possível apenas instalar o aplicativo em um dispositivo, fazer login no dispositivo e fazer solicitações de faturamento usando os IDs de produto reservados.

Observação: antes, era possível testar um aplicativo fazendo upload de uma versão de "rascunho" não publicada. Essa funcionalidade não é mais compatível. No entanto, é possível testar seu aplicativo com respostas estáticas antes mesmo de fazer upload para a Google Play Store. Para ver mais informações, consulte Testar com respostas estáticas.

Existem três IDs de produto reservados para testar respostas estáticas do Google Play Faturamento:

  • android.test.purchased

    Quando você faz uma solicitação no Google Play Faturamento com esse ID do produto, o Google Play responde como se você tivesse comprado um item. A resposta inclui uma string JSON, que contém informações falsas de compra (por exemplo, um código do pedido falso).

  • android.test.canceled

    Quando você faz uma solicitação no Google Play Faturamento com esse ID do produto, o Google Play responde como se a compra tivesse sido cancelada. Isso pode ocorrer quando um erro é encontrado no processamento do pedido, como um cartão de crédito inválido, ou quando você cancela o pedido de um usuário antes da cobrança.

  • android.test.item_unavailable

    Quando você faz uma solicitação no Google Play Faturamento com esse ID do produto, o Google Play responde como se o item que está sendo comprado não estivesse listado na lista de produtos do seu aplicativo.

Para fazer uma solicitação no Google Play Faturamento com um ID do produto reservado, crie uma solicitação REQUEST_PURCHASE normal. No entanto, em vez de usar um ID real de produto da lista de produtos do seu aplicativo, use um dos IDs de produto reservados.

Para testar o aplicativo usando os IDs de produto reservados, faça o seguinte:

  1. Modifique seu aplicativo para que ele use um dos três IDs de produto reservados durante o fluxo de compra. Para ter mais informações sobre como usar um ID do produto para fazer uma compra, consulte Ativar a compra de um produto no aplicativo.
  2. Instale seu aplicativo em um dispositivo equipado com Android.

    Não é possível usar o emulador para testar o Google Play Faturamento. Para tanto, é preciso instalar o aplicativo em um dispositivo.

    Para saber como instalar um aplicativo em um dispositivo, consulte Executar em um dispositivo.

  3. Faça login no seu dispositivo com a conta de desenvolvedor.

    Não será necessário usar uma conta de teste se você estiver testando apenas com IDs de produto reservados.

  4. Verifique se seu dispositivo está executando uma versão compatível do aplicativo Google Play ou MyApps.

    Se o dispositivo estiver executando o Android 3.0, o Google Play Faturamento exigirá a versão 5.0.12 (ou posterior) do aplicativo MyApps. Se o dispositivo estiver executando qualquer outra versão do Android, o Google Play Faturamento exigirá a versão 2.3.4 (ou posterior) do aplicativo Google Play. Para verificar a versão do aplicativo Google Play, inicie o aplicativo, abra o menu Configurações e role para baixo para visualizar as informações da versão.

  5. Execute seu aplicativo e faça uma compra usando um ID do produto reservado. O código em onPurchasesUpdated() precisa manipular corretamente a resposta estática. Para ter mais informações sobre como implementar onPurchasesUpdated(), consulte Ativar a compra de um produto no aplicativo.
  6. Teste novamente com os outros IDs de produto reservados.

Observação: a realização de solicitações do Google Play Faturamento com IDs de produto reservados substitui o sistema de produção normal do Google Play. Quando você envia uma solicitação do Google Play Faturamento para um ID do produto reservado, a qualidade do serviço não é comparável ao ambiente de produção.

Testar o fluxo de compra completo

Depois de concluir o teste de resposta estática e confirmar que a verificação de assinatura está funcionando no seu aplicativo, você poderá testar sua implementação do Google Play Faturamento fazendo compras reais no aplicativo. O teste de compras reais no aplicativo permite testar a experiência completa do Google Play Faturamento, incluindo as compras reais do Google Play e o fluxo de compra atual que os usuários terão no aplicativo.

Observação: você pode fazer testes completos do seu aplicativo publicando-os em uma faixa de teste fechada. Isso permite publicar o aplicativo na Google Play Store, mas limita a disponibilidade dele apenas aos testadores designados.

Para testar sua implementação do Google Play Faturamento com compras reais no aplicativo, é preciso usar uma conta de teste. Por padrão, a única conta de teste registrada é aquela associada à sua conta de desenvolvedor. É possível registrar outras contas de teste usando o Google Play Console. Se você não tiver configurado contas de teste antes, consulte Configurar contas de teste.

Uma conta de teste poderá comprar um item na sua lista de produtos somente se o item for publicado.

Para testar sua implementação do Google Play Faturamento com compras reais, siga estas etapas:

  1. Faça upload do seu aplicativo para uma faixa de teste fechada no Play Console.

    Observação: depois do upload inicial do aplicativo, os testadores de licença podem fazer compras a partir de versões de desenvolvimento do seu aplicativo sem precisar fazer upload para o Play Console. Isso permite usar versões de depuração assinadas e realizar alterações sem ter que fazer upload de uma nova versão a cada vez.

    Observação: antes, era possível testar um aplicativo fazendo upload de uma versão de "rascunho" não publicada. Essa funcionalidade não é mais compatível. Agora, é necessário publicar o aplicativo na faixa de teste fechada ou aberta. Para saber mais, consulte Aplicativos de rascunho não são mais compatíveis.

  2. Crie os produtos no aplicativo no Play Console. Para ter mais detalhes, consulte Criar um produto de aquisição única e Criar uma assinatura.
  3. Instale seu aplicativo em um dispositivo equipado com Android. Não é possível usar um emulador para testar o Google Play Faturamento. Para saber como instalar um aplicativo em um dispositivo, consulte Executar seu aplicativo em um dispositivo.
  4. Verifique se seu dispositivo está executando em uma versão compatível do aplicativo Google Play ou MyApps. Se o dispositivo estiver executando o Android 3.0, o Google Play Faturamento exigirá a versão 5.0.12 (ou posterior) do MyApps. Se o dispositivo estiver executando qualquer outra versão do Android, o Google Play Faturamento exigirá a versão 2.3.4 (ou posterior) do Google Play. Para saber como verificar a versão do Google Play, consulte Atualizar o Google Play.
  5. Faça compras no aplicativo.

Observação: a única maneira de alterar a conta principal em um dispositivo é fazer uma redefinição de fábrica. Não se esqueça de fazer login com sua conta principal primeiro.

Testar um app do Google Play Faturamento com o usuário

Configurar contas de teste

Para configurar uma conta de testador:

  1. Use o Play Console para fazer upload e publicar produtos no aplicativo que você quer que os testadores possam comprar. É possível carregar e publicar os itens no aplicativo antes de publicar o APK em si.
  2. Use o Console para desenvolvedores para criar contas de testador de licença:
    1. Navegue até Configurações > Detalhes da conta.
    2. Na seção "Teste de licença", adicione os endereços de e-mail dos testadores ao campo Contas do Gmail com acesso para testes.
    3. Salve as alterações. Os testadores podem começar a fazer compras dos seus produtos no aplicativo em até 15 minutos.

Observação: é necessário que as contas de teste estejam no dispositivo Android do testador. Se o dispositivo tiver mais de uma conta, a compra será realizada com a conta que fez o download do aplicativo. Se nenhuma das contas tiver feito o download, a compra será realizada com a primeira conta. Para confirmar a conta que está fazendo a compra, o usuário pode expandir a caixa de diálogo da compra.

Instruir os testadores a fazer compras de teste

Quando as contas de teste estiverem configuradas, será possível instruir os usuários a fazerem compras de teste. Veja abaixo alguns detalhes sobre o processo de compras de teste:

  • Testadores usarão o mesmo fluxo de compra no aplicativo que os futuros usuários.
  • Os testadores precisam fazer pelo menos duas compras, uma com a forma de pagamento "sempre aprovada" e outra com "sempre recusada". Essas formas de pagamento de teste garantem que seu aplicativo reaja adequadamente quando os pagamentos são aprovados ou recusados. A Figura 1 mostra essas formas de pagamento de teste na ordem em que aparecem dentro do fluxo de compra:
    Figura 1. Opções de instrumento de teste de forma de pagamento para um usuário de teste de licença
    Essas formas de pagamento são as únicas disponíveis para os testadores licenciados. Quando elas são usadas, o fluxo de compra retorna o resultado imediatamente.
  • Não são calculados impostos para compras de teste.
  • Os testadores licenciados não são cobrados pela compra.
  • O Google Play indica uma compra de teste exibindo um aviso no centro da caixa de diálogo de compras.

Observação: se você quiser realizar várias compras de teste para o mesmo produto no aplicativo, marque o item como consumido após cada compra. Para fazer isso, chame consumeAsync().

Testar com contas reais

Ao se preparar para lançar um aplicativo que usa o Google Play Faturamento, você pode usar as opções de lançamento fechado ou aberto do Google Play para validar e carregar testes na sua implementação antes de distribuir o aplicativo para todos os usuários.

Com grupos de teste fechados ou abertos, os usuários podem instalar seu aplicativo pelo Google Play e testar os produtos no aplicativo. Os usuários podem fazer compras reais que resultam em cobranças efetivas nas contas deles, usando qualquer forma de pagamento normal no Google Play.

Observação: se você incluir contas de licença de teste nos seus grupos de distribuição de teste fechados e abertos, esses usuários só poderão fazer compras de teste.

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

Testar promoções no aplicativo

Se seu aplicativo for compatível com promoções internas, teste os casos de uso a seguir.

O usuário resgata código promocional no aplicativo

Se o usuário resgatar um código promocional dentro do fluxo de compra do aplicativo, conforme descrito em Fazer solicitações de Faturamento em apps, o sistema chama o método onActivityResult() da sua atividade para lidar com a compra. Verifique se onActivityResult() lida com a compra adequadamente, seja o pagamento em dinheiro ou com um código promocional.

O usuário resgata código promocional na Google Play Store

Se o usuário resgatar um código promocional na Play Store, haverá vários fluxos de trabalho possíveis. Verifique cada um desses fluxos.

O aplicativo não está instalado

Se o usuário resgatar um código promocional de um aplicativo que não está instalado no dispositivo, a Play Store solicitará que o usuário o instale. Se o aplicativo estiver instalado, mas não atualizado, a Play Store solicitará que o usuário o atualize. Teste a sequência a seguir em um dispositivo que não tenha seu aplicativo instalado.

  1. O usuário resgata um código promocional do aplicativo na Play Store. A Play Store solicita que o usuário instale seu aplicativo.
  2. O usuário instala e inicializa o aplicativo. Verifique se, na inicialização, o aplicativo chama getPurchases() e detecta corretamente a compra que o usuário fez com o código promocional.
O aplicativo está instalado, mas não está em execução

Se o usuário resgatar um código promocional de um aplicativo instalado no dispositivo, a Play Store solicitará que o usuário abra o aplicativo em primeiro plano. Teste a sequência a seguir em um dispositivo que tenha seu aplicativo instalado, mas não em execução:

  1. O usuário resgata um código promocional do aplicativo na Play Store. A Play Store solicita que o usuário abra seu aplicativo em primeiro plano.
  2. O usuário inicializa o aplicativo. Verifique se, na inicialização, o aplicativo chama getPurchases() e detecta corretamente a compra que o usuário fez com o código promocional.
O aplicativo está instalado e em execução

Se o usuário resgatar um código promocional de um aplicativo em execução no dispositivo, a Play Store notificará o aplicativo por meio de um intent PURCHASES_UPDATED. Teste a sequência a seguir:

  1. O usuário inicializa o aplicativo. Verifique se o aplicativo se registrou adequadamente para receber o intent PURCHASES_UPDATED.
  2. O usuário inicia o aplicativo Play Store manualmente ou usando um URL gerado que inclui um código promocional e resgata o código promocional do aplicativo. A Play Store ativa um intent PURCHASES_UPDATED. Verifique se o callback BroadcastReceiver.onReceive() do seu aplicativo é ativado para lidar com o intent.
  3. O método onReceive() precisa responder ao intent chamando getPurchases(). Verifique se o aplicativo chama esse método e se detecta corretamente a compra que o usuário fez com o código promocional.
  4. O usuário retorna ao aplicativo. Verifique se o usuário possui o item comprado.

Testar recursos específicos de assinaturas

O fluxo de compra de produtos e assinaturas de aquisição única são semelhantes, mas as assinaturas têm outros cenários, como renovações de assinatura aprovadas ou recusadas. Para testar seu aplicativo em ambas as situações, é possível usar os métodos de pagamento "Instrumento de teste, aprovado sempre" e "Instrumento de teste, recusado sempre". Use esses instrumentos de pagamento para testar cenários além do cenário de assinatura aprovada.

Testar renovações de assinatura

As assinaturas de teste são renovadas mais rapidamente que o normal para facilitar os testes. A tabela a seguir identifica os tempos de renovação de teste para assinaturas de várias durações.

Observação: estes tempos são aproximados. Você pode notar algumas pequenas variações no tempo exato de um evento. Para compensar a variação, chame a API para visualizar o status atual após cada data de validade de assinatura.

Período de assinatura de produçãoTeste de renovação de assinatura
1 semana5 minutos
1 mês5 minutos
3 meses10 minutos
6 meses15 minutos
1 ano30 minutos

Observação: as assinaturas de teste serão renovadas até seis vezes.

Os recursos baseados em tempo disponíveis para assinaturas, como testes gratuitos, também são reduzidos para teste. A tabela a seguir identifica os períodos de tempo de teste associados aos recursos de assinatura baseados em tempo:

RecursoPeríodo de teste
Avaliação gratuita3 minutos
Período de preço inicialIgual ao período de teste de assinatura
Período de carência (três e sete dias) 5 minutos
Suspensão de conta10 minutos

Cenários de teste de taxa de renovação

Clique em Mostrar/ocultar para exibir vários cenários de teste que demonstram o intervalo de taxas de renovação.

Cancelar uma compra de teste concluída

O Google Play acumula compras de teste concluídas para cada usuário, mas não as transfere para processamento financeiro.

As compras de teste não são canceladas automaticamente, de modo que é conveniente cancelá-las de forma manual para continuar o teste. Para tanto, abra a página do aplicativo na Play Store. Se a compra de teste que você quer cancelar for uma assinatura, também será possível usar o método cancel() da API Purchases.subscriptions.

Importante: os métodos refund() e revoke() da API Purchases.subscriptions não são compatíveis com compras de teste.

Próximas etapas

Quando terminar de testar sua implementação do Google Play Faturamento, você estará pronto para publicar seu aplicativo no Google Play. Você pode seguir as etapas normais de preparação, assinatura e publicação no Google Play.