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
versionNamefor “1.9.8-rc”, oversionCodedeve 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 EMV9F1A,5F2Ae5F34nas 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:
| Variante | Bits | ChangeYDL | EmvSpecialTags | RemoveFlagScreen |
|---|---|---|---|---|
| F00 | 000 | FALSE | FALSE | FALSE |
| F01 | 001 | FALSE | FALSE | TRUE |
| F02 | 010 | FALSE | TRUE | FALSE |
| F03 | 011 | FALSE | TRUE | TRUE |
| F04 | 100 | TRUE | FALSE | FALSE |
| F05 | 101 | TRUE | FALSE | TRUE |
| F06 | 110 | TRUE | TRUE | FALSE |
| F07 | 111 | TRUE | TRUE | TRUE |
Compilando variantes
- Abra a janela de ferramentas Build Variants no Android Studio (View > Tool Windows > Build Variants).
- Selecione a variante desejada (ex:
F03Debug). - Para gerar todos os APKs de depuração simultaneamente, execute
./gradlew assembleDebugno 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:
| Campo | Valor | Atributo | Descrição |
|---|---|---|---|
<STX> | 02h | 1 H | Início da Mensagem (Start of Message) |
| [CID] | “Y0I” | 3 ANS | Identificador do Comando |
<ETX> | 03h | 1 H | Fim da Mensagem (End of Message) |
| {LRC} | Algoritmo | 1 H | Verificaçã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).
| Campo | Atributo | Descrição |
|---|---|---|
| [CID] | 3 ANS | Identificador do Comando (“Y0I”) |
| [OWN] | 15 ANS | Proprietário do Pinpad (“GETNET”) |
<FS> | 1 H | Separador de Campo |
| [VEN] | 1..15 ANS | ID do Fabricante (Recuperado do dispositivo) |
<FS> | 1 H | Separador de Campo |
| [MOD] | 1..15 ANS | Modelo do Pinpad (ex: “N750P”) |
<FS> | 1 H | Separador de Campo |
| [VOS] | 1..15 ANS | Versão do OS (ex: “Android 12”) |
<FS> | 1 H | Separador de Campo |
| [SOF] | 1..15 ANS | Versão do Software (ex: “1.9.7-rc”) |
<FS> | 1 H | Separador de Campo |
| [NSF] | 1..15 ANS | Nú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>gPróximos passos
Com a conectividade verificada e o sistema de compilação configurado, você pode prosseguir para:
- Arquitetura & Conceitos Principais: Entenda os módulos internos como
HandlerCommandseTransaction. - Modelo de Segurança & PIN: Saiba mais sobre a geração de chaves RSA e injeção DUKPT.