Signe OneSpan pour les nouveaux utilisateurs: Vérifiez l’état du paquet et téléchargez des fichiers avec REST en Java

Développeurs
Haris Haidary,

Dans ce blog, je vais suivre sur le créer et envoyer un paquet avec REST dans le blog Java. Je vais vous montrer certaines choses que vous pouvez faire après l'envoi du paquet, tels que:

  • Vérifiez l'état du paquet/signature
  • Télécharger les documents signés en e-électronique
  • Télécharger le résumé des preuves

Configuration

Configuration initiale

Allez-y et créez un nouveau fichier .java pour ce tutoriel. Vous pouvez soit démarrer un nouveau projet, soit simplement créer une nouvelle classe dans un projet déjà créé. J'ai nommé mon fichier "CheckStatusAndDownloadRest.java". Travailler avec REST API nécessite l'utilisation de JSON. Afin de travailler avec elle plus facilement, je vais utiliser une bibliothèque externe org.json. Le fichier pot peut être trouvé ici. Si vous avez besoin d'aide sur la façon d'importer des bibliothèques externes, suivez les étapes de ce blogprécédent .

Localisation de l'iD de paquet de votre projet existant

Pour cet exemple, vous aurez besoin d'un packageId à partir d'un paquet de documents précédemment créé. Les deux méthodes les plus probables pour récupérer votre packageId sont de naviguer vers le paquet dans l'interface uI et le récupérer à partir de l'URL, ou de même dans le blog précédent, le packageId a été retourné dans la réponse HTTP que vous avez reçu de votre appel REST. 

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

Le code

Nous sommes maintenant prêts à écrire le code dans votre classe .java. Copiez le code suivant dans votre fichier "CheckStatusAndDownloadRest.java". Je vais passer en revue le code plus en détail ci-dessous.

import java.io.BufferedReader;
import java.io.IOException;
importer java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
importer java.io.FileOutputStream;
importer java.io.InputStream;
import org.json.

