Configuración y conectividad
Esta guía explica cómo gestionar las versiones de la aplicación, manejar las variantes de compilación específicas y verificar el enlace de comunicación entre su Sistema Host y el dispositivo Pinpad.
Versionado de la aplicación
La aplicación sigue un formato de versionado semántico y una convención interna específica para garantizar la trazabilidad de la compilación y la compatibilidad con el sistema operativo (OS).
Formato de versionado
El versionado sigue el formato X.Y.Z-rc:
- X (Versión Principal): Versión principal del software.
- Y (Versión Secundaria): Adición de nuevas funcionalidades.
- Z (Revisión): Revisiones de código o correcciones de errores.
- rc: Siglas de “release candidate” (candidato a lanzamiento).
Convención de versionado
Para actualizar la versión, modifique el versionCode y el versionName en el archivo build.gradle.kts(:app). Este proyecto requiere que el versionCode (un número entero utilizado por Android) coincida con el versionName tras eliminar todos los caracteres no numéricos.
Ejemplo: Si
versionNamees “1.9.8-rc”, elversionCodedebe ser 198.
Variantes de compilación
El proyecto Pinpad Getnet utiliza variantes de compilación para habilitar o deshabilitar la lógica funcional en tiempo de compilación mediante flags específicos.
Definiciones de flags
RemoveFlagScreen: Cuando es TRUE, activa la pantalla “Retire la Tarjeta” (Retire Tarjeta) al finalizar la transacción.EmvSpecialTags: Cuando es TRUE, habilita la transmisión de las etiquetas EMV9F1A,5F2Ay5F34en las respuestas de criptogramas.ChangeYDL: Cuando es TRUE, la pantalla de error durante una descarga remota (YDL) permanece visible indefinidamente hasta que se cierra manualmente. En este modo, la pantalla muestra detalles granulares, incluyendo el número de paquete fallido, volumen de bytes y ruta del fichero.
Tabla de mapeo de variantes
Seleccione la variante correspondiente a la combinación de flags requerida:
| 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 |
Compilación de variantes
- Abra la ventana de herramientas Build Variants en Android Studio (View > Tool Windows > Build Variants).
- Seleccione la variante deseada (ej.
F03Debug). - Para generar todos los APK de depuración simultáneamente, ejecute
./gradlew assembleDebugen el terminal. Tenga en cuenta que para entornos de producción se utilizaassembleRelease.
Verificación de conectividad (prueba de echo)
El comando Y0I (Echo Request) verifica el enlace serie y recupera los identificadores técnicos del terminal sin cambiar el estado de la interfaz de usuario (UI).
Solicitud [Sistema Host]
El Host debe enviar el siguiente payload:
| Campo | Valor | Atributo | Descripción |
|---|---|---|---|
<STX> | 02h | 1 H | Inicio de Mensaje (Start of Message) |
| [CID] | “Y0I” | 3 ANS | Identificador de Comando |
<ETX> | 03h | 1 H | Fin de Mensaje (End of Message) |
| {LRC} | Algoritmo | 1 H | Verificación de Error (Ver Integridad y Checksums) |
Una trama de solicitud de Echo mínima sería la siguiente:
<STX>Y0I<ETX>#Respuesta [Pinpad]
Si el enlace funciona, el Pinpad devuelve sus metadatos de hardware y software, separados por <FS> (Separadores de Campo - 1Ch).
| Campo | Atributo | Descripción |
|---|---|---|
| [CID] | 3 ANS | Identificador de Comando (“Y0I”) |
| [OWN] | 15 ANS | Propietario del Pinpad (“GETNET”) |
<FS> | 1 H | Separador de Campo |
| [VEN] | 1..15 ANS | ID del Fabricante (Obtenido del dispositivo) |
<FS> | 1 H | Separador de Campo |
| [MOD] | 1..15 ANS | Modelo del Pinpad (ej. “N750P”) |
<FS> | 1 H | Separador de Campo |
| [VOS] | 1..15 ANS | Versión del OS (ej. “Android 12”) |
<FS> | 1 H | Separador de Campo |
| [SOF] | 1..15 ANS | Versión de Software (ej. “1.9.7-rc”) |
<FS> | 1 H | Separador de Campo |
| [NSF] | 1..15 ANS | Número de Serie del Dispositivo |
Una trama de respuesta satisfactoria sería similar a la siguiente:
<ACK><STX>Y0IGETNET<FS>newland<FS>N750P<FS>Android 12<FS>1.9.7-rc<FS>NDB400005172<ETX>gPróximos pasos
Con la conectividad verificada y el sistema de compilación configurado, puede proceder a:
- Arquitectura y Conceptos Básicos: comprenda los módulos internos como
HandlerCommandsyTransaction. - Seguridad y Modelo de PIN: información sobre la generación de claves RSA y la inyección DUKPT.