Integración de Bizum en TPVs
Bizum se ha convertido en un medio de pago muy popular, tanto por su rápidez como su comodidad para el usuario.
En este post vamos a explicar la solución implementada para su integración en un red de TPVs (terminales punto de venta)
El caso de uso es bastante simple:
Una red de tiendas dispone de un gran número de TPVs que ya cuentan con integración en medios de pago como el efectivo o pago con tarjeta. Ahora queremos incluir Bizum como otro método de pago.
Bizum ofrece una API securizada para realizar las operaciones de solicitud de pago, consulta del estado, etc. En lugar de tener que implementar el diálogo contra este servicio (y tener que compartir las claves en cada uno) se ha desarrollado un servicio interno que hará de proxy
Este servicio proxy se encuentra en la red interna por lo que se cuenta con un primer nivel de seguridad. Así mismo se han implementado otros dos niveles de seguridad:
-
filtro por IPs de tal forma que sólo las peticiones desde ciertos origenes son permitidas
-
Un ApiToken interno requerido en cada petición
Request Payment
El diálogo para solicitar un pago a través de Bizum se convierte en algo casi trivial
Como se puede ver en la secuencia, la integración se realiza principalmente entre los TPVs y BizumProxy, evitando tener la lógica en aquellos, junto con claves sensibles.
Así mismo, al tener un único punto de acceso hacia Bizum controlamos y medimos mejor quién está usando la pasarela.
- INFO
-
El sistema Bizum cuenta con otros sistemas de integración, pero el propuesto en esta solución sigue un modelo PULL evitando tener que habilitar puntos de entrada públicos con todos los problemas de seguridad que ello implica.
Servicio
Mediante una implementación Java, usando librerías reactivas, se ha conseguido que una simple instancia pueda ofrecer servicio a cientos de terminales de forma simultánea.
En este caso en particular se ha desplegado dentro del propio cluster kubernetes pero gracias a los requisitos mínimos que necesita se puede ejecutar en otros sistemas sin mucho esfuerzo.
Open Source
Lamentablemente, la implementación actual ha sido creada como software propietario pero estamos trabajando para poder publicarla como Open Source.
Mientras tanto, si deseas saber más sobre la implementación no dudes en ponerte en contacto con nosotros.