Getnet DocsGetnet Docs

Visión general del Get Smart SDK

Esta página proporciona una visión general de alto nivel de la biblioteca redsys-tpv-business-lib, explicando su propósito, diseño arquitectónico y el cambio técnico de los sistemas legados hacia un enfoque moderno nativo en Kotlin.

La redsys-tpv-business-lib es un Android SDK diseñado para actuar como una capa de abstracción segura entre tu aplicación y el Get Smart SDK Payment Service. Permite integrar funcionalidades de pago de forma rápida y segura sin gestionar la compleja lógica de negocio subyacente ni los protocolos de comunicación.

Esta biblioteca sustituye a la legada redsysTpvAndroidLib (paysyslib.jar). Proporciona acceso a todas las funcionalidades principales de Getnet, incluyendo:

  • Procesamiento de pagos: Gestión de pagos estándar.
  • Preautorizaciones: Gestión de la creación, confirmación y cancelación de preautorizaciones.
  • Gestión de operaciones: Acceso al historial de transacciones, gestión de sesiones y totales.
  • Devoluciones: Procesamiento de devoluciones.
  • Configuración: Gestión de ajustes y claves.

Arquitectura

La arquitectura de la solución consta de cuatro actores principales que interactúan para procesar pagos y gestionar el TPV:

  1. App: Su aplicación Android desarrollada por el integrador.
  2. redsys-tpv-business-lib: El SDK proporcionado por Getnet. Se conecta de forma segura con el Get Smart SDK Payment Service instalado en el dispositivo.
  3. Get Smart SDK Payment Service: Un servicio Android de segundo plano que se ejecuta en el dispositivo. Implementa la lógica de negocio, gestiona los protocolos de comunicación con el host y maneja las operaciones de bajo nivel.
  4. Host: El back-office en la nube de Getnet que procesa pagos, configuraciones, registros y otra lógica del TPV.

Flujo de datos

La arquitectura garantiza una clara separación de responsabilidades. Su aplicación interactúa con el SDK, que a su vez se comunica con el Payment Service local. El Payment Service se encarga de la ejecución real y de la comunicación con el Host remoto.

Filosofía de diseño

La redsys-tpv-business-lib adopta los estándares modernos de desarrollo de Android para facilitar la integración en las arquitecturas de aplicaciones actuales (como MVVM o Clean Architecture).

Kotlin-First y Coroutines

La biblioteca está desarrollada al 100% en Kotlin. Aprovecha las Kotlin Coroutines para gestionar tareas asíncronas de manera eficiente.

  • Suspend Functions: Todas las funciones de interfaz de la biblioteca se definen como suspend. Esto garantiza que las operaciones, que implican comunicación de red con el host, no bloqueen el hilo principal.
  • Context Management: Todas las ejecuciones cambian automáticamente a Dispatchers.IO para asegurar el contexto de hilo adecuado para las operaciones de red y disco.

Patrón Repository y Clean Architecture

La biblioteca sigue el Repository Pattern y los principios SOLID, organizando la funcionalidad en distintas interfaces (Repositorios) basadas en su dominio específico (p. ej., PaymentRepository, InitializationRepository).

Este diseño ofrece varias ventajas clave:

  • Desacoplamiento: Abstrae tu aplicación de la capa de datos y de los detalles específicos de la implementación.
  • Inyección de dependencias: La biblioteca está diseñada para funcionar sin problemas con marcos de inyección de dependencias como Dagger Hilt. Puedes configurar los repositorios como singletons.
  • Testabilidad: El diseño basado en interfaces permite sustituir las implementaciones reales por repositorios simulados (mocks) durante las pruebas. Esto te permite probar la lógica de tu aplicación de forma independiente del hardware o servicio de Getnet.

Comparación con la biblioteca legada

A diferencia de la legada paysyslib.jar, que requería una gestión más manual de la lógica y los callbacks, la nueva biblioteca proporciona un enfoque estructurado, de tipo seguro (type-safe) y reactivo para la integración.

CaracterísticaLegada (paysyslib.jar)Nueva (redsys-tpv-business-lib)
LenguajeJavaKotlin
ConcurrenciaCallbacks/HilosCoroutines (funciones suspend)
ArquitecturaMonolíticaRepository Pattern / Clean Architecture
IntegraciónInstanciación manualLista para Inyección de Dependencias (Hilt)