Java SDK
Pour télécharger l'exemple complet de code, consultez notre site de partage de code .
Les notifications d'événements de rappel vous permettent d'être automatiquement informé des événements liés à un paquet (dans la nouvelle expérience utilisateur, les paquets sont appelés « transactions »). Lorsqu'un événement spécifique se produit, le système envoie automatiquement un message à une destination que vous avez choisie.
Emplacement dans l'interface utilisateur
Tout d'abord, vous devriez localiser cette zone dans votre interface utilisateur. Après avoir exécuté votre code, vous pourrez vérifier ici qu'il a bien fonctionné. Pour trouver la zone de rappel depuis l'interface, connectez-vous à OneSpan Sign et cliquez sur Admin > Notification d'événement.
Notifications disponibles
Avant de passer au code, il serait utile de connaître toutes les notifications disponibles. Comme vous pouvez le voir sur l'image ci-dessus, il y en a plusieurs. Le tableau suivant les liste tels qu'ils doivent être représentés dans votre code :
Dans le tableau suivant :
La taille maximale pour tous les
sessionUserchamps est de 255 caractères.La taille maximale pour tous les
packageIdchamps est de 255 caractères.Le
sessionUserchamp dépend du fait que l'événement ait été généré par un expéditeur ou par un signataire. Les événements déclenchés par l'expéditeur auront l'identifiant de l'expéditeur. Les événements déclenchés par le signataire auront l'identifiant du signataire.
Événement | Signification | Charge utile JSON |
|---|---|---|
COBROWSE_REQUEST | Une demande de co-navigation survient lorsqu'un signataire régulier demande une session de co-navigation avec l'expéditeur de la transaction, généralement pour recevoir de l'aide à finaliser la transaction. Cette requête informe l'expéditeur sous forme de notification de rappel. | { « nom » : « COBROWSE_REQUEST », « sessionUser » : « ... », « packageID » : « ...... », « Date de création » : « 2017-05- 02T20:17:58.408Z » « téléphone » : « ...... », « commentaire » : « ...... », « selectedSupportHours » :["Matin - 9h à 12h ((GMT 0:00) GMT)"] } |
DOCUMENT_SIGNED | Un document a été signé, ou des accords de consentement et/ou de divulgation ont été acceptés. | { « nom » : « DOCUMENT_SIGNED », « sessionUser » : « ... », « packageID » : « ...... », "documentId": "......", (max 256 chars) « Date de création » : « 2017-05- 02T20:17:58.408Z » } |
DOCUMENT_VIEWED | Un document a été consulté. | { « nom » : « DOCUMENT_VIEWED », « sessionUser » : « ... », « packageID » : « ...... », "documentId": "......", (max 256 chars) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
EMAIL_BOUNCE | Un e-mail a été rejeté. Les types de rebond sont les suivants :
| { « nom » : « EMAIL_BOUNCE », « sessionUser » : « ... », « packageID » : « ...... », « message » : « type de rebond », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
EDEPOSIT_SUCCESS | La transaction/documents ont été déposés avec succès sur eOriginal. | { « nom » : « EDEPOSIT_SUCCESS », « sessionUser » : null, « packageId » : « COQj6taUQpUFpzPX76RP_eBhiMk= », « message » : « success.edeposit », « documentId » : null, « dateCréée » : 1732287648000 } |
EDEPOSIT_FAILURE | La transaction/documents ne peuvent pas être déposés dans eOriginal d'une manière irrécupérable. Notez que la raison de l'échec peut varier. | { « nom » : « EDEPOSIT_FAILURE », « sessionUser » : null, « packageId » : « 6Ve4c5qod3joGJL-dRPzRs9g2vM= », « message » : « unrerunable.error.edeposit : Échec de téléverser dans le coffre eOriginal. », « documentId » : null, « createdDate » : 1732287802000 } |
EDEPOSIT_FAILURE_ATTEMPT | La transaction/documents ne peuvent pas être déposés dans eOriginal de manière irrécupérable, et il y aura des tentatives automatisées supplémentaires de réenvoi des documents. | { « nom » : « EDEPOSIT_ATTEMPT_FAILURE », « sessionUser » : null, « packageId » : « VOcc64OByg6jNUpbwixkwFCJhiI= », « message » : « Tentative de rappel de la tentative de rappel 1/144 échouée pour l'interface graphique : VOcc64OByg6jNUpbwixkwFCJhiI= », « documentId » : null, « dateCréée » : « 2023-10-13T14:24:11.000Z"} |
KBA_FAILURE | Il y a eu un échec d'authentification KBA. | { « nom » : « KBA_FAILURE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ACTIVATE | Un colis a été déplacé du statut DRAFT ou SUPPRIMÉ vers le statut ENVOYÉ. Par défaut, un paquet est créé dans l'état DRAFT, et est déplacé dans l'état ENVOYÉ lorsqu'il est prêt à être traité par les signataires. | { « nom » : « PACKAGE_ACTIVATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ARCHIVE | Une notification de rappel indique qu'un colis a été archivé. | { « nom » : « PACKAGE_ARCHIVE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ATTACHMENT | Une notification de rappel indique qu'un signataire a téléchargé une pièce jointe. | { « nom » : « PACKAGE_ATTACHMENT », « sessionUser » : « ... », « packageID » : « ...... », « message » : « nom de l'annexe », (max 255 caractères) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_COMPLETE | Un colis a terminé le processus de signature. S'il y a plusieurs signataires, alors le « sessionUser » : « ... » sera l'identifiant de signataire du dernier signataire à signer. | { « nom » : « PACKAGE_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_CREATE | Un paquet a été créé. Ainsi, le système d'origine peut enregistrer l'ID de paquet de OneSpan Sign.com, ainsi que l'ID de transaction du système d'origine. REMARQUE : A | { « nom » : « PACKAGE_CREATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DEACTIVATE | Le statut d'un colis est passé de ENVOYÉ à BROUILLON. | { « nom » : « PACKAGE_DEACTIVATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DECLINE | Un destinataire a refusé de signer un colis et a spécifié une raison de le faire, le Système d'origine peut utiliser cette raison pour déterminer l'étape suivante du colis. | { « nom » : « PACKAGE_DECLINE », « sessionUser » : « ... », « packageID » : « ...... », « message » : « raison de refuser », (max 4000 caractères) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DELETE | Un package a été supprimé du système OneSpan Sign.com. | { « nom » : « PACKAGE_DELETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_EXPIRE | Un colis a dépassé sa date d'expiration. | { « nom » : « PACKAGE_EXPIRE », « sessionUser » : « ... », « packageId » : « ... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_READY_FOR_COMPLETE | Un colis a été marqué comme DO_NOT_AUTOCOMPLETE. Une action de l'expéditeur sera requise pour compléter le colis. | { « nom » : « PACKAGE_READY_FOR_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_RESTORE | Un colis a été détruit, mais est en train d'être ramené dans l'état dans lequel il se trouvait avant d'être jeté. | { « nom » : « PACKAGE_RESTORE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_TRASH | Un colis a été déplacé dans le dossier corbeille dans la boîte de réception de OneSpan Sign (statut = DÉCHETS). | { « nom » : « PACKAGE_TRASH », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
RECORDINGS_READY | Après que tous les signataires ont terminé de signer une transaction dans la salle virtuelle, la session enregistrée est traitée. Une fois les enregistrements prêts à être téléchargés, cette notification est envoyée. | { « nom » : « RECORDINGS_READY », « sessionUser » : »... », « packageID » : « ...... », « dateCreate » :"2022-06-03T14:46:36.808Z » } |
ROLE_REASSIGN | Un signataire a délégué sa signature à un autre signataire. Lorsque cela se produit, OneSpan Sign crée un nouveau rôle avec un nouveau signataire. Il est judicieux à ce stade d'obtenir l'identifiant de signataire de ce nouveau rôle. C'est l'id du signataire, et non l'id du rôle, qui fera partie des événements futurs, comme SIGNER_COMPLETE. Connaître l'identifiant du signataire, qui est transmis dans l'élément sessionUser de cet événement (et d'autres), facilitera le suivi du statut des signataires. | { « nom » : « ROLE_REASSIGN », « sessionUser » : « ... », « packageID » : « ...... », "newRoleId": "......", (max 255 chars) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
SIGNER_COMPLETE | Un signataire a terminé la signature de tous les documents. | { « nom » : « SIGNER_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
SIGNER_LOCKED | Une notification de rappel indique qu'un signataire a été bloqué en raison d'échecs répétés d'authentification SMS/Q&R. | { « nom » : « SIGNER_LOCKED », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
TEMPLATE_CREATE | Une notification de rappel indique qu'un modèle a été créé. | { « nom » : « TEMPLATE_CREATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
Réception des notifications d'événements
Une fois que vous vous êtes inscrit pour être informé d'un ou plusieurs types d'événements, il vous suffit d'écouter les notifications associées. Lorsqu'un événement pertinent est déclenché, OneSpan Sign envoie un HTTP POST à votre URL enregistrée. Ce message contient une charge utile au format JSON, décrivant l'événement qui a déclenché la notification.
La clé de rappel que vous avez enregistrée est passée via l'en-tête d'Autorisation sous le nom de « Basic {callbackKey} ». Vous devez utiliser cela pour vous assurer de recevoir des notifications contenant le secret partagé, afin de savoir que vous ne recevez pas d'appels usurpés et de pouvoir réagir en conséquence.
Voici quelques exemples de charges utiles de rappel :
// 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"
}Mise en place des notifications de rappel
Les exemples de code suivants peuvent être utilisés pour définir l'URL de rappel, la clé de rappel, et vous abonner à trois notifications d'événements différentes.
Créez votre client ESL avec vos API_KEY et API_URL (n'oubliez pas d'utiliser des applications au lieu de votre bac à sable pour les environnements de production). Veillez à modifier la API_KEY, la API_URL, l'URL et la CLÉ de vos propres valeurs.
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 );Appelez votre EventNotificationService pour vous inscrire aux notifications PACKAGE_CREATE, PACKAGE_DECLINE et PACKAGE_COMPLETE . Vous pouvez également ajouter plus d'abonnements à notifications à partir du tableau des options ci-dessus.
eslClient.getEventNotificationService().register(newEventNotificationConfig(URL) .withKey(KEY) .forEvent(NotificationEvent.PACKAGE_CREATE) .forEvent(NotificationEvent.PACKAGE_DECLINE) .forEvent(NotificationEvent.PACKAGE_COMPLETE));
Le résultat
Après avoir exécuté votre code, cliquez sur Admin > Notification d'événement. Vous verrez que les notifications d'événement sélectionnées ont été activées.
.NET SDK
Pour télécharger l'exemple complet de code, consultez notre site de partage de code .
Les notifications d'événements de rappel vous permettent d'être automatiquement informé des événements liés à un paquet (dans la nouvelle expérience utilisateur, les paquets sont appelés « transactions »). Lorsqu'un événement spécifique se produit, le système envoie automatiquement un message à une destination que vous avez choisie.
Emplacement dans l'interface utilisateur
Tout d'abord, vous devriez localiser cette zone dans votre interface utilisateur. Après avoir exécuté votre code, vous pourrez vérifier ici qu'il a bien fonctionné. Pour trouver la zone de rappel depuis l'interface, connectez-vous à OneSpan Sign et cliquez sur Admin > Notification d'événement.
Notifications disponibles
Avant de passer au code, il serait utile de connaître toutes les notifications disponibles. Comme vous pouvez le voir sur l'image ci-dessus, il y en a plusieurs. Le tableau suivant les liste tels qu'ils doivent être représentés dans votre code :
Dans le tableau suivant :
La taille maximale pour tous les
sessionUserchamps est de 255 caractères.La taille maximale pour tous les
packageIdchamps est de 255 caractères.Le
sessionUserchamp dépend du fait que l'événement ait été généré par un expéditeur ou par un signataire. Les événements déclenchés par l'expéditeur auront l'identifiant de l'expéditeur. Les événements déclenchés par le signataire auront l'identifiant du signataire.
Événement | Signification | Charge utile JSON |
|---|---|---|
COBROWSE_REQUEST | Une demande de co-navigation survient lorsqu'un signataire régulier demande une session de co-navigation avec l'expéditeur de la transaction, généralement pour recevoir de l'aide à finaliser la transaction. Cette requête informe l'expéditeur sous forme de notification de rappel. | { « nom » : « COBROWSE_REQUEST », « sessionUser » : « ... », « packageID » : « ...... », « Date de création » : « 2017-05- 02T20:17:58.408Z » « téléphone » : « ...... », « commentaire » : « ...... », « selectedSupportHours » :["Matin - 9h à 12h ((GMT 0:00) GMT)"] } |
DOCUMENT_SIGNED | Un document a été signé, ou des accords de consentement et/ou de divulgation ont été acceptés. | { « nom » : « DOCUMENT_SIGNED », « sessionUser » : « ... », « packageID » : « ...... », "documentId": "......", (max 256 chars) « Date de création » : « 2017-05- 02T20:17:58.408Z » } |
DOCUMENT_VIEWED | Un document a été consulté. | { « nom » : « DOCUMENT_VIEWED », « sessionUser » : « ... », « packageID » : « ...... », "documentId": "......", (max 256 chars) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
EMAIL_BOUNCE | Un e-mail a été rejeté. Les types de rebond sont les suivants :
| { « nom » : « EMAIL_BOUNCE », « sessionUser » : « ... », « packageID » : « ...... », « message » : « type de rebond », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
EDEPOSIT_SUCCESS | La transaction/documents ont été déposés avec succès sur eOriginal. | { « nom » : « EDEPOSIT_SUCCESS », « sessionUser » : null, « packageId » : « COQj6taUQpUFpzPX76RP_eBhiMk= », « message » : « success.edeposit », « documentId » : null, « dateCréée » : 1732287648000 } |
EDEPOSIT_FAILURE | La transaction/documents ne peuvent pas être déposés dans eOriginal d'une manière irrécupérable. Notez que la raison de l'échec peut varier. | { « nom » : « EDEPOSIT_FAILURE », « sessionUser » : null, « packageId » : « 6Ve4c5qod3joGJL-dRPzRs9g2vM= », « message » : « unrerunable.error.edeposit : Échec de téléverser dans le coffre eOriginal. », « documentId » : null, « createdDate » : 1732287802000 } |
EDEPOSIT_FAILURE_ATTEMPT | La transaction/documents ne peuvent pas être déposés dans eOriginal de manière irrécupérable, et il y aura des tentatives automatisées supplémentaires de réenvoi des documents. | { « nom » : « EDEPOSIT_ATTEMPT_FAILURE », « sessionUser » : null, « packageId » : « VOcc64OByg6jNUpbwixkwFCJhiI= », « message » : « Tentative de rappel de la tentative de rappel 1/144 échouée pour l'interface graphique : VOcc64OByg6jNUpbwixkwFCJhiI= », « documentId » : null, « dateCréée » : « 2023-10-13T14:24:11.000Z"} |
KBA_FAILURE | Il y a eu un échec d'authentification KBA. | { « nom » : « KBA_FAILURE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ACTIVATE | Un colis a été déplacé du statut DRAFT ou SUPPRIMÉ vers le statut ENVOYÉ. Par défaut, un paquet est créé dans l'état DRAFT, et est déplacé dans l'état ENVOYÉ lorsqu'il est prêt à être traité par les signataires. | { « nom » : « PACKAGE_ACTIVATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ARCHIVE | Une notification de rappel indique qu'un colis a été archivé. | { « nom » : « PACKAGE_ARCHIVE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ATTACHMENT | Une notification de rappel indique qu'un signataire a téléchargé une pièce jointe. | { « nom » : « PACKAGE_ATTACHMENT », « sessionUser » : « ... », « packageID » : « ...... », « message » : « nom de l'annexe », (max 255 caractères) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_COMPLETE | Un colis a terminé le processus de signature. S'il y a plusieurs signataires, alors le « sessionUser » : « ... » sera l'identifiant de signataire du dernier signataire à signer. | { « nom » : « PACKAGE_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_CREATE | Un paquet a été créé. Ainsi, le système d'origine peut enregistrer l'ID de paquet de OneSpan Sign.com, ainsi que l'ID de transaction du système d'origine. REMARQUE : A | { « nom » : « PACKAGE_CREATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DEACTIVATE | Le statut d'un colis est passé de ENVOYÉ à BROUILLON. | { « nom » : « PACKAGE_DEACTIVATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DECLINE | Un destinataire a refusé de signer un colis et a spécifié une raison de le faire, le Système d'origine peut utiliser cette raison pour déterminer l'étape suivante du colis. | { « nom » : « PACKAGE_DECLINE », « sessionUser » : « ... », « packageID » : « ...... », « message » : « raison de refuser », (max 4000 caractères) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DELETE | Un package a été supprimé du système OneSpan Sign.com. | { « nom » : « PACKAGE_DELETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_EXPIRE | Un colis a dépassé sa date d'expiration. | { « nom » : « PACKAGE_EXPIRE », « sessionUser » : « ... », « packageId » : « ... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_READY_FOR_COMPLETE | Un colis a été marqué comme DO_NOT_AUTOCOMPLETE. Une action de l'expéditeur sera requise pour compléter le colis. | { « nom » : « PACKAGE_READY_FOR_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_RESTORE | Un colis a été détruit, mais est en train d'être ramené dans l'état dans lequel il se trouvait avant d'être jeté. | { « nom » : « PACKAGE_RESTORE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_TRASH | Un colis a été déplacé dans le dossier corbeille dans la boîte de réception de OneSpan Sign (statut = DÉCHETS). | { « nom » : « PACKAGE_TRASH », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
RECORDINGS_READY | Après que tous les signataires ont terminé de signer une transaction dans la salle virtuelle, la session enregistrée est traitée. Une fois les enregistrements prêts à être téléchargés, cette notification est envoyée. | { « nom » : « RECORDINGS_READY », « sessionUser » : »... », « packageID » : « ...... », « dateCreate » :"2022-06-03T14:46:36.808Z » } |
ROLE_REASSIGN | Un signataire a délégué sa signature à un autre signataire. Lorsque cela se produit, OneSpan Sign crée un nouveau rôle avec un nouveau signataire. Il est judicieux à ce stade d'obtenir l'identifiant de signataire de ce nouveau rôle. C'est l'id du signataire, et non l'id du rôle, qui fera partie des événements futurs, comme SIGNER_COMPLETE. Connaître l'identifiant du signataire, qui est transmis dans l'élément sessionUser de cet événement (et d'autres), facilitera le suivi du statut des signataires. | { « nom » : « ROLE_REASSIGN », « sessionUser » : « ... », « packageID » : « ...... », "newRoleId": "......", (max 255 chars) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
SIGNER_COMPLETE | Un signataire a terminé la signature de tous les documents. | { « nom » : « SIGNER_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
SIGNER_LOCKED | Une notification de rappel indique qu'un signataire a été bloqué en raison d'échecs répétés d'authentification SMS/Q&R. | { « nom » : « SIGNER_LOCKED », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
TEMPLATE_CREATE | Une notification de rappel indique qu'un modèle a été créé. | { « nom » : « TEMPLATE_CREATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
Réception des notifications d'événements
Une fois que vous vous êtes inscrit pour être informé d'un ou plusieurs types d'événements, il vous suffit d'écouter les notifications associées. Lorsqu'un événement pertinent est déclenché, OneSpan Sign envoie un HTTP POST à votre URL enregistrée. Ce message contient une charge utile au format JSON, décrivant l'événement qui a déclenché la notification.
La clé de rappel que vous avez enregistrée est passée via l'en-tête d'Autorisation sous le nom de « Basic {callbackKey} ». Vous devez utiliser cela pour vous assurer de recevoir des notifications contenant le secret partagé, afin de savoir que vous ne recevez pas d'appels usurpés et de pouvoir réagir en conséquence.
Voici quelques exemples de charges utiles de rappel :
// 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"
}Mise en place des notifications de rappel
Les exemples de code suivants peuvent être utilisés pour définir l'URL de rappel, la clé de rappel, et vous abonner à trois notifications d'événements différentes.
Créez votre client ESL avec vos API_KEY et API_URL (n'oubliez pas d'utiliser des applications au lieu de votre bac à sable pour les environnements de production). Veillez à modifier la API_KEY, la API_URL, l'URL et la CLÉ de vos propres valeurs.
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);Appelez votre EventNotificationService pour vous inscrire aux notifications PACKAGE_CREATE, PACKAGE_DECLINE et PACKAGE_COMPLETE . Vous pouvez également ajouter plus d'abonnements à notifications à partir du tableau des options ci-dessus.
eslClient.getEventNotificationService().register(newEventNotificationConfig(URL) .withKey(KEY) .forEvent(NotificationEvent.PACKAGE_CREATE) .forEvent(NotificationEvent.PACKAGE_DECLINE) .forEvent(NotificationEvent.PACKAGE_COMPLETE));
Le résultat
Après avoir exécuté votre code, cliquez sur Admin > Notification d'événement. Vous verrez que les notifications d'événement sélectionnées ont été activées.
REST API
Pour télécharger l'exemple complet de code, consultez notre site de partage de code .
Les notifications d'événements de rappel vous permettent d'être automatiquement informé des événements liés à un paquet (dans la nouvelle expérience utilisateur, les paquets sont appelés « transactions »). Lorsqu'un événement spécifique se produit, le système envoie automatiquement un message à une destination que vous avez choisie.
Emplacement dans l'interface utilisateur
Tout d'abord, vous devriez localiser cette zone dans votre interface utilisateur. Après avoir exécuté votre code, vous pourrez vérifier ici qu'il a bien fonctionné. Pour trouver la zone de rappel depuis l'interface, connectez-vous à OneSpan Sign et cliquez sur Admin > Notification d'événement.
Notifications disponibles
Avant de passer au code, il serait utile de connaître toutes les notifications disponibles. Comme vous pouvez le voir sur l'image ci-dessus, il y en a plusieurs. Le tableau suivant les liste tels qu'ils doivent être représentés dans votre code :
Dans le tableau suivant :
La taille maximale pour tous les
sessionUserchamps est de 255 caractères.La taille maximale pour tous les
packageIdchamps est de 255 caractères.Le
sessionUserchamp dépend du fait que l'événement ait été généré par un expéditeur ou par un signataire. Les événements déclenchés par l'expéditeur auront l'identifiant de l'expéditeur. Les événements déclenchés par le signataire auront l'identifiant du signataire.
Événement | Signification | Charge utile JSON |
|---|---|---|
COBROWSE_REQUEST | Une demande de co-navigation survient lorsqu'un signataire régulier demande une session de co-navigation avec l'expéditeur de la transaction, généralement pour recevoir de l'aide à finaliser la transaction. Cette requête informe l'expéditeur sous forme de notification de rappel. | { « nom » : « COBROWSE_REQUEST », « sessionUser » : « ... », « packageID » : « ...... », « Date de création » : « 2017-05- 02T20:17:58.408Z » « téléphone » : « ...... », « commentaire » : « ...... », « selectedSupportHours » :["Matin - 9h à 12h ((GMT 0:00) GMT)"] } |
DOCUMENT_SIGNED | Un document a été signé, ou des accords de consentement et/ou de divulgation ont été acceptés. | { « nom » : « DOCUMENT_SIGNED », « sessionUser » : « ... », « packageID » : « ...... », "documentId": "......", (max 256 chars) « Date de création » : « 2017-05- 02T20:17:58.408Z » } |
DOCUMENT_VIEWED | Un document a été consulté. | { « nom » : « DOCUMENT_VIEWED », « sessionUser » : « ... », « packageID » : « ...... », "documentId": "......", (max 256 chars) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
EMAIL_BOUNCE | Un e-mail a été rejeté. Les types de rebond sont les suivants :
| { « nom » : « EMAIL_BOUNCE », « sessionUser » : « ... », « packageID » : « ...... », « message » : « type de rebond », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
EDEPOSIT_SUCCESS | La transaction/documents ont été déposés avec succès sur eOriginal. | { « nom » : « EDEPOSIT_SUCCESS », « sessionUser » : null, « packageId » : « COQj6taUQpUFpzPX76RP_eBhiMk= », « message » : « success.edeposit », « documentId » : null, « dateCréée » : 1732287648000 } |
EDEPOSIT_FAILURE | La transaction/documents ne peuvent pas être déposés dans eOriginal d'une manière irrécupérable. Notez que la raison de l'échec peut varier. | { « nom » : « EDEPOSIT_FAILURE », « sessionUser » : null, « packageId » : « 6Ve4c5qod3joGJL-dRPzRs9g2vM= », « message » : « unrerunable.error.edeposit : Échec de téléverser dans le coffre eOriginal. », « documentId » : null, « createdDate » : 1732287802000 } |
EDEPOSIT_FAILURE_ATTEMPT | La transaction/documents ne peuvent pas être déposés dans eOriginal de manière irrécupérable, et il y aura des tentatives automatisées supplémentaires de réenvoi des documents. | { « nom » : « EDEPOSIT_ATTEMPT_FAILURE », « sessionUser » : null, « packageId » : « VOcc64OByg6jNUpbwixkwFCJhiI= », « message » : « Tentative de rappel de la tentative de rappel 1/144 échouée pour l'interface graphique : VOcc64OByg6jNUpbwixkwFCJhiI= », « documentId » : null, « dateCréée » : « 2023-10-13T14:24:11.000Z"} |
KBA_FAILURE | Il y a eu un échec d'authentification KBA. | { « nom » : « KBA_FAILURE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ACTIVATE | Un colis a été déplacé du statut DRAFT ou SUPPRIMÉ vers le statut ENVOYÉ. Par défaut, un paquet est créé dans l'état DRAFT, et est déplacé dans l'état ENVOYÉ lorsqu'il est prêt à être traité par les signataires. | { « nom » : « PACKAGE_ACTIVATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ARCHIVE | Une notification de rappel indique qu'un colis a été archivé. | { « nom » : « PACKAGE_ARCHIVE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_ATTACHMENT | Une notification de rappel indique qu'un signataire a téléchargé une pièce jointe. | { « nom » : « PACKAGE_ATTACHMENT », « sessionUser » : « ... », « packageID » : « ...... », « message » : « nom de l'annexe », (max 255 caractères) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_COMPLETE | Un colis a terminé le processus de signature. S'il y a plusieurs signataires, alors le « sessionUser » : « ... » sera l'identifiant de signataire du dernier signataire à signer. | { « nom » : « PACKAGE_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_CREATE | Un paquet a été créé. Ainsi, le système d'origine peut enregistrer l'ID de paquet de OneSpan Sign.com, ainsi que l'ID de transaction du système d'origine. REMARQUE : A | { « nom » : « PACKAGE_CREATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DEACTIVATE | Le statut d'un colis est passé de ENVOYÉ à BROUILLON. | { « nom » : « PACKAGE_DEACTIVATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DECLINE | Un destinataire a refusé de signer un colis et a spécifié une raison de le faire, le Système d'origine peut utiliser cette raison pour déterminer l'étape suivante du colis. | { « nom » : « PACKAGE_DECLINE », « sessionUser » : « ... », « packageID » : « ...... », « message » : « raison de refuser », (max 4000 caractères) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_DELETE | Un package a été supprimé du système OneSpan Sign.com. | { « nom » : « PACKAGE_DELETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_EXPIRE | Un colis a dépassé sa date d'expiration. | { « nom » : « PACKAGE_EXPIRE », « sessionUser » : « ... », « packageId » : « ... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_READY_FOR_COMPLETE | Un colis a été marqué comme DO_NOT_AUTOCOMPLETE. Une action de l'expéditeur sera requise pour compléter le colis. | { « nom » : « PACKAGE_READY_FOR_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_RESTORE | Un colis a été détruit, mais est en train d'être ramené dans l'état dans lequel il se trouvait avant d'être jeté. | { « nom » : « PACKAGE_RESTORE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
PACKAGE_TRASH | Un colis a été déplacé dans le dossier corbeille dans la boîte de réception de OneSpan Sign (statut = DÉCHETS). | { « nom » : « PACKAGE_TRASH », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
RECORDINGS_READY | Après que tous les signataires ont terminé de signer une transaction dans la salle virtuelle, la session enregistrée est traitée. Une fois les enregistrements prêts à être téléchargés, cette notification est envoyée. | { « nom » : « RECORDINGS_READY », « sessionUser » : »... », « packageID » : « ...... », « dateCreate » :"2022-06-03T14:46:36.808Z » } |
ROLE_REASSIGN | Un signataire a délégué sa signature à un autre signataire. Lorsque cela se produit, OneSpan Sign crée un nouveau rôle avec un nouveau signataire. Il est judicieux à ce stade d'obtenir l'identifiant de signataire de ce nouveau rôle. C'est l'id du signataire, et non l'id du rôle, qui fera partie des événements futurs, comme SIGNER_COMPLETE. Connaître l'identifiant du signataire, qui est transmis dans l'élément sessionUser de cet événement (et d'autres), facilitera le suivi du statut des signataires. | { « nom » : « ROLE_REASSIGN », « sessionUser » : « ... », « packageID » : « ...... », "newRoleId": "......", (max 255 chars) « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
SIGNER_COMPLETE | Un signataire a terminé la signature de tous les documents. | { « nom » : « SIGNER_COMPLETE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
SIGNER_LOCKED | Une notification de rappel indique qu'un signataire a été bloqué en raison d'échecs répétés d'authentification SMS/Q&R. | { « nom » : « SIGNER_LOCKED », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
TEMPLATE_CREATE | Une notification de rappel indique qu'un modèle a été créé. | { « nom » : « TEMPLATE_CREATE », « sessionUser » : « ... », « packageID » : « ...... », « dateCréée » : « 2017-05-02T20:17:58.408Z » } |
Réception des notifications d'événements
Une fois que vous vous êtes inscrit pour être informé d'un ou plusieurs types d'événements, il vous suffit d'écouter les notifications associées. Lorsqu'un événement pertinent est déclenché, OneSpan Sign envoie un HTTP POST à votre URL enregistrée. Ce message contient une charge utile au format JSON, décrivant l'événement qui a déclenché la notification.
La clé de rappel que vous avez enregistrée est passée via l'en-tête d'Autorisation sous le nom de « Basic {callbackKey} ». Vous devez utiliser cela pour vous assurer de recevoir des notifications contenant le secret partagé, afin de savoir que vous ne recevez pas d'appels usurpés et de pouvoir réagir en conséquence.
Voici quelques exemples de charges utiles de rappel :
// 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"
}Mise en place des notifications de rappel
Les exemples de code suivants peuvent être utilisés pour définir l'URL de rappel, la clé de rappel, et vous abonner à trois notifications d'événements différentes.
Requête HTTP
POST /api/callbackEn-têtes HTTP
Accept: application/json
Content-Type: application/json
Authorization: Basic api_key Charge utile de demande
{
"url": "https://www.esl.com/callbackNotifications",
"key": "secureKey#1",
"events": [
"PACKAGE_CREATE",
"PACKAGE_DECLINE",
"PACKAGE_COMPLETE"
]
}Pour une description complète de chaque champ, voir le tableau des charges utiles de demande ci-dessous.
Charge utile de réponse
{
"url": "https://www.esl.com/callbackNotifications",
"key": "secureKey#1",
"events": [
"PACKAGE_CREATE",
"PACKAGE_DECLINE",
"PACKAGE_COMPLETE"
]
}Le résultat
Après avoir exécuté votre code, cliquez sur Admin > Notification d'événement. Vous verrez que les notifications d'événement sélectionnées ont été activées.
Table des charges utiles de requêtes
Propriété | Type | Modifiable | Obligatoire | Par défaut | Valeurs d'échantillonnage |
|---|---|---|---|---|---|
URL | Corde | Oui | Non | N/D | https://www.esl.com/callbackNotifications |
Clé | Corde | Oui | Non | N/D | secureKey#1 |