OneSpan Sign How To: Création d'un auditeur de notification d'événement de rappel en Java

Haris Haidary, octobre 26, 2016

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ête

	
Notifications 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ête

	
Test 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 :

 

Auditeurindex.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:

 

1-2

 

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)

 

OneSpan Sign Developer Community

OneSpan Sign Developer Community

Rejoignez la communauté OneSpan Sign Developer! Forums, blogs, documentation, téléchargements SDK, et plus encore.

Joignez-vous aujourd'hui