Perguntas & Respostas
Respostas para dúvidas comuns sobre inicialização, credenciais, sandbox, suporte e compatibilidade do SDK Tap to Pay Android.
Inicialização e Configuração
Encontre respostas rápidas para dúvidas comuns sobre inicialização, credenciais, sandbox, suporte e compatibilidade do SDK Tap to Pay Android.
O que é o kernelInitialize() e quando devo chamá-lo?
-
O
kernelInitialize()é o primeiro método obrigatório que deve ser chamado antes de usar qualquer funcionalidade do SDK. -
Onde chamar: chame na classe
Applicationdo app, dentro do métodoonCreate().
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
if (!TapOnPhone.kernelInitialize(this)) return
}
}- Essa condição evita a execução duplicada do código, garantindo que o kernel seja inicializado apenas uma vez.
Para mais informações, consulte a seção Inicialização do Kernel.
O que é o setConfig() e quando devo chamá-lo?
-
O
setConfig()é um método obrigatório usado para configurar as credenciais e as configurações do SDK em uma única chamada. -
Quando chamar: deve ser chamado após
kernelInitialize()e antes de usar qualquer outro método do SDK. -
O método recebe um objeto
ConfigParameterscontendo contexto, credenciais e configurações opcionais.
Para mais informações, consulte a seção Definir configurações do SDK.
A inicialização do SDK é obrigatória antes de realizar um pagamento?
-
Não. A inicialização é opcional e pode ser feita de duas formas:
-
Manualmente: chamando
TapOnPhone.initialize()antes do pagamento. -
Automaticamente: se não for feita manualmente, o SDK realizará a inicialização automaticamente quando você chamar
TapOnPhone.pay().
-
Manualmente: chamando
- A inicialização manual é recomendada para evitar tempo de espera no primeiro pagamento.
Para mais informações sobre o método de inicialização, consulte a seção Inicialização.
Posso criar a sessão antes de realizar o pagamento?
-
Sim. É possível e recomendado criar a sessão antes do pagamento usando o método
TapOnPhone.activateSession(). - Isso reduz o tempo de espera e melhora a experiência do usuário.
Para mais informações sobre ativação de sessão, consulte a seção Ativação da Sessão.
Qual é a melhor prática para otimizar o tempo de pagamento?
-
Para otimizar o tempo de pagamento e melhorar a experiência do usuário, recomenda-se:
-
Inicializar o SDK durante o carregamento do app: chamar
TapOnPhone.initialize()logo após osetConfig(). -
Ativar a sessão após a inicialização: chamar
TapOnPhone.activateSession()logo após a inicialização bem-sucedida. -
Pagar: chamar
TapOnPhone.pay()para iniciar o processo de pagamento.
-
Inicializar o SDK durante o carregamento do app: chamar
- Com essas práticas, o pagamento será mais rápido, pois tanto a inicialização quanto a criação da sessão já terão sido concluídas previamente.
Para mais detalhes, consulte as seções Inicialização e Ativação da Sessão.
É preciso inicializar o SDK toda vez que for feita uma venda?
- O SDK é inicializado apenas uma vez, não necessariamente antes de toda venda.
Depois de inicializado por quanto tempo a sessão fica ativa?
- Não existe um tempo limite. A sessão deve ser inicializada sempre que o app é encerrado ou antes de qualquer pagamento.
O que pode ocasionar o erro 2031 (TerminalCreationFailureCause.INTERNAL_ERROR)
-
Credenciais incorretas no processo de onboarding. Verifique novamente as credenciais abaixo:
clientIdclientSecret
-
Erro nas informações do seu aplicativo. Verifique se os dados abaixo estão corretos:
packageNameversionCodeSHA-256 Fingerprint
-
Verifique se o manifesto do seu aplicativo (
AndroidManifest.xml) não está com a configuração abaixo, pois isso pode impossibilitar a inicialização do SDK:
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
tools:node="remove">
</provider>Para mais informações sobre credenciais, consulte as seções Onboarding e Inicialização.
Credenciais e Segurança
Ofuscação de código pode dar problema no uso do SDK?
-
Sim. Nesses casos, adicione as seguintes configurações no arquivo
proguard-rules.pro:
-keep class com.zoop.sdk.** { *; }
-keep class com.mypinpad.tsdk.** { *; }
-keep class javax.naming.** { *; }
-keep class javax.naming.directory.** { *; }
-dontwarn javax.naming.**
-dontwarn javax.naming.directory.**O que pode dar erros de Attestation?
- Erros de attestation estão associados à não aprovação do aparelho pela Play Store e a outras métricas de segurança.
- Credenciais incorretas também podem ocasionar esse erro.
-
O
versionCodedo aplicativo na Play Store pode não estar liberado na Zoop. Verifique o range de versões liberado para uso. - Celular em modo Debug ou com root impedirá o uso do aplicativo com o SDK.
Ver também: Attestation e instanceId quando o attestationStatus aparece nas respostas de erro.
Celular em modo Debug ou realizado Root consegue funcionar com o SDK?
- Não. O app com o SDK nesses dois modos não passará nas etapas de segurança e provavelmente retornará um dos erros de Attestation.
Quanto tempo para receber as credenciais iniciais para integração?
- O SLA é de até 7 dias após o pedido de liberação.
É possível usar a mesma credencial em mais de um aplicativo?
- Não. As credenciais são únicas para cada aplicativo liberado na loja.
Como é possível identificar o celular que originou a transação?
-
As transações do SDK aceitam
metadataereferenceId, que podem conter informações para esse controle. - A implementação e o gerenciamento dessa identificação ficam a cargo do desenvolvimento do parceiro.
Ambiente de Teste
É possível testar em ambiente de desenvolvimento ou sandbox?
-
Sim. A partir do SDK 2.3.1, use a dependência
com.zoop.sdk:taponphone-sandbox-debugno Gradle no lugar de staging/production. - Para fluxos que dependem de produção e das políticas das lojas, siga as orientações do onboarding e do suporte.
Consulte também a seção Ambiente Sandbox.
Existe alguma previsão da Zoop ter um ambiente de teste/sandbox para desenvolvimento?
- Sim. O modo Sandbox está disponível no SDK a partir da versão 2.3.1 para integração e testes sem publicar o aplicativo na loja.
Consulte a seção Ambiente Sandbox.
Suporte e Desenvolvimento
Tem suporte a tecnologia React Native e Flutter?
- Não. A Zoop não oferece suporte para essas tecnologias.
- Garantir o funcionamento da integração em React Native ou Flutter é responsabilidade da equipe de desenvolvimento.
Após finalizar integração e desenvolvimento precisamos enviar para homologação da Zoop?
- Não.
- É necessário apenas enviar um vídeo do fluxo de pagamento completo do aplicativo desenvolvido até a tela de sucesso, com a animação da bandeira Visa e Elo.
Até que ponto vai o suporte técnico da Zoop no desenvolvimento do app?
- O suporte técnico na integração do app cobre apenas problemas associados diretamente ao SDK.
- A Zoop não oferece suporte ao desenvolvimento do aplicativo.
- É responsabilidade do parceiro garantir uma equipe técnica qualificada para realizar a integração.
É possível acessar o binário do SDK por fora do gerenciamento do Maven?
- Não.
O SDK posiciona o local do celular para aproximar o cartão?
- Não. Isso deve ser apresentado na animação de aproximação pelo próprio parceiro que realiza o desenvolvimento.
-
O SDK oferece a funcionalidade de verificar a antena NFC do dispositivo por meio da classe
CardProximityReader.
Para mais detalhes, consulte a seção Leitor de Proximidade.
É possível incluir animações personalizadas na tela de aproximação do cartão?
- Sim. No menu Configurações do Tema, é possível visualizar essa opção.
Tem algum limite sobre o tamanho da animação na configuração do tema?
- Não. Não há um limite determinado.
-
Como referência, essa animação está com largura de
343pxe altura de250px.
Compatibilidade
O que são páginas de memória de 16KB e por que preciso me preocupar com isso?
-
As páginas de memória de
16KBsão uma nova exigência do Google Play para aplicativos que visam o Android 15 ou versões mais recentes. - Essa mudança é necessária para garantir compatibilidade futura, otimização de memória e conformidade com as políticas do Google Play.
- Prazo: 31 de outubro de 2025, com possibilidade de extensão até 30 de maio de 2026.
-
Consequência: se as atualizações do seu app não forem compatíveis com páginas de
16KB, não será possível lançá-las após o prazo. -
A partir da versão 1.7.2, o SDK Zoop já inclui suporte para páginas de
16KB.


Updated 2 months ago
