Descripción genera
La API para interacción con medios de pago debe:
- Facilitar la aceptación de los medios de pago del Sistema de Peaje y Control de Acceso.
- Estandarizar la interacción de los medios de pago con los siguientes dispositivos:
- TVMC y TVML
- Terminales móviles de supervisión
- Validadores
- Computadores de los centros de atención al usuario que cuentan con dispositivo de personalización
- Estandarizar la interacción de estos dispositivos con los niveles superiores para el envío de información transaccional. La API se debe poder instalar en dispositivos de distintos proveedores y referencias técnicas, siempre y cuando estos cumplan con las especificaciones exigidas en este anexo.
- Ser desarrollada por “LA EMPRESA”, quien debe entregar el código fuente de dicha API y su documentación técnica a Metrobús para facilitar la evolución del Sistema de Peaje y Control de Acceso, y la futura integración de hardware de distintos proveedores.
- Suplir funciones, agrupadas por capas, en uno o más módulos base, en donde se desarrollen las funcionalidades necesarias para llevar a cabo el procesamiento de una transacción realizada con un medio de pago. Cada capa ofrece un conjunto de funcionalidades que se incorporan a la aplicación principal de cada dispositivo. Estas se presentan a continuación.
Funcionalidades de la API para interacción con medios de pago
La API para interacción con medios de pago debe:
- Incorporar una capa de medio de pago que implemente todos los comandos propios del estándar Calypso para interactuar con los medios de pago, los SAM locales y cuando aplique, también con el SAM remoto. Así mismo, debe realizar el manejo de sesiones seguras y la interacción con las aplicaciones y archivos presentes en el medio de pago.
- Incorporar una capa de presentación que implemente funcionalidades que permitan integrar las interfaces de usuario y los periféricos que tenga el dispositivo con el software o aplicación encargado de procesar los medios de pago. Por ejemplo, por medio de esta capa el visor de un dispositivo puede mostrar la tarifa descontada al usuario o habilitar un torniquete.
- Incorporar una capa de red que:
Implemente funcionalidades para el manejo de datos a través de protocolos de comunicación que permitan el intercambio de información con niveles superiores. Por ejemplo, esta capa se encarga de efectuar el envío de las transacciones al sistema central, mantener actualizadas las listas negras, entre otros.
Pueda usar librerías de código abierto, siempre y cuando, estas estén respaldadas por entidades o comunidades de software altamente conocidas en el mercado.
Mantenga actualizadas las librerías siguiendo los últimos estándares de la industria en cuanto a seguridad.
Considere para su desarrollo mecanismos para el procesamiento de solicitudes que requieran operaciones de larga duración, tales como el uso de tareas asíncronas y procesos en segundo plano. Esto con el objetivo de no bloquear el flujo normal de las tareas principales que ejecuta la aplicación del dispositivo.
- Incorporar una capa de reglas de negocio que implemente funcionalidades para el cumplimiento de las reglas del negocio, las cuales deben permitir obtener la tarifa correcta a descontar al usuario de acuerdo con la estructura tarifaria definida. Por ejemplo, esta capa implementa las reglas de validación, los descuentos en la tarifa por tipo de perfil, las reglas de los transbordos, entre otros.
- Incorporar una capa de transacciones que implemente la gestión de los datos para la construcción de transacciones en el formato del sistema central o cualquier otro a petición de Metrobús. Entre los más comunes se encuentran JSON y XML.
Especificaciónes técnicas
La API para interacción con medios de pago debe:
- Ser desarrollada para poder ser incorporada en dispositivos con sistemas operativos Windows, Linux, Android y iOS.
- Ser entregada como una serie de librerías precompiladas con sus correspondientes archivos de encabezados, los cuales deben definir el nombre, parámetros y tipo de retorno de las funciones que hacen parte de cada librería.
- Incluir el código fuente con su documentación, un manual de usuario y la documentación técnica que describa el uso e implementación de cada una de las capas descritas anteriormente y ejemplos sencillos de esto.
- Es deseable que puedan desarrollar los aplicativos por medio de Eclipse Keyple™, el cual es una API de código abierto para la integración y el desarrollo de aplicaciones de peaje, permitiendo que los desarrollos implementados por operadores o integradores se basen en una base homologada, a través de un conjunto de librerías de código abierto implementadas inicialmente en Java y C++, compatibles con cualquier arquitectura de terminales, sea móvil, embebida o distribuida, e interoperables con cualquier lector de tarjetas inteligentes: propietario, estándar, local o remoto.