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
.jarde la biblioteca debe estar en tu carpetalibs/. - 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.45com.google.code.gson:gson:2.8.5
- Permisos: Los siguientes permisos deben estar declarados y otorgados:
android.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMINandroid.permission.INTERNETandroid.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.
- Implementar la Interfaz: Tu clase debe implementar
RedCLSPinPadInterfacepara escuchar eventos de conexión. - Conectar: Instancia
RedCLSPinPadManagercon unRedCLSConfigurationPinPadDataque incluya el número de serie del PIN pad en el camponame, y luego llama aconnectWithPinPad()(sin parámetros) para iniciar la conexión. - 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ónsea 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:
- Gestionar la Conectividad Bluetooth: Profundiza en el ciclo de vida del PIN pad y el monitoreo del estado.
- Crear una venta: Ejecuta transacciones de venta estándar.
- Seguridad y Vinculación de Dispositivos: Comprende la asociación de terminales y la seguridad.