Botón de Pago - Hook

Los botones de pago personalizados ofrecen la posibilidad de enviar notificaciones cuando se realiza un pago exitoso, esto se logra mediante la configuración de un hook.

Activar Hook para un Botón de Pago

Activar un hook toma solo 2 pasos:

  1. Definir la credencial predeterminada para hooks, que se utilizará para firmar cada solicitud y te permitirá validar la autenticidad de la información.
  2. Configurar el URL al cual enviaremos las solicitudes.

Para utilizar el Hook, primero debes crear un botón de pago dinámico: Ver Tutorial

1. Definir una Credencial Predeterminada para Hooks

Para definirla ingresa en Configuración > Credenciales API

Screen Shot 2021-04-20 at 10.18.40 AM

En el ejemplo de arriba podemos ver la opción donde escogeremos de una lista desplegable, la credencial que usaremos por defecto para los hooks.

2. Configurar el URL de tu Sistema

El segundo paso es configurar la ruta a la cual se harán las solicitudes cada vez que se reciban pagos exitosos en un botón de pago personalizado. Algunas consideraciones a tener presente:

  1. Debe ser una ruta pública (accesible desde Internet).
  2. Debe tener un certificado de seguridad válido (ruta debe utilizar HTTPS).

Para configurar el URL, simplemente ingresa a el/los botones de pago en los que quieres activar el Hook, haz click en editar y posteriormente en “Opciones Avanzadas”.

Una vez en las Opciones Avanzadas encontrarás un campo llamado “URL del Hook” donde podrás colocar la ruta.

Screen Shot 2021-04-20 at 10.20.58 AM

Referencia Técnica

Cuando se activa un Hook, Fygaro enviará una solicitud tipo “POST” al URL configurado cada vez que se procese un pago exitoso en el botón de pago respectivo. La solicitud tendrá un contenido de tipo JSON con la siguiente estructura:

{
“customReference”: (string),
“transactionReference”: (string),
“createdAt”: (int),
“jwt”: (string)
}

El customReference contiene la referencia dinámica asignada al crear o compartir el botón de pago por un parámetro del URL.

El transactionReference contiene el identificador único de referencia que se asigna a toda transacción en Fygaro.

El createdAt contiene el timestamp que refleja con el momento en el que el cliente inició el pago.

El jwt contiene un token en formato “Json Web Token” (JWT por sus siglas) con la información detallada de la transacción.

El formato JWT te permitirá garantizar la integridad y fuente de la información suministrada gracias a la firma que se crea utilizando la credencial definida en el capítulo anterior. Para más información sobre el formato, puede visitar: https://jwt.io/.

Antes de obtener la información contenida dentro del JWT, se recomienda validar el mismo utilizando las credenciales previamente definidas. Una vez se determina válido, puede acceder al cuerpo del token, donde encontrará la siguiente información:

 
{
"customReference": (string),
   "transactionReference": (string),
   "currency": (string),
   “amount”: (string),
   "createdAt": (int),
    "clientData": (dict)
}

 

customReference” es una copia validada del campo anteriormente descrito.

transactionReference” es una copia validada del campo anteriormente descrito.

createdAt” es una copia validada del campo anteriormente descrito.

currency” contiene el código alfabético ISO de 3 caracteres que representa la divisa utilizada en el pago (ej: “USD”).

amount” contiene el monto de la transacción en formato “Decimal” de hasta 2 caracteres.

clientData es un diccionario que contiene la información del cliente que realizó la compra. Su estructura es la siguiente:

{
   "name": (string),
   "email": (string), 
    "phone": (string)
}

name”: nombre y apellido ingresado por el cliente al realizar el pago.

email”: Correo electrónico ingresado por el cliente al realizar el pago.

phone”: Teléfono ingresado por el cliente al realizar el pago.

Respuesta al Hook

Las solicitudes realizadas al URL solicitado esperan una respuesta de éxito utilizando el status 200. Cualquier otro status de respuesta o time-out será considerado un fallo y la solicitud será re-intentada posteriormente.

Una misma solicitud se intentará hasta 4 veces, cada intento con más tiempo de separación que el anterior para permitir a su sistema recuperarse en caso de errores o caídas.

Favor tome en cuenta que múltiples solicitudes consecutivas fallidas pueden causar una suspensión temporal en el envío de nuevas solicitudes del mismo botón de pago. Suspensiones reiterativas pueden generar un bloqueo permanente del Hook.