PSD2 y SCA, integrando Paycomet con Magento

La directiva Payment Service Directive 2 (PSD2) cambia a nivel europeo la regulación de los servicios de pago.

Profile picture for user admin
Por Way2 Ecommerce
16 Sep 2021

Durante los últimos años, los pagos en internet han sufrido una revolución en todos sus aspectos debido a la digitalización del sector bancario. Una de las últimas modificaciones que ha sufrido el pago en internet se ha hecho bajo un marco legal, con la directiva Payment Service Directive 2, conocida por las siglas PSD2, que cambia a nivel europeo la regulación de los servicios de pago.

¿Cómo ha afectado esta nueva directiva a los pagos? A PSD2 se le incorporó la nueva norma SCA (Strong Customer Authentication o Autenticación reforzada).

Esta norma obliga a realizar una autenticación de dos factores en todas las transacciones a nivel de eCommerce en toda Europa, afectando a la forma en la que los compradores realizan esta autenticación al realizar una transacción.

Esta doble autenticación se realiza a través de 2 de estos 3 métodos posibles.

  1. Algo que tengo: Móvil, tarjeta...
  2. Algo que sé: PIN, password...
  3. Algo que soy: reconocimiento facial, huella dactilar...
psd2 sca magento

Por este motivo, uno de nuestros clientes tenía la necesidad de implementar un nuevo método de pago en su eCommerce, eligiendo Paycomet como la solución adecuada para aplicar y adaptar a las necesidades de su comercio con presencia online.

Por lo tanto, ¿cómo se realizó esta integración? Se realizó un desarrollo a medida para integrar el método de pago elegido entre las diferentes opciones posibles, con la ayuda de la documentación oficial y la explicación de los expertos en la solución.

A la hora de realizar la integración de captación de tarjeta, Paycomet ofrece diferentes soluciones para incluir el servicio de pago en nuestras plataformas.

De entre estas posibles soluciones, se optó por Embebido (JET-IFRAME), ya que esta opción permite mantener el formulario de checkout con sus estilos propios del eCommerce, adaptándose a Paycomet añadiendo los campos requeridos.

Uno de estos campos incluye el JET-ID, que se genera desde el panel de configuración de Paycomet y que permite realizar el envío del formulario y obtener un token provisional con el que se realizará la tokenización de la tarjeta.

Una vez se ha realizado el envío del formulario de checkout y Paycomet ha devuelto el token provisional a través de la recepción del JET-ID integrado en nuestro formulario, se puede empezar a realizar el flujo de llamadas a la API REST del servicio de pago online.

Paycomet tiene documentado cada método de la API, con su explicación y la forma en la que se debe realizar la petición.

Del listado de métodos, para nuestra integración, usamos los siguientes.

addUser

Este método nos permitía realizar la tokenización de la tarjeta para usar posteriormente en las transacciones online, y para ello, entre los valores de configuración del panel de Paycomet era necesario enviar el token temporal que se obtenía al realizar el envío del formulario.

Tras realizar la petición, el servicio nos devuelve el idUser y el tokenUser necesarios para las operaciones posteriores, quedando tokenizada la nueva tarjeta añadida por el usuario desde el formulario de checkout.

infoUser

Tras realizar la tokenización realizamos una llamada a este método para obtener los datos de la tarjeta necesarios del usuario, como es la fecha de expiración, valor que se almacena para avisar al usuario de que se aproxima la fecha de expiración y que así pueda renovar la tarjeta.

Para añadir una nueva tarjeta sería necesario volver a tokenizarla, siguiendo el flujo de llamadas desde el inicio, empezando por una petición al método addUser.

executePurchase

Al realizar la petición a este servicio realizamos la transacción, procediendo al cobro del total del pedido generado por el usuario.

Como habíamos comentado a modo de introducción al inicio de este POST, se trata de una integración de un sistema con directiva PSD2, por lo que si se requiere SCA, en la respuesta de la petición nos vendrá challengeUrl, con la URL a la que deberá ser redirigido el usuario para autenticarse en la aplicación del banco.

