Arquitectura
Esta página explica la arquitectura técnica de la integración Get Smart App2App para Android, detallando cómo interactúan y se comunican los componentes.
Resumen del sistema
La integración App2App se basa en los mecanismos estándar de Intent de Android para facilitar la comunicación entre dos aplicaciones distintas instaladas en el mismo dispositivo:
- La aplicación externa (tu aplicación) inicia el proceso y recibe el resultado.
- La aplicación Get Smart procesa la transacción segura y gestiona la lógica de pago.
Esta separación de responsabilidades permite que tu aplicación aproveche la funcionalidad de pago sin necesidad de implementar los complejos requisitos de seguridad y cumplimiento del procesamiento de pagos.
Arquitectura de componentes
La integración App2App involucra dos componentes distintos que trabajan juntos para procesar pagos. Comprender las responsabilidades de cada componente te ayudará a implementar la integración correctamente y a solucionar problemas de manera eficaz.
Tu aplicación
Tu aplicación es responsable de:
- Generar la solicitud de pago con los detalles de la transacción (importe, tipo, número de pedido).
- Crear y lanzar el
Intentde Android con el nombre de acción específico. - Recibir y procesar el resultado de la transacción.
- Gestionar escenarios de error (p. ej., si falta la aplicación Get Smart).
- Administrar tu lógica de negocio basada en los resultados del pago.
Aplicación Get Smart
La aplicación Get Smart (Aplicación de Cobro) gestiona:
- Lectura de la tarjeta.
- Comunicación con los sistemas de autorización.
- Seguridad de la transacción.
- Impresión de boletas (copias para el comercio y el cliente).
Mecanismo de comunicación
La integración utiliza la comunicación estándar entre aplicaciones de Android a través de Intents.
Comunicación basada en Intent
La comunicación sigue este patrón:
- Creación del Intent: Tu aplicación crea un Intent con un nombre de acción específico.
- Paso de parámetros: Los parámetros de la transacción se añaden como extras del Intent.
- Lanzamiento de la Activity: El Intent se lanza mediante
startActivityForResult. - Procesamiento de la transacción: La aplicación Get Smart toma el control y procesa el pago.
- Retorno del resultado: La aplicación Get Smart devuelve el control con los resultados de la transacción como extras del Intent.
- Gestión del resultado: Tu aplicación procesa el resultado en
onActivityResult.
Nombre de acción del Intent
El nombre de acción específico utilizado para las solicitudes de pago es:
es.android.redsys.mPOS.movil.tpvAndroid_PAYMENT_REQUESTEste nombre de acción es el identificador único que dirige el Intent a la aplicación Get Smart.
Flujo de datos
El flujo de datos entre aplicaciones sigue esta secuencia:

Consideraciones de seguridad
La arquitectura App2App está diseñada con la seguridad como principio fundamental, aprovechando el aislamiento de aplicaciones de Android para proteger los datos de pago sensibles. Comprender cómo funciona el modelo de seguridad te ayudará a implementar la integración correctamente.
Aislamiento de aplicaciones
Cada aplicación se ejecuta en su propio sandbox de seguridad. Tu aplicación nunca tiene acceso directo a:
- Datos de la tarjeta (PAN, CVV, fecha de caducidad).
- Entradas de PIN.
La aplicación Get Smart gestiona todos los datos sensibles dentro de su entorno seguro.
Transmisión de datos
Solo se transmiten metadatos de transacción no sensibles entre aplicaciones:
- Importe de la transacción.
- Tipo de operación (venta/devolución).
- Números de factura/pedido.
- Resultados de autorización.
- Códigos de respuesta.
Ahorro en certificación
Como la aplicación Get Smart es el único componente que maneja los datos de la tarjeta y la comunicación con los sistemas de autorización, tu aplicación evita el coste de certificar una solución de pago completa.
Requisitos de configuración
La arquitectura requiere una configuración mínima:
Sin permisos especiales
Tu AndroidManifest.xml no requiere ningún permiso especial para:
- Comunicación entre aplicaciones.
- Procesamiento de pagos.
- Lectura de tarjetas.
- Acceso a la red.
El mecanismo estándar startActivityForResult funciona sin configuración adicional.
Sin dependencias externas
Tu aplicación no necesita:
- Incluir ningún SDK o biblioteca de Get Smart.
- Configurar claves de API o credenciales.
- Gestionar el emparejamiento o registro de dispositivos.
La integración depende totalmente del sistema de Intent nativo de Android.
Gestión de errores
Una gestión de errores adecuada garantiza que tu aplicación administre de forma elegante los escenarios en los que la aplicación Get Smart no esté disponible o sea incompatible. La implementación de estas comprobaciones de errores mejora la experiencia del usuario y ayuda a prevenir fallos en la aplicación.
Aplicación ausente
Si la aplicación Get Smart no está instalada, Android lanzará una ActivityNotFoundException. Tu aplicación debe capturar esta excepción e informar al usuario.
Versión de la aplicación
Asegúrate siempre de que la aplicación Get Smart esté instalada y actualizada a la última versión.
Próximos pasos
- Comprende el flujo de transacción detallado en Flujo de la transacción
- Aprende a crear un pago en Crear un pago