Getnet DocsGetnet Docs

Configuração e conectividade

Este guia aborda como gerenciar versões do aplicativo, lidar com variantes de compilação específicas e verificar o link de comunicação entre o seu Sistema Host e o dispositivo Pinpad.

Versionamento do aplicativo

O aplicativo segue um formato de versionamento semântico e uma convenção interna específica para garantir a rastreabilidade da compilação e a compatibilidade com o sistema operacional (OS).

Formato de versionamento

O versionamento segue o formato X.Y.Z-rc:

  • X (Versão Principal): Versão principal do software.
  • Y (Versão Secundária): Adição de novas funcionalidades.
  • Z (Revisão): Revisões de código ou correções de bugs.
  • rc: Abreviação para “release candidate” (candidato a lançamento).

Convenção de versionamento

Para atualizar a versão, modifique o versionCode e o versionName no arquivo build.gradle.kts(:app). Este projeto exige que o versionCode (um número inteiro usado pelo Android) corresponda ao versionName com todos os caracteres não numéricos removidos.

Exemplo: Se o versionName for “1.9.8-rc”, o versionCode deve ser 198.

Variantes de compilação

O projeto Pinpad Getnet usa variantes de compilação para ativar ou desativar a lógica funcional em tempo de compilação por meio de flags específicas.

Definições de flag

  • RemoveFlagScreen: Quando TRUE, ativa a tela “Retire o Cartão” (Retire Tarjeta) após a conclusão da transação.
  • EmvSpecialTags: Quando TRUE, habilita a transmissão das tags EMV 9F1A, 5F2A e 5F34 nas respostas de criptograma.
  • ChangeYDL: Quando TRUE, a tela de erro durante um download remoto (YDL) permanece visível indefinidamente até ser fechada manualmente. Neste modo, a tela exibe detalhes granulares, incluindo o número do pacote que falhou, volume de bytes e caminho do arquivo.

Tabela de mapeamento de variantes

Selecione a variante correspondente à combinação de flags necessária:

VarianteBitsChangeYDLEmvSpecialTagsRemoveFlagScreen
F00000FALSEFALSEFALSE
F01001FALSEFALSETRUE
F02010FALSETRUEFALSE
F03011FALSETRUETRUE
F04100TRUEFALSEFALSE
F05101TRUEFALSETRUE
F06110TRUETRUEFALSE
F07111TRUETRUETRUE

Compilando variantes

  1. Abra a janela de ferramentas Build Variants no Android Studio (View > Tool Windows > Build Variants).
  2. Selecione a variante desejada (ex: F03Debug).
  3. Para gerar todos os APKs de depuração simultaneamente, execute ./gradlew assembleDebug no terminal. Observe que para ambientes de produção, assembleRelease é usado.

Verificação de conectividade (echo test)

O comando Y0I (Echo Request) verifica o link serial e recupera os identificadores técnicos do terminal sem alterar o estado da interface do usuário (UI).

Requisição [Sistema Host]

O Host deve enviar o seguinte payload:

CampoValorAtributoDescrição
<STX>02h1 HInício da Mensagem (Start of Message)
[CID]“Y0I”3 ANSIdentificador do Comando
<ETX>03h1 HFim da Mensagem (End of Message)
{LRC}Algoritmo1 HVerificação de Erro (Veja Integridade & Checksums)

Um quadro de requisição Echo mínimo seria o seguinte:

<STX>Y0I<ETX>#

Resposta [Pinpad]

Se funcional, o Pinpad retorna seus metadados de hardware e software, separados por <FS> (Separadores de Campo - 1Ch).

CampoAtributoDescrição
[CID]3 ANSIdentificador do Comando (“Y0I”)
[OWN]15 ANSProprietário do Pinpad (“GETNET”)
<FS>1 HSeparador de Campo
[VEN]1..15 ANSID do Fabricante (Recuperado do dispositivo)
<FS>1 HSeparador de Campo
[MOD]1..15 ANSModelo do Pinpad (ex: “N750P”)
<FS>1 HSeparador de Campo
[VOS]1..15 ANSVersão do OS (ex: “Android 12”)
<FS>1 HSeparador de Campo
[SOF]1..15 ANSVersão do Software (ex: “1.9.7-rc”)
<FS>1 HSeparador de Campo
[NSF]1..15 ANSNúmero de Série do Dispositivo

Um quadro de resposta bem-sucedido se assemelharia ao seguinte:

<ACK><STX>Y0IGETNET<FS>newland<FS>N750P<FS>Android 12<FS>1.9.7-rc<FS>NDB400005172<ETX>g

Próximos passos

Com a conectividade verificada e o sistema de compilação configurado, você pode prosseguir para:

  1. Arquitetura & Conceitos Principais: Entenda os módulos internos como HandlerCommands e Transaction.
  2. Modelo de Segurança & PIN: Saiba mais sobre a geração de chaves RSA e injeção DUKPT.