Para descargar la muestra de código completa, consulte nuestro sitio Code Share.

Las notificaciones de eventos de devolución de llamada le permiten recibir notificaciones automáticas de eventos que pertenecen a un paquete (en la New User Experience, los paquetes se denominan "transacciones"). Cuando se produce un evento específico, el sistema envía automáticamente un mensaje a un destino que haya elegido.

Ubicación en la interfaz de usuario

En primer lugar, debe localizar esta área en su interfaz de usuario. Después de ejecutar su código, podrá comprobar aquí que se ejecutó correctamente. Para encontrar el área de devolución de llamada en la interfaz de usuario, inicie sesión en OneSpan Sign y haga clic en Administrador > Notificación de eventos.

Captura

Como verá, esta área está completamente vacía (a menos que ya la haya configurado).

Notificaciones disponibles

Antes de continuar con el código, es recomendable conocer todas las notificaciones disponibles. Como se puede ver en la imagen de arriba, existen varias. En la siguiente tabla se enumeran como se deben representar en su código:

En la siguiente tabla:

  • El tamaño máximo de todos los campos sessionUser es de 255 caracteres.
  • El tamaño máximo de todos los campos packageId es de 255 caracteres.
  • El campo sessionUser depende de si el evento fue generado por un remitente o por un firmante o no. Los eventos desencadenados por un remitente tendrán el ID del remitente. Los eventos desencadenados por un firmante tendrán el ID del firmante.
Evento Significado Carga útil JSON
DOCUMENT_SIGNED Se firmó un documento o se aceptaron los Contratos consentimiento y/o divulgación.

