Getnet DocsGetnet Docs

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 versionName es “1.9.8-rc”, el versionCode debe 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 EMV 9F1A, 5F2A y 5F34 en 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:

VarianteBitsChangeYDLEmvSpecialTagsRemoveFlagScreen
F00000FALSEFALSEFALSE
F01001FALSEFALSETRUE
F02010FALSETRUEFALSE
F03011FALSETRUETRUE
F04100TRUEFALSEFALSE
F05101TRUEFALSETRUE
F06110TRUETRUEFALSE
F07111TRUETRUETRUE

Compilación de variantes

  1. Abra la ventana de herramientas Build Variants en Android Studio (View > Tool Windows > Build Variants).
  2. Seleccione la variante deseada (ej. F03Debug).
  3. Para generar todos los APK de depuración simultáneamente, ejecute ./gradlew assembleDebug en el terminal. Tenga en cuenta que para entornos de producción se utiliza assembleRelease.

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:

CampoValorAtributoDescripción
<STX>02h1 HInicio de Mensaje (Start of Message)
[CID]“Y0I”3 ANSIdentificador de Comando
<ETX>03h1 HFin de Mensaje (End of Message)
{LRC}Algoritmo1 HVerificació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).

CampoAtributoDescripción
[CID]3 ANSIdentificador de Comando (“Y0I”)
[OWN]15 ANSPropietario del Pinpad (“GETNET”)
<FS>1 HSeparador de Campo
[VEN]1..15 ANSID del Fabricante (Obtenido del dispositivo)
<FS>1 HSeparador de Campo
[MOD]1..15 ANSModelo del Pinpad (ej. “N750P”)
<FS>1 HSeparador de Campo
[VOS]1..15 ANSVersión del OS (ej. “Android 12”)
<FS>1 HSeparador de Campo
[SOF]1..15 ANSVersión de Software (ej. “1.9.7-rc”)
<FS>1 HSeparador de Campo
[NSF]1..15 ANSNú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>g

Próximos pasos

Con la conectividad verificada y el sistema de compilación configurado, puede proceder a:

  1. Arquitectura y Conceptos Básicos: comprenda los módulos internos como HandlerCommands y Transaction.
  2. Seguridad y Modelo de PIN: información sobre la generación de claves RSA y la inyección DUKPT.