OneSpan Sign Developer: Notification d'événement de rappel - Partie 3
Dans les deux premières parties de cette série de blog, nous avons passé en revue les avantages de l'utilisation des notifications d'événements ainsi que le flux de travail recommandé pour les transactions de sondage et les informations relatives aux signataires dans la partie 1. De là, nous avons parcouru les détails techniques liés à l'auditeur de rappel dans la partie 2.
Pour la troisième partie de cette série de blog, nous allons utiliser un simple projet de démarrage de printemps pour montrer comment mettre en place un auditeur de rappel en action. Combiné avec la partie 2, vous verrez comment nous suivons ces flux pour faciliter votre intégration d'écoute d'événements.
Notification d'événement de rappel en action
Avant de commencer le projet de démarrage printanier, assurez-vous de terminer les éléments suivants :
Inscrivez-vous aux notifications d'événements
Avant que le système OneSpan Sign puisse vous informer d'un événement, vous devez activer les notifications. Suivez ce guide de fonctionnalités pour apprendre à vous inscrire.
Dans notre exemple, nous nous inscrirons simplement à partir du portail Web.
Télécharger Java SDK de OneSpan Sign
Vous aurez également besoin de Java SDK de OneSpan Sign. Téléchargez et dézez le SDK à l'emplacement de votre choix.
Ou alternativement, vous pouvez importer OneSpan Sign Java SDK de Maven Repository par:
com.silanis.esl (en) Sdk 11.21
Installer JDK et IDE
Télécharger Ngrok
Bottes de printemps de base et connaissances Maven
Dans ce guide, nous allons construire un projet de démarrage de printemps en utilisant des méthodes asynchrones de printemps. Le code source complet peut être trouvé ici.
N'hésitez pas à importer directement le code source en tant que projet maven existant ou copier et coller tous les fichiers/codes nécessaires à votre projet existant.
N'oubliez pas de vous référer également aux tutoriels officiels sur la construction d'un service Web RESTful avec Spring Boot et la création de méthodes asynchrones.
Le code
Nous aurons besoin d'un contrôleur pour traiter les demandes de rappel envoyées par OneSpan Sign. Vous trouverez ci-dessous le code pour le CallbackController pour traiter la notification d'événement.
@RestController classe publique CallbackController (en) @Autowired privé OssCallbackService ossCallbackService; @PostMapping("/rappel") @ResponseStatus(httpStatus.OK) rappel public nul@RequestBody ( OssCallbackVo ossCallbackVo, @RequestHeader("Authorization") String callbackKey) System.out.println ("recevoir une notification de rappel!"); Le 1. vérifier la clé de rappel si (callbackKey ! ' nul) System.out.println ("clé de rappel: " - callbackKey); si!ossCallbackService( .validateCallbackKey (callbackKey)) lancer la nouvelle RuntimeException ("La clé de rappel n'est pas valide: " - callbackKey); } } System.out.println ("corps de rappel: " ossCallbackVo); 2. manipuler le rappel asynchronement essayer { ossCallbackService.handleCallback(ossCallbackVo); - capture (Exception e) e.printStackTrace(); } } }
Dans le code ci-dessus, toute demande POST frappant "/callback" itinéraire sera traitée par notre application.
Une fois que tous les documents d'un paquet ont été signés et le paquet complété, OneSpan Sign fera une demande POST à l'URL enregistrée avec l'exemple suivant Charge utile JSON:
{ "@class": "com.silanis.esl.packages.event.ESLProcessEvent", "nom": "PACKAGE_COMPLETE", "sessionUser": "0787be84-f095-44c7-ba00-787093df86fc", "packageId": "KHiRfOXgKK0gpVWwwpFOSNy6o34", "message": nul, "documentId": nul }
Note:
Le "sessionUser" ci-dessus se réfère à l'Id de signataire, il est donc recommandé de définir l'Id personnalisé (dans SDK) ou signion Id (dans REST) lors de la création du signataire et le stocker dans votre base de données locale.
Ensuite, nous distribuerons à différentes fonctions de service en fonction de l'événement de rappel. Une classe de service avec méthode asynchrone a été utilisée pour gérer cette logique métier.
@Service classe publique OssCallbackService (en) @Autowired ossConfiguration privé; public boolean validateCallbackKey (String callbackKey) si (callbackKey ! ' nul) Base de cordes64Credentials - callbackKey.substring("Basic".length()).trim(); retour ossConfiguration.CALLBACK_KEY.equals(base64Credentials); } else { retour faux ; } } @Async("asyncExecutor") public vide handleCallback(OssCallbackVo ossCallbackVo) commutateur (OssCallbackEvents.valueOf(ossCallbackVo.getName))) cas PACKAGE_COMPLETE: process_PACKAGE_COMPLETE(ossCallbackVo); pause; cas PACKAGE_CREATE: pause; cas PACKAGE_DEACTIVATE: pause; ...... Par défaut: pause; } } process_PACKAGE_COMPLETE de vide privé(OssCallbackVo ossCallbackVo) EslClient eslClient - nouveau EslClient(ossConfiguration.API_KEY, ossConfiguration.API_URL); Forfait à cordesId - ossCallbackVo.getPackageId(); documents d'octet[] eslClient.downloadZippedDocuments (nouveau PackageId(packageId)); FilePath de chaîne - ossConfiguration.FILE_SAVE_PATH ' ' ' ' documents_ ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' - nouveau SimpleDateFormat ("yyyy_MM_dd"). Files.saveTo (documents, filePath); } vide privé process_DOCUMENT_SIGNED(OssCallbackVo ossCallbackVo) } privé vide process_SIGNER_COMPLETE(OssCallbackVo ossCallbackVo) } ...... }
Nous avons déclaré toutes les fonctions de talon possibles traitant des événements de rappel dans notre code. Dans cet exemple, l'événement « PACKAGE_COMPLETE » a été surveillé et a déclenché la fonction de service correspondante. Puis eslClient a été utilisé pour télécharger les documents signés.
Enfin, toutes vos configurations liées au signe OneSpan sont stockées dans le fichier oss.properties. Il vous suffit de s'adapter à vos propres informations avant d'exécuter le code :
OSS_API_KEY-api_key OSS_API_URLapi_url OSS_FILE_SAVE_PATH file_save_path OSS_CALLBACK_KEY callback_key
Effectuer un test
Exécutez la fonction principale dans votre classe Application.java. Ensuite, ouvrez une invite de commande et changez le répertoire à l'endroit où vous avez enregistré votre ngrok exécutable. Entrez la commande suivante :
ngrok http [port] -host-header"localhost:[port]"
Ensuite, connectez-vous à votre compte OneSpan Sign, naviguez sur la page Admin et modifiez le domaine de votre URL de rappel.
Enfin, créez, envoyez et remplissez un package de test. Vous devriez être en mesure de voir les documents signés comme un fichier zippé dans le fichier oss.properties. Dès que OneSpan Sign envoie une notification de rappel à votre auditeur, vous verrez le message ci-dessous sur votre console IDE. Si vous pouvez les voir tous les deux, cela signifie que votre auditeur de rappel fonctionne correctement.
Si vous avez des questions concernant ce blog ou toute autre chose concernant l'intégration de OneSpan Sign dans votre application, visitez les Forums communautairesdes développeurs . Vos commentaires sont importants pour nous!