{ "name": "DOCUMENT_SIGNED",

"sessionUser": "...",

"packageId": "......",

"documentId": "......", (max 256 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

DOCUMENT_VIEWED Se ha visto un documento.

{ "name": "DOCUMENT_VIEWED",

"sessionUser": "...",

"packageId": "......",

"documentId": "......", (max 256 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

EMAIL_BOUNCE

Se devolvió un correo electrónico. Los tipos de devoluciones son:

  • "BOUNCE" (un mensaje devuelto no válido)
  • "COMPLAINT" (un mensaje devuelto no entregado)
  • "OOTO" (fuera de la oficina)
  • "UNKNOWN" (desconocido)

Para obtener más información, consulte nuestra lista de formularios.

{ "name": "EMAIL_BOUNCE",

"sessionUser": "...",

"packageId": "......",

"message": "bounce type",

"createdDate": "2017-05-02T20:17:58.408Z" }

KBA_FAILURE Ocurrió un error de KBA Authentication.

{ "name": "KBA_FAILURE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ACTIVATE Un paquete pasó del estado BORRADOR o ELIMINADO al estado ENVIADO. De forma predeterminada, un paquete se crea en el estado BORRADOR y pasa al estado ENVIADO cuando está listo para ser procesado por los firmantes.

{ "name": "PACKAGE_ACTIVATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ARCHIVE Una notificación de devolución de llamada indica que se archivó un paquete.

{ "name": "PACKAGE_ARCHIVE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ATTACHMENT Una notificación de devolución de llamada indica que un firmante cargó un archivo adjunto.

{ "name": "PACKAGE_ATTACHMENT",

"sessionUser": "...",

"packageId": "......",

"message": "attachment name", (max 255 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_COMPLETE

Un paquete completó el proceso de firma.

Si hay varios firmantes, el "sessionUser": "...", será el ID del último firmante que firmó.

{ "name": 'PACKAGE_COMPLETE',

"sessionUser": '...',

"packageId": '......',

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_CREATE Se creó un paquete. Por tanto, el sistema de origen puede registrar el ID del paquete de OneSpan Sign.com junto con el ID de transacción del sistema de origen.

{ "name": "PACKAGE_CREATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DEACTIVATE El estado de un paquete cambió de ENVIADO a BORRADOR.

{ "name": "PACKAGE_DEACTIVATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DECLINE Un destinatario rechazó firmar un paquete y especificó un motivo para hacerlo. El sistema de origen puede utilizar ese motivo para determinar el siguiente paso para el paquete.

{ "name": "PACKAGE_DECLINE",

"sessionUser": "...",

"packageId": "......",

"message": "decline reason", (max 4000 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DELETE Se eliminó un paquete del sistema OneSpan Sign.com.

{ "name": "PACKAGE_DELETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_EXPIRE Un paquete superó su fecha de caducidad.

{ "name": "PACKAGE_EXPIRE",

"sessionUser": "...",

"packageId": "...",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_READY_FOR_COMPLETE Un paquete se marcó como DO_NOT_AUTOCOMPLETE (NO COMPLETAR AUTOMÁTICAMENTE). Se requerirá una acción por parte del remitente para completar el paquete.

{ "name": "PACKAGE_READY_FOR_COMPLETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_RESTORE Se envió un paquete a la papelera de reciclaje, pero se está devolviendo al estado anterior a enviarlo a la papelera.

{ "name": "PACKAGE_RESTORE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_TRASH Se envió un paquete a la carpeta de papelera de reciclaje en el Inbox de OneSpan Sign (estado = TRASH (PAPELERA DE RECICLAJE)).

{ "name": "PACKAGE_TRASH",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

ROLE_REASSIGN Un firmante delegó su firma en otro firmante.

{ "name": "ROLE_REASSIGN",

"sessionUser": "...",

"packageId": "......",

"newRoleId": "......", (max 255 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

SIGNER_COMPLETE Un firmante terminó de firmar todos los documentos.

{ "name": "SIGNER_COMPLETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

SIGNER_LOCKED Una notificación de devolución de llamada indica que un firmante ha sido bloqueado debido a repetidos fallos de autenticación por SMS/Cuestionario.

{ "name": "SIGNER_LOCKED",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

TEMPLATE_CREATE Una notificación de devolución de llamada indica que se creó un formulario.

{ "name": "TEMPLATE_CREATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

Recibir notificaciones de eventos

Una vez que se haya registrado para recibir notificaciones sobre uno o varios tipos de eventos, solo tendrá que esperar a recibir las notificaciones asociadas. Cuando se active un evento relevante, OneSpan Sign enviará un HTTP POST a su URL registrada. Ese mensaje contiene una carga útil en formato JSON que describe el evento que activó la notificación.

La clave de devolución de llamada que registró se pasa a través del encabezado de autorización como "Basic {callbackKey}". Usó esta posibilidad para asegurarse de estar recibiendo notificaciones que contienen la clave secreta compartida, para saber que no está recibiendo llamadas falsas y poder reaccionar en consecuencia.

A continuación, se muestran algunos ejemplos de carga útil de devolución de llamada:

Package was Created
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_CREATE","sessionUser":"18EZDL44xgsX","packageId":"wVdZEaPD2igwUnFGJBjDD0dpO7k=","message":null,"documentId":null,"createdDate":"2018-06-30T20:04:55.384Z"}
Package was Sent
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_ACTIVATE","sessionUser":"18EZDL44xgsX","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:09:50.425Z"}
Signer 1 accepted consent document
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"DOCUMENT_SIGNED","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":"default-consent","createdDate":"2018-06-30T20:10:51.002Z"}
Signer 1 completed a document
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"DOCUMENT_SIGNED","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":"7caf46cdd75f7a411bf8c22793b84fa79d8d180becc40691","createdDate":"2018-06-30T20:12:12.256Z"}
Signer 1 completed signing package
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"SIGNER_COMPLETE","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:12:12.272Z"}
Package was Complete
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_COMPLETE","sessionUser":"e00696ec-d6f5-4feb-89c5-a5ce002a6c66","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:15:01.038Z"}

Configurar notificaciones de devolución de llamada

Los siguientes ejemplos de código se pueden utilizar para establecer la URL de devolución de llamada, la clave de devolución de llamada y para suscribirse a tres notificaciones de eventos diferentes.

  1. Cree su EslClient con su API_KEY y API_URL (recuerde usar aplicaciones en lugar de su espacio aislado para entornos de producción). Asegúrese de cambiar la API_KEY, API_URL, URL, y KEY a sus propios valores.
    final String API_KEY = "YOUR_API_KEY";
    final String API_URL = "https://sandbox.esignlive.com/api";
    final String URL = "http://my.url.com";
    final String KEY = "myCallbackKey";
    EslClient eslClient = new EslClient( API_KEY, API_URL );
  2. Llame a su EventNotificationService para registrarse en las notificaciones PACKAGE_CREATE, PACKAGE_DECLINE y PACKAGE_COMPLETE. También puede agregar más suscripciones de notificaciones desde la tabla de opciones anterior.
  3. eslClient.getEventNotificationService().register(newEventNotificationConfig(URL)
                    .withKey(KEY)
                    .forEvent(NotificationEvent.PACKAGE_CREATE)
                    .forEvent(NotificationEvent.PACKAGE_DECLINE)
                    .forEvent(NotificationEvent.PACKAGE_COMPLETE));

Resultado

Después de ejecutar su código, este es el resultado que verá si vuelve al área de Notificación de eventos en la interfaz de usuario, como se muestra en la sección Antes de empezar.

Captura

Para descargar la muestra de código completa, consulte nuestro sitio Code Share.

Las notificaciones de eventos de devolución de llamada le permiten recibir notificaciones automáticas de eventos que pertenecen a un paquete (en la New User Experience, los paquetes se denominan "transacciones"). Cuando se produce un evento específico, el sistema envía automáticamente un mensaje a un destino que haya elegido.

Ubicación en la interfaz de usuario

En primer lugar, debe localizar esta área en su interfaz de usuario. Después de ejecutar su código, podrá comprobar aquí que se ejecutó correctamente. Para encontrar el área de devolución de llamada en la interfaz de usuario, inicie sesión en OneSpan Sign y haga clic en Administrador > Notificación de eventos.

Captura

Como verá, esta área está completamente vacía (a menos que ya la haya configurado).

Notificaciones disponibles

Antes de continuar con el código, es recomendable conocer todas las notificaciones disponibles. Como se puede ver en la imagen de arriba, existen varias. En la siguiente tabla se enumeran como se deben representar en su código:

En la siguiente tabla:

  • El tamaño máximo de todos los campos sessionUser es de 255 caracteres.
  • El tamaño máximo de todos los campos packageId es de 255 caracteres.
  • El campo sessionUser depende de si el evento fue generado por un remitente o por un firmante o no. Los eventos desencadenados por un remitente tendrán el ID del remitente. Los eventos desencadenados por un firmante tendrán el ID del firmante.
Evento Significado Carga útil JSON
DOCUMENT_SIGNED Se firmó un documento o se aceptaron los Contratos consentimiento y/o divulgación.

{ "name": "DOCUMENT_SIGNED",

"sessionUser": "...",

"packageId": "......",

"documentId": "......", (max 256 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

DOCUMENT_VIEWED Se ha visto un documento.

{ "name": "DOCUMENT_VIEWED",

"sessionUser": "...",

"packageId": "......",

"documentId": "......", (max 256 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

EMAIL_BOUNCE

Se devolvió un correo electrónico. Los tipos de devoluciones son:

  • "BOUNCE" (un mensaje devuelto no válido)
  • "COMPLAINT" (un mensaje devuelto no entregado)
  • "OOTO" (fuera de la oficina)
  • "UNKNOWN" (desconocido)

Para obtener más información, consulte nuestra lista de formularios.

{ "name": "EMAIL_BOUNCE",

"sessionUser": "...",

"packageId": "......",

"message": "bounce type",

"createdDate": "2017-05-02T20:17:58.408Z" }

KBA_FAILURE Ocurrió un error de KBA Authentication.

{ "name": "KBA_FAILURE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ACTIVATE Un paquete pasó del estado BORRADOR o ELIMINADO al estado ENVIADO. De forma predeterminada, un paquete se crea en el estado BORRADOR y pasa al estado ENVIADO cuando está listo para ser procesado por los firmantes.

{ "name": "PACKAGE_ACTIVATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ARCHIVE Una notificación de devolución de llamada indica que se archivó un paquete.

{ "name": "PACKAGE_ARCHIVE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ATTACHMENT Una notificación de devolución de llamada indica que un firmante cargó un archivo adjunto.

{ "name": "PACKAGE_ATTACHMENT",

"sessionUser": "...",

"packageId": "......",

"message": "attachment name", (max 255 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_COMPLETE

Un paquete completó el proceso de firma.

Si hay varios firmantes, el "sessionUser": "...", será el ID del último firmante que firmó.

{ "name": 'PACKAGE_COMPLETE',

"sessionUser": '...',

"packageId": '......',

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_CREATE Se creó un paquete. Por tanto, el sistema de origen puede registrar el ID del paquete de OneSpan Sign.com junto con el ID de transacción del sistema de origen.

{ "name": "PACKAGE_CREATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DEACTIVATE El estado de un paquete cambió de ENVIADO a BORRADOR.

{ "name": "PACKAGE_DEACTIVATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DECLINE Un destinatario rechazó firmar un paquete y especificó un motivo para hacerlo. El sistema de origen puede utilizar ese motivo para determinar el siguiente paso para el paquete.

{ "name": "PACKAGE_DECLINE",

"sessionUser": "...",

"packageId": "......",

"message": "decline reason", (max 4000 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DELETE Se eliminó un paquete del sistema OneSpan Sign.com.

{ "name": "PACKAGE_DELETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_EXPIRE Un paquete superó su fecha de caducidad.

{ "name": "PACKAGE_EXPIRE",

"sessionUser": "...",

"packageId": "...",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_READY_FOR_COMPLETE Un paquete se marcó como DO_NOT_AUTOCOMPLETE (NO COMPLETAR AUTOMÁTICAMENTE). Se requerirá una acción por parte del remitente para completar el paquete.

{ "name": "PACKAGE_READY_FOR_COMPLETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_RESTORE Se envió un paquete a la papelera de reciclaje, pero se está devolviendo al estado anterior a enviarlo a la papelera.

{ "name": "PACKAGE_RESTORE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_TRASH Se envió un paquete a la carpeta de papelera de reciclaje en el Inbox de OneSpan Sign (estado = TRASH (PAPELERA DE RECICLAJE)).

{ "name": "PACKAGE_TRASH",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

ROLE_REASSIGN Un firmante delegó su firma en otro firmante.

{ "name": "ROLE_REASSIGN",

"sessionUser": "...",

"packageId": "......",

"newRoleId": "......", (max 255 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

SIGNER_COMPLETE Un firmante terminó de firmar todos los documentos.

{ "name": "SIGNER_COMPLETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

SIGNER_LOCKED Una notificación de devolución de llamada indica que un firmante ha sido bloqueado debido a repetidos fallos de autenticación por SMS/Cuestionario.

{ "name": "SIGNER_LOCKED",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

TEMPLATE_CREATE Una notificación de devolución de llamada indica que se creó un formulario.

{ "name": "TEMPLATE_CREATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

Recibir notificaciones de eventos

Una vez que se haya registrado para recibir notificaciones sobre uno o varios tipos de eventos, solo tendrá que esperar a recibir las notificaciones asociadas. Cuando se active un evento relevante, OneSpan Sign enviará un HTTP POST a su URL registrada. Ese mensaje contiene una carga útil en formato JSON que describe el evento que activó la notificación.

La clave de devolución de llamada que registró se pasa a través del encabezado de autorización como "Basic {callbackKey}". Usó esta posibilidad para asegurarse de estar recibiendo notificaciones que contienen la clave secreta compartida, para saber que no está recibiendo llamadas falsas y poder reaccionar en consecuencia.

A continuación, se muestran algunos ejemplos de carga útil de devolución de llamada:

Package was Created
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_CREATE","sessionUser":"18EZDL44xgsX","packageId":"wVdZEaPD2igwUnFGJBjDD0dpO7k=","message":null,"documentId":null,"createdDate":"2018-06-30T20:04:55.384Z"}
Package was Sent
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_ACTIVATE","sessionUser":"18EZDL44xgsX","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:09:50.425Z"}
Signer 1 accepted consent document
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"DOCUMENT_SIGNED","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":"default-consent","createdDate":"2018-06-30T20:10:51.002Z"}
Signer 1 completed a document
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"DOCUMENT_SIGNED","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":"7caf46cdd75f7a411bf8c22793b84fa79d8d180becc40691","createdDate":"2018-06-30T20:12:12.256Z"}
Signer 1 completed signing package
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"SIGNER_COMPLETE","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:12:12.272Z"}
Package was Complete
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_COMPLETE","sessionUser":"e00696ec-d6f5-4feb-89c5-a5ce002a6c66","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:15:01.038Z"}

Configurar notificaciones de devolución de llamada

Los siguientes ejemplos de código se pueden utilizar para establecer la URL de devolución de llamada, la clave de devolución de llamada y para suscribirse a tres notificaciones de eventos diferentes.

  1. Cree su EslClient con su API_KEY y API_URL (recuerde usar aplicaciones en lugar de su espacio aislado para entornos de producción). Asegúrese de cambiar la API_KEY, API_URL, URL, y KEY a sus propios valores.
    final String API_KEY = "YOUR_API_KEY";
    final String API_URL = "https://sandbox.esignlive.com/api";
    final String URL = "http://my.url.com";
    final String KEY = "myCallbackKey";
    EslClient eslClient = new EslClient( API_KEY, API_URL );
  2. Llame a su EventNotificationService para registrarse en las notificaciones PACKAGE_CREATE, PACKAGE_DECLINE y PACKAGE_COMPLETE. También puede agregar más suscripciones de notificaciones desde la tabla de opciones anterior.
  3. eslClient.getEventNotificationService().register(newEventNotificationConfig(URL)
                    .withKey(KEY)
                    .forEvent(NotificationEvent.PACKAGE_CREATE)
                    .forEvent(NotificationEvent.PACKAGE_DECLINE)
                    .forEvent(NotificationEvent.PACKAGE_COMPLETE));

Resultado

Después de ejecutar su código, este es el resultado que verá si vuelve al área de Notificación de eventos en la interfaz de usuario, como se muestra en la sección Antes de empezar.

Captura

Para descargar la muestra de código completa, consulte nuestro sitio Code Share.

Las notificaciones de eventos de devolución de llamada le permiten recibir notificaciones automáticas de eventos que pertenecen a un paquete (en la New User Experience, los paquetes se denominan "transacciones"). Cuando se produce un evento específico, el sistema envía automáticamente un mensaje a un destino que haya elegido.

Ubicación en la interfaz de usuario

En primer lugar, debe localizar esta área en su interfaz de usuario. Después de ejecutar su código, podrá comprobar aquí que se ejecutó correctamente. Para encontrar el área de devolución de llamada en la interfaz de usuario, inicie sesión en OneSpan Sign y haga clic en Administrador > Notificación de eventos.

Captura

Como verá, esta área está completamente vacía (a menos que ya la haya configurado).

Notificaciones disponibles

Antes de continuar con el código, es recomendable conocer todas las notificaciones disponibles. Como se puede ver en la imagen de arriba, existen varias. En la siguiente tabla se enumeran como se deben representar en su código:

En la siguiente tabla:

  • El tamaño máximo de todos los campos sessionUser es de 255 caracteres.
  • El tamaño máximo de todos los campos packageId es de 255 caracteres.
  • El campo sessionUser depende de si el evento fue generado por un remitente o por un firmante o no. Los eventos desencadenados por un remitente tendrán el ID del remitente. Los eventos desencadenados por un firmante tendrán el ID del firmante.
Evento Significado Carga útil JSON
DOCUMENT_SIGNED Se firmó un documento o se aceptaron los Contratos consentimiento y/o divulgación.

{ "name": "DOCUMENT_SIGNED",

"sessionUser": "...",

"packageId": "......",

"documentId": "......", (max 256 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

DOCUMENT_VIEWED Se ha visto un documento.

{ "name": "DOCUMENT_VIEWED",

"sessionUser": "...",

"packageId": "......",

"documentId": "......", (max 256 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

EMAIL_BOUNCE

Se devolvió un correo electrónico. Los tipos de devoluciones son:

  • "BOUNCE" (un mensaje devuelto no válido)
  • "COMPLAINT" (un mensaje devuelto no entregado)
  • "OOTO" (fuera de la oficina)
  • "UNKNOWN" (desconocido)

Para obtener más información, consulte nuestra lista de formularios.

{ "name": "EMAIL_BOUNCE",

"sessionUser": "...",

"packageId": "......",

"message": "bounce type",

"createdDate": "2017-05-02T20:17:58.408Z" }

KBA_FAILURE Ocurrió un error de KBA Authentication.

{ "name": "KBA_FAILURE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ACTIVATE Un paquete pasó del estado BORRADOR o ELIMINADO al estado ENVIADO. De forma predeterminada, un paquete se crea en el estado BORRADOR y pasa al estado ENVIADO cuando está listo para ser procesado por los firmantes.

{ "name": "PACKAGE_ACTIVATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ARCHIVE Una notificación de devolución de llamada indica que se archivó un paquete.

{ "name": "PACKAGE_ARCHIVE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_ATTACHMENT Una notificación de devolución de llamada indica que un firmante cargó un archivo adjunto.

{ "name": "PACKAGE_ATTACHMENT",

"sessionUser": "...",

"packageId": "......",

"message": "attachment name", (max 255 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_COMPLETE

Un paquete completó el proceso de firma.

Si hay varios firmantes, el "sessionUser": "...", será el ID del último firmante que firmó.

{ "name": 'PACKAGE_COMPLETE',

"sessionUser": '...',

"packageId": '......',

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_CREATE Se creó un paquete. Por tanto, el sistema de origen puede registrar el ID del paquete de OneSpan Sign.com junto con el ID de transacción del sistema de origen.

{ "name": "PACKAGE_CREATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DEACTIVATE El estado de un paquete cambió de ENVIADO a BORRADOR.

{ "name": "PACKAGE_DEACTIVATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DECLINE Un destinatario rechazó firmar un paquete y especificó un motivo para hacerlo. El sistema de origen puede utilizar ese motivo para determinar el siguiente paso para el paquete.

{ "name": "PACKAGE_DECLINE",

"sessionUser": "...",

"packageId": "......",

"message": "decline reason", (max 4000 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_DELETE Se eliminó un paquete del sistema OneSpan Sign.com.

{ "name": "PACKAGE_DELETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_EXPIRE Un paquete superó su fecha de caducidad.

{ "name": "PACKAGE_EXPIRE",

"sessionUser": "...",

"packageId": "...",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_READY_FOR_COMPLETE Un paquete se marcó como DO_NOT_AUTOCOMPLETE (NO COMPLETAR AUTOMÁTICAMENTE). Se requerirá una acción por parte del remitente para completar el paquete.

{ "name": "PACKAGE_READY_FOR_COMPLETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_RESTORE Se envió un paquete a la papelera de reciclaje, pero se está devolviendo al estado anterior a enviarlo a la papelera.

{ "name": "PACKAGE_RESTORE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

PACKAGE_TRASH Se envió un paquete a la carpeta de papelera de reciclaje en el Inbox de OneSpan Sign (estado = TRASH (PAPELERA DE RECICLAJE)).

{ "name": "PACKAGE_TRASH",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

ROLE_REASSIGN Un firmante delegó su firma en otro firmante.

{ "name": "ROLE_REASSIGN",

"sessionUser": "...",

"packageId": "......",

"newRoleId": "......", (max 255 chars)

"createdDate": "2017-05-02T20:17:58.408Z" }

SIGNER_COMPLETE Un firmante terminó de firmar todos los documentos.

{ "name": "SIGNER_COMPLETE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

SIGNER_LOCKED Una notificación de devolución de llamada indica que un firmante ha sido bloqueado debido a repetidos fallos de autenticación por SMS/Cuestionario.

{ "name": "SIGNER_LOCKED",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

TEMPLATE_CREATE Una notificación de devolución de llamada indica que se creó un formulario.

{ "name": "TEMPLATE_CREATE",

"sessionUser": "...",

"packageId": "......",

"createdDate": "2017-05-02T20:17:58.408Z" }

Recibir notificaciones de eventos

Una vez que se haya registrado para recibir notificaciones sobre uno o varios tipos de eventos, solo tendrá que esperar a recibir las notificaciones asociadas. Cuando se active un evento relevante, OneSpan Sign enviará un HTTP POST a su URL registrada. Ese mensaje contiene una carga útil en formato JSON que describe el evento que activó la notificación.

La clave de devolución de llamada que registró se pasa a través del encabezado de autorización como "Basic {callbackKey}". Usó esta posibilidad para asegurarse de estar recibiendo notificaciones que contienen la clave secreta compartida, para saber que no está recibiendo llamadas falsas y poder reaccionar en consecuencia.

A continuación, se muestran algunos ejemplos de carga útil de devolución de llamada:

Package was Created
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_CREATE","sessionUser":"18EZDL44xgsX","packageId":"wVdZEaPD2igwUnFGJBjDD0dpO7k=","message":null,"documentId":null,"createdDate":"2018-06-30T20:04:55.384Z"}
Package was Sent
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_ACTIVATE","sessionUser":"18EZDL44xgsX","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:09:50.425Z"}
Signer 1 accepted consent document
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"DOCUMENT_SIGNED","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":"default-consent","createdDate":"2018-06-30T20:10:51.002Z"}
Signer 1 completed a document
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"DOCUMENT_SIGNED","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":"7caf46cdd75f7a411bf8c22793b84fa79d8d180becc40691","createdDate":"2018-06-30T20:12:12.256Z"}
Signer 1 completed signing package
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"SIGNER_COMPLETE","sessionUser":"44aafb7c-97b9-40e1-bb59-eb76c7d2a484","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:12:12.272Z"}
Package was Complete
{"@class":"com.silanis.esl.packages.event.ESLProcessEvent","name":"PACKAGE_COMPLETE","sessionUser":"e00696ec-d6f5-4feb-89c5-a5ce002a6c66","packageId":"5n4obeO8jYoPp126Cm-Y3fxdfbo=","message":null,"documentId":null,"createdDate":"2018-06-30T20:15:01.038Z"}

Configurar notificaciones de devolución de llamada

Los siguientes ejemplos de código se pueden utilizar para establecer la URL de devolución de llamada, la clave de devolución de llamada y para suscribirse a tres notificaciones de eventos diferentes.

Solicitud HTTP

POST /api/callback

Encabezados HTTP

 Accept: application/json   Content-Type: application/json   Authorization: Basic api_key 

Carga útil de solicitud

 {   "url": "https://www.esl.com/callbackNotifications",   "key": "secureKey#1",   "events": [   "PACKAGE_CREATE",   "PACKAGE_DECLINE",   "PACKAGE_COMPLETE"   ]   } 

Para obtener una descripción completa de cada campo, consulte la tabla Carga útil de solicitud siguiente.

Carga útil de respuesta

 {   "url": "https://www.esl.com/callbackNotifications",   "key": "secureKey#1",   "events": [   "PACKAGE_CREATE",   "PACKAGE_DECLINE",   "PACKAGE_COMPLETE"   ]   } 

Resultado

Después de ejecutar su código, este es el resultado que verá si vuelve al área de Notificación de eventos en la interfaz de usuario, como se muestra en la sección Antes de empezar.

Captura

Tabla de carga útil de solicitud

PropiedadTipoEditableObligatorioPredeterminadoValores de ejemplo
urlstringNon/ahttps://www.esl.com/callbackNotifications
keystringNon/asecureKey#1