OneSpan Sign Developer: Notificación de eventos de devolución de llamada - Parte 2

Duo Liang, 17 de April de 2019
OneSpan Sign Developer: Callback Event Notification – Part 2

En esto primera parte de esta serie de blogs, revisamos los usos potenciales de las diferentes notificaciones de eventos y los flujos de trabajo recomendados al configurar la escucha de devolución de llamada cada vez que necesite sondear transacciones, firmantes o cualquier otra información. 

En este blog, le mostraremos el proceso común de manejar una solicitud de devolución de llamada y todos los detalles técnicos interesantes con respecto a las notificaciones de eventos de devolución de llamada. Sin más preámbulos, ¡comencemos!

Registrarse para notificaciones de eventos

Antes de que OneSpan Sign pueda notificarle un evento, primero debe registrar su URL de devolución de llamada o una clave de devolución de llamada opcional, así como especificar qué eventos requieren notificación. Puedes seguir nuestro Configurar notificaciones de devolución de llamada guía sobre cómo registrarse para recibir notificaciones de eventos mediante programación o simplemente hacerlo a través del portal web en la pestaña Integración en la página Administrador como se muestra a continuación.4-17-1

Crear un oyente de devolución de llamada

¡Ahora estás listo para crear un oyente webhook! El siguiente diagrama muestra todos los pasos necesarios para manejar una solicitud posterior. A partir de ahí, explicaremos los detalles técnicos en consecuencia. Este es un proceso general que se puede aplicar a cualquier lenguaje de programación o marco web que esté desarrollando actualmente.4-17-2

Callback Listener Point 1

Primero, necesita una URL pública para que OneSpan Sign pueda llamar. Solo para el propósito de la prueba, puede obtener uno temporal al Ngrok .
Entonces, cuando ocurre un evento, como cuando se completa una transacción, OneSpan Sign envía una solicitud HTTP POST a la URL registrada en esta primera sección. 

Retransmisión de llamadas Punto 2 y 3

¿Recuerdas la clave de devolución de llamada que configuraste en el registro? Este token secreto se usa para identificar que la llamada POST en realidad era de OneSpan Sign. Esto ayuda a confirmar que no está recibiendo llamadas falsas.
La clave de devolución de llamada que registró se pasa a través del encabezado de Autorización como "Básico {callbackKey}".  
Una vez que valide que la solicitud contiene su secreto compartido, puede continuar procesando la solicitud.

Callback Listener Point 4

La información del evento se pasa en el cuerpo de la solicitud, que incluye un objeto JSON que contiene el tipo y los datos asociados con ese evento.
A continuación se presentan algunos ejemplos de carga útil de devolución de llamada:

El paquete fue creado
{" @class ":" com.silanis.esl.packages.event.ESLProcessEvent "," nombre ":" PACKAGE_CREATE "," sessionUser ":" 18EZDL44xgsX "," packageId ":" wVdZEaPD2igwUnFGJBjDD0dpO7k = "," message ": null," message ": null : nulo, "createdDate": "2018-06-30T20: 04: 55.384Z"}

El paquete fue enviado
{" @class ":" com.silanis.esl.packages.event.ESLProcessEvent "," nombre ":" PACKAGE_ACTIVATE "," sessionUser ":" 18EZDL44xgsX "," packageId ":" 5n4obeO8jYoPp126Cm-Y3fxdfbo = "," message ": null," documentId ": null," createdDate ":" 2018-06-30T20: 09: 50.425Z "}

