OneSpan Sign How To: Création d'un auditeur de notification d'événement de rappel en Java
Dans mon blog précédent, je vous ai montré comment créer un simple auditeur de notification d'événement de rappel dans C et écouter pour le "PACKAGE_COMPLETE" événement afin de télécharger des documents signés. Dans ce blog, je vais vous montrer comment faire la même chose à Java. Allons-y.
Exigences
Inscrivez-vous aux notifications d'événements
Avant que le système OneSpan Sign puisse vous informer d'un événement, vous devez d'abord vous inscrire pour être informé en cas d'événement. Vous pouvez suivre ce guide de fonctionnalités sur la façon de vous inscrire aux notifications d'événements.
Eclipse IDE pour java EE Developers
Pour ce blog, vous aurez besoin de l'IDE d'Eclipse pour les développeurs Java EE. Si vous ne l'avez pas déjà, vous pouvez le télécharger gratuitement, ici.
Java SDK de OneSpan Sign
Vous pouvez télécharger le Java SDK à partir du liensuivant . Il fournit également un lien vers quelques exemples d'utilisation du Java SDK sur GitHub. Dézifiez le SDK à l'endroit de votre choix.
Ngrok
Pour recevoir des notifications d'événements de rappel, vous aurez besoin d'une URL accessible au public pour frapper et travailler. Votre serveur localhost à lui seul ne fonctionnera pas. Ngrok est un outil très simple et facile à utiliser qui crée un tunnel sécurisé sur votre machine locale avec une URL publique que vous pouvez utiliser pour naviguer sur votre site local. Cela vous évite la peine de déployer votre application web.
Le code
Vous pouvez télécharger le code d'exemple à partir du Developer Community Code Share. Allez-y et créez un nouveau projet Web dynamique. Si c'est votre première fois de travail avec le cadre Java, vous pouvez suivre ce blog précédent sur la façon dont vous pouvez commencer. Assurez-vous de générer un descripteur de déploiement web.xml lors de la création de votre projet.
Une fois votre projet créé, dans votre projet Explorer, ouvrez votre dossier « Ressources Java ». Cliquez à droite sur "src" et créez un nouveau package nommé "auditeur". Ensuite, ajoutez une nouvelle classe nommée ListenerController.java". Vous trouverez ci-dessous le code du contrôleur d'action pour traiter la notification d'événement.
classe publique ListenerController étend HttpServlet (en) privé String pkgId - nouvelle chaîne(); @Override vidance protégée doPost (HttpServletRequest req, HttpServletResponse resp) lance ServletException, IOException resp.setContentType ("texte/html"); resp.setStatus (HttpServletResponse.SC_OK); StringBuilder constructeur - nouveau StringBuilder(); Corde aux ""; tandis que ((aux 'req.getReader().readLine()) ! builder.append(aux); } Texte de chaîne ' builder.toString(); essayer { JSONObject json - nouveau JSONObject (texte); pkgId et json.get("packageId"). System.out.println (pkgId); - prise (JSONException e) Bloc de capture généré par TODO Auto e.printStackTrace(); } nouveau Thread (nouveau Runnable() course de vide public() essayer { TéléchargerDocuments.download(pkgId); - prise (IOException e) Bloc de capture généré par TODO Auto e.printStackTrace(); } } -).démarrer(); } }
Dans le code ci-dessus, nous utilisons la méthode doPost() pour intercepter les demandes HTTP POST. Une fois que tous les documents d'un paquet ont été signés et le paquet complété, OneSpan Sign fera une demande POST à mon 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 }
Ensuite, nous utiliserons l'id paquet afin de télécharger les documents signés. Dans votre dossier "src", créez une nouvelle classe nommée "DownloadDocuments.java" avec le code ci-dessous.
téléchargementde de classe publiqueDocuments (en) public statique vide download (String packageId) jette IOException EslClient eslClient - nouveau EslClient ("api_key", "https://sandbox.esignlive.com/api"); documents d'octet[] eslClient.downloadZippedDocuments (nouveau PackageId(packageId)); Flux FileOutputStream - nouveau FileOutputStream ("C:/Users/hhaidary/Desktop/documents_" - packageId -.zip"); essayer { stream.write (documents); Enfin stream.close(); } } }
Le code ci-dessus utilise l'eslClient pour télécharger les documents signés. Assurez-vous de faire référence au OneSpan Sign Java SDK dans cette classe. Ensuite, créez deux fichiers JSP nommés "index.jsp" et "listenerpage.jsp". Ces deux fichiers JSP peuvent être n'importe quoi. Aux fins de cet exemple, je vais les garder comme pages statiques.
!--index.jsp --- '% ' page language'"java" contentType'"text/html; charset-ISO-8859-1" pageEncodage "ISO-8859-1"% !DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" Contenu "Content-Type" "texte/html; charset-ISO-8859-1"ESignLive Auditeur têteNotifications eSignLive
corps html
!--listenerpage.jsp --- '% ' page language'"java" contentType'"text/html; charset-ISO-8859-1" pageEncodage "ISO-8859-1"% !DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" Contenu "Content-Type" "texte/html; charset-ISO-8859-1"Insérer le titre ici têteTest d'un auditeur esignlive...corps html
Enfin, vous devrez modifier votre fichier web.xml afin de cartographier le contrôleur de servlet à la page "listenerpage.jsp". Voici à quoi devrait ressembler votre fichier web.xml :
Auditeur index.jsp (index.jsp) ListenerController (en) ListenerController (en) Auditeur. ListenerController (en) ListenerController (en) /listenerpage.jsp
Exécution de votre code
Dans votre Projet Explorer, cliquez à droite sur votre projet et sélectionnez Run As ' Run on Server. Hit Finish. 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]"
Voici une capture d'écran de ce à quoi vous pouvez vous attendre après l'exécution de la commande:
Ensuite, connectez-vous à votre compte OneSpan Sign et naviguez vers la page Admin. Entrez dans le champ « URL de rappel » l'URL à votre auditeur de rappel (c'est-à-dire http://f3e93555.ngrok.io/listener/listenerpage.jsp) et inscrivez-vous à l'événement « transaction complète ». 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é à l'endroit où vous avez choisi de l'enregistrer dans la classe "DownloadDocuments.java".
Si vous avez des questions concernant ce blog ou toute autre chose concernant l'intégration oneSpan Sign dans votre application, visitez les forums de la communauté des développeurs: https://developer.OneSpan.com/. C'est moi qui l'ai fait. Merci de lire! Si vous avez trouvé ce message utile, s'il vous plaît le partager sur Facebook, Twitter, ou LinkedIn.
Haris Haidary
Évangéliste technique junior
LinkedIn - France Twitter (en)