Perguntas & Respostas
Inicialização e Configuração
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().
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.
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
attestationStatusaparece 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.Consulte também a seção Ambiente Sandbox.
Para fluxos que dependem de produção e das políticas das lojas, siga as orientações do onboarding e do suporte.
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 1 day ago