El firmante 1 aceptó el documento de consentimiento
{" @class ":" com.silanis.esl.packages.event.ESLProcessEvent "," name ":" DOCUMENT_SIGNED "," sessionUser ":" 44aafb7c-97b9-40e1-bb59-eb76c7d2a484 "," packageId ":" 5n4obeO8jYoPp126m-df3x , "message": null, "documentId": "default-consent", "createdDate": "2018-06-30T20: 10: 51.002Z"}

El firmante 1 completó un documento
{" @class ":" com.silanis.esl.packages.event.ESLProcessEvent "," name ":" DOCUMENT_SIGNED "," sessionUser ":" 44aafb7c-97b9-40e1-bb59-eb76c7d2a484 "," packageId ":" 5n4obeO8jYoPp126m-df3x , "message": null, "documentId": "7caf46cdd75f7a411bf8c22793b84fa79d8d180becc40691", "createdDate": "2018-06-30T20: 12: 12.256Z"}

El firmante 1 completó el paquete de firma
{" @class ":" com.silanis.esl.packages.event.ESLProcessEvent "," nombre ":" SIGNER_COMPLETE "," sessionUser ":" 44aafb7c-97b9-40e1-bb59-eb76c7d2a484 "," packageId ":" 5n4obeO8jYoPp126m-df3x , "message": null, "documentId": null, "createdDate": "2018-06-30T20: 12: 12.272Z"}

El paquete fue completo
{" @class ":" com.silanis.esl.packages.event.ESLProcessEvent "," nombre ":" PACKAGE_COMPLETE "," sessionUser ":" e00696ec-d6f5-4feb-89c5-a5ce002a6c66 "," packageId ":" 5n4obeO8jYoPp126m-dfcf-cx , "message": null, "documentId": null, "createdDate": "2018-06-30T20: 15: 01.038Z"}

Firmante 1 optar por no participar:
{" @class ":" com.silanis.esl.packages.event.ESLProcessEvent "," nombre ":" PACKAGE_OPT_OUT "," sessionUser ":" b5381b13-991e-4179-9f9b-d4e1ec9d06bb "," packageId ":" J5tyJalzG49HmDDDDGT5DMDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.DT.DT.DT.DT.DTDDDDD: AJ. mensaje ":" la información personal no es correcta "," documentId ": nulo," createdDate ":" 2018-06-30T20: 16: 29.763Z "}

Para tener en cuenta que, el cuerpo de cada llamada puede variar según el tipo de evento de notificación.

Callback Listener Point 5 y 6

Según el nombre del evento, puede distribuir la tarea a las funciones de código auxiliar para tratarla según su lógica empresarial. Esto fue recomendado en la primera parte de esta serie de blogs. Si su función de servicio tiene un flujo de trabajo complejo y consumirá la solicitud durante mucho tiempo, es mejor que utilice un método asincrónico para evitar causar un error de tiempo de espera. Para la implementación actual, la configuración del tiempo de espera de devolución de llamada era de 20 segundos y podía variar entre diferentes instancias.

Luego, devuelva un código de estado HTTP 200 a OneSpan Sign que indica que recibió la devolución de llamada con éxito. 

¿Qué pasa si me perdí una notificación?

Perder una notificación es un posible riesgo cuando se utiliza el mecanismo de notificación de eventos. 

Cuando falla una devolución de llamada, se envía un correo electrónico. A partir de la versión 11.21, ese correo electrónico se ha mejorado para incluir el motivo del error. Por ejemplo, si hay una excepción de tiempo de espera, un error "no se puede encontrar el recurso" u otro código de error, estos correos electrónicos pueden ayudar a solucionar la causa de la falla. 4-17-3

Además, puede sondear activamente sus eventos cada 6, 12 o 24 horas como respaldo para reducir las pérdidas en caso de que se pierda una notificación.

Arriba estaba todo el conocimiento técnico necesario que necesita saber para configurar un oyente de devolución de llamada. En los próximos blogs, demostraremos algunos proyectos de muestra utilizando diferentes lenguajes y marcos siguiendo los pasos que mencionamos aquí.

Si tiene alguna pregunta sobre este blog o cualquier otra cosa relacionada con la integración de OneSpan Sign en su aplicación, visite el Foros de la comunidad de desarrolladores . ¡Sus comentarios nos importan!

Comunidad de desarrolladores de OneSpan Sign

¡Únase a la comunidad de desarrolladores de OneSpan Sign! Foros, blogs, documentación, descargas de SDK y más.

Únete hoy