Tras realizar la autenticación, la transacción finaliza y se realiza el cobro del total del pedido que haya generado el usuario, quedando un registro en el panel de control de Paycomet de la transacción realizada.

Al principio de este POST también se había comentado que la directiva PSD2 implementa una normativa SCA, pero esta normativa puede tener excepciones por las que en algunos casos, comentados en este enlace podría no ser necesario aplicar una autenticación en dos pasos.

El método executePurchase, en el caso de que se tratase de una transacción sin SCA devolvería directamente el resultado de la transacción, incluyendo un authCode que será necesario para que se pueda tramitar la devolución automática de una transacción.

En caso de cumplirse una excepción SCA el cliente no necesitaría realizar una segunda autenticación en la aplicación del banco.

operationInfo

Tras realizar una transacción que requiere de autenticación en la aplicación del banco por SCA se realiza una petición a este método, obteniendo información de la operación, obteniendo de esta forma el authCode requerido para gestionar devoluciones automáticas.

Almacenamos también el valor de operationId para poder tener un segundo identificador de la transacción.

Las transacciones se podrán filtrar desde el panel de gestion de Paycomet con el número de referencia que se haya transmitido al generar la transacción con el método executePurchase.

La implementación de la llamada a este método tiene un uso adicional, evitar que queden pedidos con estados intermedios en la plataforma eCommerce.

¿Por qué puede suceder esto? Por una pérdida momentánea de conexión con el servicio, por abandonar la transacción en medio del proceso sin completar la autenticación contra la aplicación del banco… Pueden ser varios los motivos.

Como solución, para evitar que los estados de los pedidos se queden en un estado intermedio se genera una tarea cron encargada de solicitar la información de las transacciones a través de este método.

De esta manera nos aseguramos de que todas los pedidos tengan un estado final (Cancelado o Completado) y que los gestores del eCommerce puedan llevar un control exhaustivo de las operaciones que se han ido realizando.

executeRefund

Con la implementación de una llamada a este método se integra la ejecución de devoluciones automáticas de transacciones realizadas en caso de obtener errores en el eCommerce.

En este caso en concreto, atendiendo a la lógica del cliente al que se le ha implementado esta solución, en caso de que no se pueda transmitir la información a su sistema se deben abortar las operaciones.

Esto implica realizar una cancelación y devolución del importe total del pedido y se realiza a través de este método, haciendo uso del authCode mencionado anteriormente.

Con la integración de estas peticiones a la API de Paycomet el flujo del proceso de checkout queda finalizado, habiéndo completado una transacción a través de los diferentes métodos mencionados.

Podemos resumir este proceso.

  1. Obtención de un token temporal para realizar las operaciones contra la API de Paycomet con la integración de JET-IFRAME.
  2. Tonekinzación de la tarjeta del usuario para realizar transacciones online tras obtener el token temporal al enviar el formulario de checkout.
  3. Realización de transacciones online haciendo uso del idUser y tokenUser generados para la tarjeta por Paycomet.
  4. Paycomet ofrece diversas soluciones para la integración de un sistema de pago online en las diferentes plataformas eCommerce.
  5. Con su API REST ésta integración se puede personalizar y adaptar a las necesidades del cliente, por lo que se trata de una solución flexible y que cumple bien con sus objetivos

 

PSD2 es ya una realidad, esta Directiva Europea que regula los servicios de pago que se dan en Europa tiene como finalidad aumentar la transparencia y la innovación de los servicios permitiendo también lo que se conoce como open banking, es decir que terceras empresas también intervengan en los pagos. En Way2 Ecommerce somos expertos en integrar cualquier forma de pago en Magento. Si deseas mas información sobre Paycomet o cualquier otra forma de pago que desees integrar en tu comercio electrónico estaremos encantados de ayudarte.

Profile picture for user admin
Way2 Ecommerce

Expertos en Magento ecommerce. Definimos, desarrollamos, mantenemos y potenciamos tiendas online de la más alta calidad para que tu ecommerce supere todas tus expectativas.