classe publique CheckStatusAndDownloadREST (en)

	public statique vide principal (String[] args) jette MalformedURLException, IOException, JSONException

		API_KEY de cordes et "YOUR_API_KEY";
		Url à cordes et "https://sandbox.esignlive.com/api/packages";

		Client URL - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/");
		httpURLConnection conn (httpURLConnection) client.openConnection();
		conn.setRequestProperty ("Content-Type", "application/json");
		conn.setRequestProperty ("Autorisation", "Basic" - API_KEY);
		conn.setRequestProperty ("Accept", "application/json");

		int responseCode ((HttpURLConnection) conn).getResponseCode();
		
		si (responseCode '200)
			System.out.println (responseCode - " OK !);
			BufferedReader dans le nouveau BufferedReader (nouveau InputStreamReader(conn.getInputStream());
			Ligne d'entrée de chaîne ;
			Réponse StringBuffer - nouveau StringBuffer();

			tandis que ((inline - in.readLine()) !
				response.append (inputLine);
			}

			in.close();
			conn.disconnect();
			
			JSONObject json - nouveau JSONObject (response.toString());
			System.out.println (json.getString("statut"));
			
		} else {
			System.out.println ("La demande n'a pas réussi.");
		}	

		URL client2 - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/signingStatus");
		httpURLConnection conn2 (HttpURLConnection) client2.openConnection();
		conn2.setRequestProperty ("Content-Type", "application/json");
		conn2.setRequestProperty ("Autorisation", "Basic" - API_KEY);
		conn2.setRequestProperty ("Accepter", "application/json");

		int responseCode2 ((HttpURLConnection) conn2).getResponseCode();
		
		si (responseCode2 '200)
			System.out.println (responseCode2 - " OK !);
	
			BufferedReader in2 - nouveau BufferedReader (nouveau InputStreamReader(conn2.getInputStream());
			Entrée de chaîneLine2;
			Réponse StringBuffer2 - nouveau StringBuffer();
	
			tandis que ((inputLine2 - in2.readLine()) !
				response2.append(inputLine2);
			}
	
			in2.close();
			conn2.disconnect();
			
			JSONObject json2 - nouveau JSONObject (response2.toString());
			System.out.println (json2.getString("status"));	
	
			si (json2.getString("status").
	
				URL client3 - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/documents/zip");
				httpURLConnection conn3 (HttpURLConnection) client3.openConnection();
				conn3.setRequestProperty ("Content-Type", "application/json");
				conn3.setRequestProperty ("Autorisation", "Basic" - API_KEY);
				conn3.setRequestProperty ("Accept", "application/zip");
	
				int responseCode3 ((HttpURLConnection) conn3).getResponseCode();
				System.out.println (responseCode3 - " OK !);
				System.out.println ("Téléchargement de fichiers zip....");
		
				InputStream inputStream -conn3.getInputStream();
				String saveFilePath -C:/Users/your_account/Desktop/yourFiles.zip";
	
				Sortie De Flux De Sortie De Stream Stream - nouveau FileOutputStream (saveFilePath);
	
				int bytesLire -1;
				octet[] tampon - nouvel octet[4096];
				
				tandis que ((bytesLire - inputStream.read(buffer)) !
					outputStream.write (buffer, 0, bytesRead);
				}
				
				System.out.println ("Zip fichiers téléchargés!");
				sortieStream.close();
				inputStream.close();
				conn3.disconnect();
				
				URL client4 - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/evidence/summary");
				httpURLConnection conn4 (HttpURLConnection) client4.openConnection();
				conn4.setRequestProperty ("Content-Type", "application/json");
				conn4.setRequestProperty ("Autorisation", "Basic" et API_KEY);
				conn4.setRequestProperty ("Accepter", "application/pdf");
	
				int responseCode4 ((HttpURLConnection) conn4).getResponseCode();
				System.out.println (responseCode4 - " OK !);
				System.out.println ("Télécharger le résumé des preuves....");
				
				entréeStream ' conn4.getInputStream();
				saveFilePath -"C:/Utilisateurs/your_account/Desktop/evidenceSummary.pdf";
	
				sortieStream ' nouveau FileOutputStream(saveFilePath);
	
				octtesLire -1;
				tampon - nouvel octet[4096];
				tandis que ((bytesLire - inputStream.read(buffer)) !
					outputStream.write (buffer, 0, bytesRead);
				}
				
				System.out.println ("Résumé de preuve téléchargé!");
				sortieStream.close();
				inputStream.close();
				conn4.disconnect();
				
			} else {
				System.out.println ("Le paquet n'a pas encore été signé!");
			}
		} else {
			System.out.println ("La demande n'a pas réussi!");
		}
	}
}

 

Passons en revue le code en détail. Comme auparavant, les deux premières lignes sont l'endroit où vos informations de connexion pour votre connexion e-SignLive sont définies. Si vous êtes sur l'environnement de production, changer l'URL pour https://apps.e-signlive.com/api. Assurez-vous de remplacer le texte du placeholder par votre API_KEY. Dans le Bac à sable, votre API_KEY se trouve dans la page ACCOUNT lorsque vous vous connectez à votre compte OneSpan Sign. Si en production, vous aurez besoin d'obtenir ce de soutien.

API_KEY de cordes et "YOUR_API_KEY";
Url à cordes et "https://sandbox.esignlive.com/api/packages";

 

Les deux prochaines lignes sont l'endroit où vous créez votre connexion pour faire votre demande GET et définir le type de contenu d'en-tête approprié, l'autorisation et accepter les valeurs.

 

Client URL - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/");
httpURLConnection conn (httpURLConnection) client.openConnection();
conn.setRequestProperty ("Content-Type", "application/json");
conn.setRequestProperty ("Autorisation", "Basic" - API_KEY);
conn.setRequestProperty ("Accept", "application/json");

 

Vérifier l'état

Dans cette section, vous aurez besoin de votre iD de paquet que vous avez trouvé précédemment. Avec elle, vous êtes prêt à faire votre demande GET pour déterminer l'état de votre colis. Les deux lignes ci-dessous est l'endroit où nous obtenons le code d'état à partir du message de réponse HTTP. Si la demande est acceptée, responseCode devrait imprimer 200.

int responseCode ((HttpURLConnection) conn).getResponseCode();

 

Si la demande est acceptée, nous créons un flux d'entrée et lisons à partir de la connexion dans un BufferedReader. Le contenu JSON de la réponse est ensuite mis en fonction dans un JSONObject et imprimé. L'état du paquet est donné dans la propriété "statut" du JSONObject.

 

System.out.println (responseCode - " OK !);
BufferedReader dans le nouveau BufferedReader (nouveau InputStreamReader(conn.getInputStream());
Ligne d'entrée de chaîne ;
Réponse StringBuffer - nouveau StringBuffer();

tandis que ((inline - in.readLine()) !
   response.append (inputLine);
}

in.close();

JSONObject json - nouveau JSONObject (response.toString());
System.out.println (json.getString("statut"));

 

La récupération de l'état de signature de votre paquet se fait exactement de la même manière, sauf pour un ajout de "/signingStatus" à l'URL de demande.

 

URL client2 - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/signingStatus");
httpURLConnection conn2 (HttpURLConnection) client2.openConnection();
conn2.setRequestProperty ("Content-Type", "application/json");
conn2.setRequestProperty ("Autorisation", "Basic" - API_KEY);
conn2.setRequestProperty ("Accepter", "application/json");

int responseCode2 ((HttpURLConnection) conn2).getResponseCode();
		
si (responseCode2 '200)
   System.out.println (responseCode2 - " OK !);
	
   BufferedReader in2 - nouveau BufferedReader (nouveau InputStreamReader(conn2.getInputStream());
   Entrée de chaîneLine2;
   Réponse StringBuffer2 - nouveau StringBuffer();
	
   tandis que ((inputLine2 - in2.readLine()) !
      response2.append(inputLine2);
   }
	
   in2.close();
   conn2.disconnect();
			
   JSONObject json2 - nouveau JSONObject (response2.toString());
   System.out.println (json2.getString("status"));

 

Télécharger les fichiers

Pour la dernière partie, je vais vous montrer comment télécharger votre paquet dans un fichier zip sur votre bureau, ainsi que le résumé des preuves. Les deux premières lignes restent les mêmes. Pour rappel, assurez-vous d'ajouter "/documents/zip" l'URL de demande.

 

si (json2.getString("status").
 
   URL client3 - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/documents/zip");
   httpURLConnection conn3 (HttpURLConnection) client3.openConnection();
   conn3.setRequestProperty ("Content-Type", "application/json");
   conn3.setRequestProperty ("Autorisation", "Basic" - API_KEY);
   conn3.setRequestProperty ("Accept", "application/zip");

   int responseCode3 ((HttpURLConnection) conn3).getResponseCode();
   System.out.println (responseCode3 - " OK !);
   System.out.println ("Téléchargement de fichiers zip....");

 

Nous ouvrons ensuite le flux d'entrée à partir de la connexion HTTP. Pour cet exemple, j'ai choisi de télécharger le fichier zip sur mon bureau, mais vous pouvez spécifier n'importe quel emplacement que vous souhaitez sur votre ordinateur. Dans mon exemple, n'oubliez pas de remplacer le texte du placeholder par le nom de votre compte.

 

InputStream inputStream -conn3.getInputStream();
String saveFilePath -C:/Users/your_account/Desktop/yourFiles.zip";

 

Ensuite, ouvrez un flux de sortie pour écrire le fichier zip à l'emplacement spécifié. Une fois que toutes les données sont écrites, allez-y et fermez la connexion.

 

Sortie De Flux De Sortie De Stream Stream - nouveau FileOutputStream (saveFilePath);

int bytesLire -1;
octet[] tampon - nouvel octet[4096];
tandis que ((bytesLire - inputStream.read(buffer)) !
   outputStream.write (buffer, 0, bytesRead);
}

System.out.println ("Zip fichiers téléchargés!");
sortieStream.close();
inputStream.close();
conn3.disconnect();

 

Pour télécharger le résumé des preuves, le code est presque identique au téléchargement du fichier zip, à l'exception du champ d'en-tête "Accepter". Assurez-vous de changer cela en "application/pdf".

 

URL client4 - nouvelle URL (url - "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/evidence/summary");
httpURLConnection conn4 (HttpURLConnection) client4.openConnection();
conn4.setRequestProperty ("Content-Type", "application/json");
conn4.setRequestProperty ("Autorisation", "Basic" et API_KEY);
conn4.setRequestProperty ("Accepter", "application/pdf");
	
int responseCode4 ((HttpURLConnection) conn4).getResponseCode();
System.out.println (responseCode4 - " OK !);
System.out.println ("Télécharger le résumé des preuves....");
				
entréeStream ' conn4.getInputStream();
saveFilePath -"C:/Utilisateurs/your_account/Desktop/evidenceSummary.pdf";
	
sortieStream ' nouveau FileOutputStream(saveFilePath);
	
octtesLire -1;
tampon - nouvel octet[4096];
tandis que ((bytesLire - inputStream.read(buffer)) !
   outputStream.write (buffer, 0, bytesRead);
}
				
System.out.println ("Résumé de preuve téléchargé!");
sortieStream.close();
inputStream.close();
conn4.disconnect();

Exécution du code

Une fois votre classe terminée, il est temps d'exécuter le fichier Java. Appuyez sur le bouton exécuter dans votre IDE. Le paquet que j'ai vérifié était déjà signé, de sorte que la sortie ressemble à ce qui suit:

 

consoler

 

Si vous naviguez vers l'emplacement que vous avez spécifié pour enregistrer votre fichier zip et résumé des preuves, vous trouverez vos fichiers (si votre colis a été complété):

ordinateur de bureau

Et voilà. Vous avez vérifié avec succès l'état de votre colis, téléchargé les fichiers de votre colis et le résumé des preuves.

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 de la communauté des développeurs:

https://developer.esignlive.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 de produit technique junior
LinkedIn - France Twitter (en)
OneSpan Sign for New Users Blog Series