Getnet DocsGetnet Docs

Inicializar el SDK

Antes de procesar cualquier transacción, debes inicializar el Get Mini Android SDK. Este proceso establece el entorno, valida la licencia de tu aplicación y autentica tus credenciales de comercio para preparar el SDK para las operaciones de pago.

El ciclo de vida del SDK sigue una secuencia específica: Configuración → Autenticación (Inicio de Sesión) → Inicialización del PIN pad.

Requisitos

Antes de comenzar, asegúrate de que se completen los siguientes pasos:

  • SDK Añadido: El fichero .jar de la biblioteca debe estar en tu carpeta libs/.
  • Dependencias Obligatorias: Asegúrate de que las siguientes bibliotecas se añadan a tu build.gradle (requeridas para el inicio de sesión y seguridad):
    • org.bouncycastle:bcprov-jdk16:1.45
    • com.google.code.gson:gson:2.8.5
  • Permisos: Los siguientes permisos deben estar declarados y otorgados:
    • android.permission.BLUETOOTH
    • android.permission.BLUETOOTH_ADMIN
    • android.permission.INTERNET
    • android.permission.ACCESS_NETWORK_STATE
  • Credenciales: Necesitas una Licencia de Aplicación y Credenciales de Usuario válidas (usuario/contraseña).

Paso 1: Configuración de la biblioteca

El primer paso en el ciclo de vida del SDK es establecer la configuración global. Esto debe hacerse cada vez que se inicie la aplicación.

import redcls.itpvpc.RedCLSConfigurationLibrary
import redcls.itpvpc.constants.RedCLSConstantes

// 1. Establecer el entorno de ejecución (REAL por defecto)
RedCLSConfigurationLibrary.setiEntorno(RedCLSConstantes.ENTORNO_INTEGRACION)

// Entornos disponibles:
// RedCLSConstantes.ENTORNO_REAL
// RedCLSConstantes.ENTORNO_INTEGRACION
// RedCLSConstantes.ENTORNO_CCAL (Certificación)
// RedCLSConstantes.ENTORNO_DESARROLLO (reservado para Redsys)

// 2. Inicializar tu Licencia de Aplicación única
RedCLSConfigurationLibrary.setAppLicense("SU_CLAVE_DE_LICENCIA")

Paso 2: Login del comercio

A continuación, debes autenticarte para recuperar los detalles del comercio y el terminal requeridos para las transacciones. Este paso es obligatorio antes de cualquier operación con el PIN pad.

import redcls.itpvpc.RedCLSMerchantConfigurationManager
import redcls.itpvpc.data.RedCLSLoginData

val loginData = RedCLSLoginData(context, "usuario", "contraseña")

Thread {
    val response = RedCLSMerchantConfigurationManager.login(loginData)

    if (response.code == 0) {
        // Recuperar el terminal específico que utilizará para las transacciones
        val terminal = response.merchantList[0].terminalList[0]
        Log.d("GetMini", "Inicio de sesión exitoso para FUC: ${terminal.fuc}")

        // Proceder a la configuración del PIN pad usando el objeto 'terminal'
    } else {
        Log.e("GetMini", "Inicio de sesión fallido: ${response.desc}")
    }
}.start()

Para evitar requerir credenciales de usuario en cada inicio de la aplicación, considera implementar Login Transparente (Autologin) después de la primera autenticación exitosa.


Paso 3: Conexión e inicialización del PIN pad

La etapa final del ciclo de vida es vincular el SDK al PIN pad físico. Debes conectarte al dispositivo y realizar una inicialización única para sincronizar claves y parámetros del terminal.

  1. Implementar la Interfaz: Tu clase debe implementar RedCLSPinPadInterface para escuchar eventos de conexión.
  2. Conectar: Instancia RedCLSPinPadManager con un RedCLSConfigurationPinPadData que incluya el número de serie del PIN pad en el campo name, y luego llama a connectWithPinPad() (sin parámetros) para iniciar la conexión.
  3. Inicializar: Una vez conectado, llama a inicializarPinpad().
override fun conexionPinPadRealizada() {
    Log.d("GetMini", "Conexión establecida. Iniciando inicialización...")

    Thread {
        // RedCLSInitPinpadResponse contiene un campo 'status' (0 para OK)
        val initResponse = pinpadManager.inicializarPinpad()
        if (initResponse.status == 0) {
            Log.i("GetMini", "SDK Completamente Inicializado y Listo para Ventas")
        } else {
            Log.e("GetMini", "Fallo en la inicialización: ${initResponse.msgKO}")
        }
    }.start()
}

Manejo de fallos en el ciclo de vida

  • Errores de Configuración: Asegúrate de que la Licencia de Aplicación sea válida para el entorno actual. Una licencia generada para Integración no funcionará en el entorno Real.
  • Errores de Login: Verifica la conectividad a Internet. El SDK debe comunicarse con el servidor de pagos para validar las credenciales.
  • Errores del PIN pad: Asegúrate de que el PIN pad esté encendido, en modo de emparejamiento Bluetooth y dentro del alcance del dispositivo Android.

Próximos pasos

Con el SDK inicializado con éxito, puedes explorar guías detalladas de conectividad y pago: