Dúvidas Frequentes POS Android
- Ao realizar uma transação com NFC, obtive o seguinte erro: SWITCH_INTERFACE, como prosseguir ?
SWITCH_INTERFACE ocorre quando o POS teve algum problema durante a comunicação com o cartão, nesse caso é preciso que use o chip em vez de NFC.
- Ocorreu o seguinte erro no POS: "ERRO DE CHAVE. POR FAVOR, RETORNE ESTA MÁQUINA PARA STONE". Como seguir?
Este é um pequeno bug já conhecido, estamos trabalhando na resolução, mas caso aconteça com você, basta reiniciar o seu terminal algumas vezes para que esta mensagem não interfira mais.
Fique tranquilo o erro não afeta a SDK, apenas um bug visual do terminal.
- Ao tentar ativar o POS ocorreu o seguinte erro : "COULD_NOT_ACTIVATE_WITH_ACCEPTOR_CONFIGURATION_UPDATE_DATA_NULL". Como seguir?
Este erro acontece quando o seu serial Number não foi adicionado ao seu Stonecode de teste. Para que isto ocorra, solicite o forms de adição para o time de Integrações no email [email protected].
- Tentei fazer uma transação no POS de Teste por meio do App de Pagamento e deu o seguinte erro: "ERRO DE PROCESSAMENTO". Como seguir?
Este erro acontece quando houve algum problema com as aplicações de Debug instaladas no POS. Para isto você precisa desinstalá-las e instalar novamente. Para ter acesso ao Drive com os Apps, coloque a #AppsDebug no seu canal de Slack para ter acesso ou verifique com o time de integrações.
- É possível alterar a fonte que sai na função addLine do CustomPrintProvider?
Infelizmente não é possível alterar a fonte da impressão da SDK com o addLine, apenas é o alinhamento. Para maior possibilidade de customização recomendamos a criação de uma imagem a partir de uma view do android, como na documentação.
- Para crédito a vista, devo enviar o campo InstalmentTransaction como 0 ou 1?
Para realizar transações de crédito a vista, deve-se enviar conforme exemplo abaixo, para que o SDK entenda que a forma de pagamento enviada é crédito a vista:
`amount = 500
typeOfTransaction = 'CREDIT'
instalmentTransaction = 0
- Consigo utilizar o Bluetooth do terminal SmartPOS?
Por normas de segurança PCI e da Stone o Bluetooth dos terminais é bloqueado, para conexões com leitores de código de barra por exemplo é possível utilizar a entrada usb dos terminais, mas não é possível utilizar o Bluetooth.
- Ao realizar uma transação ocorreu o seguinte erro: "Parcelamento ou número de parcelas inválido"
Para realizar transações de crédito a vista não é necessário enviar o campo installment_count , só enviar os campos amount, transactionType e installmentType sendo este ultimo sendo enviado = NONE.
E para o Débito é a mesma lógica.
- Não consegui passar VR/VA na maquininha.
Diferente das formas de pagamento Débito e Crédito onde a Stone realiza o processamento da transação, no caso de Vouchers é a empresa responsável pelo cartão que realiza o processamento dos pagamentos, por exemplo no caso da Alelo o estabelecimento que vai transacionar com alelo precisa estar credenciado na alelo e devidamente liberado por eles para só então habilitar essa forma de pagamento na Stone e começar a transacionar, mas isso apenas no ambiente de produção.
No ambiente de testes não temos comunicação com as empresas que gerenciam os vouchers, não sendo possivel realizar testes com essa forma de pagamento, sendo necessário testar direto no ambiente de produção.
- Ao realizar uma transação ocorreu o seguinte erro: "the task has already been executed (a task can be executed only once)"
Os provirdes são assíncronos, é necessário criar uma nova instância para executar uma nova execução de provider.
- É possível deixar a tela do terminal sempre acesa?
Infelizmente não é possível. Essa é uma configuração do POS para trabalhar a economia de bateria. Também entra no tema de modo quiosque, que demanda de uma certificação especifica para liberação que hoje não temos.
- Ao tentar ativar o terminal e realizar transações deu o seguinte erro: "StoneCode Inválido" ou "Estabelecimento Inválido"
No e-mail de SETUP que enviamos explicamos sobre essa situação, é necessário realizar o vinculo entre o terminal e o StoneCode, para isso basta preencher o formulário enviado no Passo 2, mas, caso a ativação já tenha sido feita, abaixo mostramos a solução:
Identificamos a causa do problema nos terminais Android de debug versão 6.9.0.
Se seu terminal está nesta versão e, ao ativar ou tentar realizar transações, retornava os erros abaixo:
- "StoneCode Inválido";
- "Estabelecimento Inválido - Não tente novamente".
Já é possível corrigir, realizando os passos abaixo:
- Desinstalar o package "br.com.stone.posandroid.datacontainer" usando o comando ADB UNINSTALL;
- Instalar este apk de acordo com o modelo do seu terminal. Após a instalação, o terminal passará por um "reset";
- Após a reinicialização, realize a associação do seu terminal com o stonecode de testes através deste formulário;
- Por último, basta ativar o terminal novamente com seu stonecode de testes e o problema será solucionado.
- Posso trabalhar com mais de um StoneCode?
Não, sempre 1:1. Se precisar de trocar, o ideal é desassociar o anterior para ativar o novo.
- Pode seguir a homologação sem a Função de ativação do terminal?
Podemos seguir sem, com o app importando o que já está ativo no POS.
Quando a pessoa recebe um POS novo, ao ativar pela primeira vez, pede o StoneCode. E esse seria o padrão para os demais produtos
Ao iniciar/ativar o sdk (https://sdkandroid.stone.com.br/reference/inicializando-o-sdk) há o objeto user model (https://sdkandroid.stone.com.br/reference/inicializando-o-sdk), que busca os dados que foram ativados naquele terminal, inclusive o StoneCode. É daí que você vai referenciar o SC do POS no seu app.
- O que são ATK's?
É o identificador único de uma transação, seja aprovada ou não. E as não-aprovadas mostram o porquê da recusa.
- O package cloud token é igual para todos os terminais?
Sim é igual para todos.
- Não entendi a questão do formulário de homologação que pergunta "Homologação, Assinatura ou ambos?"
Homologação + Assinatura de Aplicação --> É a primeira versão do seu app. Necessária a assinatura das chaves jks (àquelas usadas quando submete na loja do Google, por ex) para validarmos aqui. Elas não podem ser trocadas, pois são com elas que validamos as próximas versões do seu app
Apenas assinatura, release de app --> são as novas versões pós-homologação. Atualizações que você faça e precise atualizar no app para os clientes.
Dê uma olhada no nosso Guia do Desenvolvedor: https://docs.google.com/document/d/1imAavwSGi_Y6onLMqlZlr9LX1cSb7XrDAhhCa6kVkQM/edit#heading=h.a3iy9omram3a-
- Na Primeira versão é necessário colocar o SDK da Stone?
Não. Precisa enviar com a função de pagamentos. É impreterível.
- Tem que ser duas JKS diferentes em SANDBOX e PRODUÇÃO?
- Certifique-se de possuir a JKS específica da Gertec para prosseguir com a homologação.
- Uma vez com a JKS em mãos, você poderá gerar o aplicativo.
- Nós, da equipe, cuidaremos do processo de assinatura para permitir a instalação.
É essencial utilizar a JKS fornecida pela Stone para instalar o APK em terminais de debug, pois isso garantirá o correto funcionamento do processo de homologação.
Ao enviar o APK para homologação, lembre-se de incluir a mesma JKS utilizada na geração do aplicativo.
Caso precise atualizar para uma nova versão em produção, será necessário usar a mesma JKS usada durante a homologação. Nossos processos internos de versionamento viabilizam a instalação do app com sua JKS em terminais GPOS700X em produção.
- Ao realizar uma transação ocorreu o seguinte erro: "java.lang.IllegalStateException: KoinApplication has not been started"
Temos um exemplo de uso na nossa demo:https://github.com/stone-payments/demo-sdk-android/blob/1b756e23afedb21db5db59a8c4[…]/main/java/br/com/stonesdk/sdkdemo/activities/MainActivity.javaMas esse erro pode acontecer quando não é feita a inicialização do SDK.
- Erro: "ERROR=PED_PASS_NO_KEY_FOUND_ERROR"
Neste caso, tem que trocar o terminal pois chave transacional da Stone não está ativa.
Entre em contato com o nosso time de integrações pelo e-mail [email protected]. para que seja solicitado um novo terminal.
- Envio de log completo:
1 - Para isso adicione a seguinte dependência dentro do projeto de desenvolvimento do seu app:
debugImplementation "com.github.tony19:logback-android:2.0.0"
debugImplementation "br.com.stone.sdk.android:debugmode:4.0.3"
2 - Agora abra o CMD ou Terminal Linux e rode o comando abaixo usando o Logcat:
adb logcat > caminho/do/arquivo/nomedoarquivo.log
3 - Refaça todo o processo que gera o erro, desde o inicio até o momento que o erro é acionado.
4 - Agora volte ao Terminal ou CMD e pare o processo (Ctrl+c).5 - Será gerado um arquivo na pasta que definiu no passo 2.6 - Colete o arquivo .txt e nos envie por aqui.
Caso esteja com o terminal GPOS700X talvez seja necessário instalar um apk para habilitar a geração de logs, para isso basta seguir o passo a passo neste PDF:
(bit.ly/Correcoes_GPOS700X)
- Bloqueio de IP
Não necessariamente pode ser problema de bloqueio de IP, então, realize a seguinte ação:
- Atualizar a SDK para a versão mais recente
Estamos com a versão estável 4.77, vide https://sdkandroid.stone.com.br/reference/explicacao-deeplink. Caso esteja numa versão legada da SDK é recomendável realizar a atualização.
- Envio de Log completo
Neste caso, se a atualização não funcionar, encaminhe um e-mail contendo o log completo para nosso time de integrações ([email protected])
- Como tirar print do terminal?
Você pode tirar uma foto da tela usando o celular mesmo ou pode usar o Scrcpy, que é um plugin que espelha a tela do terminal na tela do computador.https://github.com/Genymobile/scrcpy
- As duas chaves necessárias para o PIX variam para cada estabelecimento, ou para cada terminal?
Igual/única para todos! Esse é para autenticação na API de Pix, apenas.O transacional é associado com o stonecode ativo na máquina.
- Ao realizar um cancelamento foi solicitado uma senha administrativa, onde eu consigo?
A senha administrativa é definida na ativação do terminal, caso não lembre, será necessário realizar o resete do mesmo, pelo menu ajustes > Restaurar Dados e ativa-lo novamente.