Guía integración pagos en línea
Guía de integración para pagos en línea con Widget Javascript.
INSTRUCCIONES DE INTEGRACIÓN
CHECKLIST DE 3 PUNTOS
Crear URL de callback.
Integrar el bloque de javascript en el documento en el que se pretende integrar el iframe
Notificar la configuración necesaria al equipo de soporte de Arcopay
PASO A PASO
Crear .html o .php donde se incluirá el widget:
Creamos un simple html con una estructura básica:
En el body del html incluímos unas etiquetas que nos ayudarán a mostrar el widget y los eventos que este envía:
El siguiente paso será incluir los 3 scripts necesarios para el funcionamiento del widget. Justo antes de la etiqueta de cierre del <body> incluímos los siguientes scripts:
Script de configuración de ejemplo para iniciar un pago en línea.
Script encargado de recibir eventos desde el widget:
Probamos lo que tenemos hasta ahora, abrimos el html y deberíamos ver un error como este:
Es el momento de configurar el widget:
Para no encontrar el error ocurrido en el paso anterior necesitamos que el equipo de soporte de Arcopay configure ciertos detalles.
Hay que definir una url de callback, donde el widget enviará la información obtenida. La URL a crear debe existir en el dominio del cliente. Por ejemplo: https://www.moneylender.com/callback/
Hay que definir en qué dominio se cargará el widget.
Una vez tengamos estos dos detalles claros hay que abrir un ticket al servicio técnico de Aterbanks-Arcopay en: https://afterbanks.atlassian.net/servicedesk/customer/portal/1
En caso de no estar registrados tendremos que registrarnos, este paso es necesario puesto que posteriormente cualquier comunicación con el equipo de Arcopay se realizará por esta vía, donde se hace un seguimiento detallado de cada incidencia.
Una vez registrados abriremos un ticket eligiendo la opción de soporte técnico:
Indicando los detalles necesarios para realizar la configuración:
La configuración por parte de Arcopay es muy rápida y no debería pasar mucho tiempo desde que solicitamos la configuración hasta que esté aplicada y podamos seguir con las pruebas en el widget.
Para que todo funcione bien deberemos responder a la llamada recibida en el callback como mínimo un JSON con las keys result, reason y nextURL:
Cuando es OK
Cuando es KO
El JSON que se envía al callback tras el pago es el siguiente:
Flujo del pago:
Para hacer pruebas podemos configurar el widget con los siguientes parámetros de ejemplo y utilizar el sandbox.
Seleccionamos el servicio de Sandbox de BBVA y pulsamos el botón de pagar:
Realizamos el login con el banco modo sandbox con los siguientes datos:
Usuario: user1
Contraseña: 1234 o 123456
2FA/OTP/SMS: 1234 o 123456
Seleccionamos la cuenta con la que queremos realizar el pago si no lo hemos especificado en los parámetros de carga (sourceIBAN) y hacemos click en pagar.
Aceptamos el pago e introducimos el OTP: 1234 o 123456
En este punto si el pago ha sido correcto, se ejecutará una redirección a la URL establecida en el parámetro “URLredirectAfterOK”. En caso de error a la URL “URLredirectAfterKO”.
Del mismo modo, el envío de la respuesta al callback. En caso de éxito a la URL “urlCallback” y en caso de error a la URL “urlCallbackError”.
CONFIGURACIÓN ADICIONAL
FIRMA DE LOS PARÁMETROS
Existe la opción de aplicar una capa extra de seguridad para asegurar que los datos recibidos por el widget no han sido alterados por ningún actor intermedio.
WIDGET HOSPEDADO EN ARCOPAY.IO
El método /payment/getLinkForPayment/, también compatible con el widget de pagos en línea, documentado en la documentación PSD2 recibe como parámetro los datos necesarios para configurar un link de pago, y genera como respuesta una URL de un solo uso lista para mostrar al cliente final. Opcionalmente, este mismo método permite enviar el smartlink por SMS. Ejemplo de respuesta:
LISTADO DE PARÁMETROS
GESTIÓN DE ERRORES Y ENVÍO DE EVENTOS
Los códigos de evento que puede enviar el widget se detallan en este documento: Códigos de evento
ACCESO A LA API
En los casos en los que no se desee usar el widget, o se quiera hacer uso de funcionalidad adicional a la que aporta el widget, es posible hacer uso de la API, documentada en los siguientes enlaces:
Last updated