Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique vous guidera dans le processus de vérification du statut d'une transaction et de téléchargement des documents à l'aide du SDK Java de OneSpan Sign.

Cette rubrique est la suite des étapes effectuées dans la rubrique Création et envoi d'un paquet. À ce stade-ci, vous pouvez confirmer que votre paquet de documents (transaction) a été créé et envoyé correctement. Pour ce faire, il suffit de consulter la page Transactions OneSpan Sign.

Préalables

Pour continuer, vous devez créer un nouveau fichier Java. Vous pouvez placer ce fichier au même endroit que lorsque vous avez créé un paquet, ou vous pouvez commencer un nouveau projet. Si vous avez besoin d'aide pour cette configuration, voyez comment créer et configurer un projet Java.

Comment trouver l'ID du paquet de votre projet existant?

Comme le paquet avec lequel vous travaillez a déjà été créé, vous devrez le trouver pour l'utiliser dans ce projet. Si vous sélectionnez le projet à partir de la page Transaction, comme indiqué ci-dessus, l'URL aura l'ID du paquet, comme ceci :

https://sandbox.esignlive.com/a/transaction/{packageId}

Dans la classe Java que vous avez créée précédemment, vous verrez que vous avez eu accès à cet ID de paquet lors de sa création et de son envoi. Si vous créiez une application plus complexe, vous stockeriez probablement cet ID de paquet pour l'utiliser dans d'autres parties de votre application, au lieu d'utiliser la page Transaction pour le rechercher.

Si vous voulez voir cet identifiant de paquet provenant de la classe Java réalisée dans le guide précédent, ajoutez la ligne suivante :

System.out.println(PackageId:  + packageId);

Après la ligne :

PackageId packageId = eslClient.createPackage( documentPackage );

Si vous exécutez à nouveau cette classe, vous verrez maintenant l'ID du paquet s'afficher dans la console d'Eclipse.

Capture

Le code

Dans ce segment, le code sera décomposé section par section. Vous pouvez obtenir l'exemple de code complet sur notre site Partage de code.

Informations de connexion

Les premières lignes définissent vos informations de connexion OneSpan Sign.

public static final String API_KEY = "";
public static final String API_URL = "https://sandbox.esignlive.com/api";
// USE https://apps.esignlive.com/api FOR PRODUCTION

Veillez à saisir votre API_KEY dans l'emplacement de l'espace réservé.

Encore une fois, comme il s'agit d'un exemple très simple, le reste est effectué dans la méthode principale. La première ligne de la méthode principale est celle où vous vous connectez à OneSpan Sign en utilisant les informations de connexion que vous avez obtenues précédemment.

//connect to OneSpan Sign
EslClient eslClient = new EslClient( API_KEY, API_URL );

Ensuite, un objet PackageId est créé à l'aide de l'ID de paquet que vous avez récupéré à partir de votre URL (ou classe Java de création de paquet), ci-dessus. Ensuite, vous utiliserez cet PackageId pour récupérer le paquet précédemment envoyé par le client OneSpan Sign.

//create a packageId using you packageId string
PackageId packageId = new PackageId("");
//get your package
DocumentPackage sentPackage = eslClient.getPackage(packageId);

Vérification du statut

Maintenant que vous avez accès au paquet de documents, vous pouvez vérifier votre paquet pour voir quel en est le statut. Les valeurs possibles sont : ARCHIVÉ, COMPLÉTÉ, DÉCLINÉ, ÉBAUCHE, EXPIRÉ, REFUSÉ et ENVOYÉ. Imprimez le statut afin de le voir dans la console lorsque vous exécutez votre classe.

//checking package status
PackageStatus status = sentPackage.getStatus();
System.out.println(status);

Ensuite, vérifiez le statut de signature du paquet. Les valeurs possibles pour celle-ci sont ARCHIVÉ, ANNULÉ, COMPLET, DÉCLINÉ, EXPIRÉ, INACTIF, REFUSÉ, COMPLÉTÉ, et SIGNATURE_EN-ATTENTE. Imprimez également ce statut à la console.

//checking signing status
SigningStatus sentSigningStatus = eslClient.getSigningStatus( packageId, null, null );
System.out.println(sentSigningStatus.getToken());

Télécharger les fichiers

Pour la dernière partie, vous vérifierez si le paquet est complet. Si c'est le cas, le fichier compressé de tous les documents sera téléchargé, ainsi que le résumé des preuves. En mettant juste un nom de fichier pour chaque fichier dans les lignes Files.saveTo le fichier sera enregistré à la racine de votre projet Java dans Eclipse. Après chaque étape, imprimez dans la console afin de savoir si l'événement s'est produit lorsque vous testez la classe Java à l'étape suivante.

if(!sentSigningStatus.getToken().equals("COMPLETED")){ //if signing is complete, download all documents
	
	System.out.println("Cannot Download: Signing not complete");
	
} else { //download zip file
	
 	byte[] documentZip = eslClient.downloadZippedDocuments(packageId);
 	Files.saveTo(documentZip, "documentZip.zip");
 	System.out.println("Document Zip File Downloaded");
         	
 	//download evidence summary
 	byte[] evidenceSummary = eslClient.downloadEvidenceSummary(packageId);
   	Files.saveTo(evidenceSummary, "evidenceSummary.pdf");
   	System.out.println("Evidence Summary Downloaded");
}

Résultats

Vous pouvez maintenant exécuter votre classe Java. Exécutez la classe à partir de la barre d'outils, de la barre de menu ou en cliquant avec le bouton droit de la souris sur la classe dans l'explorateur de paquet et en choisissant l'option Exécuter sous > Application Java.

Si vous n'avez pas encore signé votre paquet, votre console devrait ressembler à ce qui suit :

Capture

Après avoir signé votre paquet, vous obtiendrez la sortie suivante dans votre vue Console :

Capture

Si vous rafraîchissez votre projet dans votre Explorateur de paquet en cliquant avec le bouton droit de la souris et en choisissant Rafraîchir, vous verrez que vos fichiers ont été téléchargés avec succès.

Capture

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique vous guidera dans le processus de vérification du statut d'une transaction et de téléchargement des documents à l'aide du SDK .NET de OneSpan Sign.

Cette rubrique est la suite des étapes effectuées dans la rubrique Création et envoi d'un paquet. À ce stade-ci, vous pouvez confirmer que votre paquet de documents (transaction) a été créé et envoyé correctement. Pour ce faire, il suffit de consulter la page Transactions OneSpan Sign.

Préalables

Pour continuer, vous devez créer un nouveau projet et un fichier .cs pour ce guide. Par exemple, CheckStatusAndDownload.cs. Si vous avez besoin d'aide pour cette configuration, voyez comment créer et configurer un projet .NET.

Localisation de l'ID du paquet de votre projet existant

Comme le paquet avec lequel vous travaillez a déjà été créé, vous devrez le trouver pour l'utiliser dans ce projet. Si vous sélectionnez le projet à partir de la page Transaction, comme indiqué ci-dessus, l'URL aura l'ID du paquet, comme ceci :

https://sandbox.esignlive.com/a/transaction/{packageId}

Dans la classe C# que vous avez créée précédemment, vous verrez que vous aviez accès à cet ID de paquet lorsque vous l'avez créé et envoyé. Si vous créiez une application plus complexe, vous stockeriez probablement cet ID de paquet pour l'utiliser dans d'autres parties de votre application, au lieu d'utiliser la page Transaction pour le rechercher.

Si vous voulez voir cet identifiant de paquetage provenant de la classe C# réalisée dans le guide précédent, vous pouvez ajouter la ligne :

Debug.WriteLine(PackageId:  + packageId);

Après la ligne :

PackageId packageId = ossClient.createPackage( superDuperPackage);

Si vous exécutez à nouveau cette classe, vous verrez maintenant l'ID du paquet imprimé dans la fenêtre de sortie de Visual Studio.

Capture

Le code

 

Ce segment va décomposer le code section par section. Vous pouvez télécharger l'exemple de code complet sur notre site Partage de code.

Informations de connexion

Les premières lignes définissent vos informations de connexion pour OneSpan Sign.

private static String API_URL = "https://sandbox.esignlive.com/api";    // Use https://apps.esignlive.com/api For Production
private static String API_KEY = "YOUR_API_KEY";

//Alternatively
private static String CLIENT_APP_ID = "your_client_id";
private static String CLIENT_APP_SECRET = "your_client_secret";
private static String BASE_API_URL = "https://sandbox.esignlive.com";    // Use https://apps.esignlive.com For Production
private static String API_URL = BASE_API_URL + "/api";

Veillez à saisir votre clé API_KEY ou les informations relatives à votre application client dans l'emplacement réservé à cet effet.

La première étape consiste à se connecter à OneSpan Sign à l'aide de vos informations de connexion, indiquées ci-dessus.

OssClient ossClient = new OssClient(API_KEY, API_URL);
			
//Alternatively
OssClient ossClient = new OssClient(new ApiTokenConfig {
	ClientAppId = CLIENT_APP_ID,
	ClientAppSecret = CLIENT_APP_SECRET,
	BaseUrl = BASE_API_URL,
	TokenType = ApiTokenType.OWNER
},   
BASE_API_URL + "/api", false, null, new Dictionary<string, string>());

Ensuite, un objet PackageId est créé à l'aide de l'ID du paquet obtenu à partir de l'URL (ou de la classe C# de création de paquet), ci-dessus. Ensuite, vous utiliserez cet objet PackageId pour récupérer le paquet précédemment envoyé par le client OneSpan Sign.

PackageId packageId = new PackageId("YOUR_PACKAGE_ID");
DocumentPackage sentPackage = ossClient.GetPackage(packageId);

Vérification du statut

Maintenant que vous avez accès au paquet de documents, vous pouvez vérifier votre paquet pour voir quel est son statut. Les valeurs possibles sont : ARCHIVÉ, COMPLÉTÉ, DÉCLINÉ, ÉBAUCHE, EXPIRÉ, REFUSÉ et ENVOYÉ. Imprime le statut dans la fenêtre de sortie Débogage.

DocumentPackageStatus packageStatus = sentPackage.Status;
Debug.WriteLine("Package Status: " + packageStatus);

Ensuite, vérifiez le statut de signature du paquet. Les valeurs possibles pour celle-ci sont ARCHIVÉ, ANNULÉ, COMPLET, DÉCLINÉ, EXPIRÉ, INACTIF, REFUSÉ, COMPLÉTÉ, et SIGNATURE_EN-ATTENTE. Imprimez également ceci dans la fenêtre de sortie de débogage.

SigningStatus signingStatus = ossClient.GetSigningStatus(packageId,null,null);
Debug.WriteLine("Signing Status: " + signingStatus);

Télécharger les fichiers

Vous pouvez maintenant vérifier si le paquet est complet. Si c'est le cas, un fichier compressé contenant tous les documents sera téléchargé, ainsi qu'un résumé des preuves. Après chaque étape, écrivez dans la sortie Debug afin de savoir que l'événement s'est produit lorsque vous testez la classe à l'étape suivante.

if (signingStatus.ToString().Equals("SIGNING_PENDING"))
{
   Debug.WriteLine("Cannot Download: Signing not complete");
}
else
{
   byte[] zipContent = ossClient.DownloadZippedDocuments(packageId);
   File.WriteAllBytes(Directory.GetCurrentDirectory()
                   	+ "/package-documents.zip", zipContent);
   Debug.WriteLine("Document Zip File Downloaded");
 
   byte[] evidenceContent = ossClient.DownloadEvidenceSummary(packageId);
   File.WriteAllBytes(Directory.GetCurrentDirectory()
                   	+ "/evidence-summary.pdf", evidenceContent);
   Debug.WriteLine("Evidence Summary Downloaded");
}

Résultats

Exécutez votre classe C# en cliquant sur le bouton Commencer de la barre d'outils.

Si vous n'avez pas encore signé votre paquet, votre sortie devrait ressembler à ce qui suit :

Capture

Après avoir signé votre paquet, vous obtiendrez ce qui suit dans votre fenêtre de sortie :

Capture

Si vous vous rendez maintenant à l'endroit où vous avez enregistré vos fichiers, vous verrez que vos fichiers ont été téléchargés avec succès. Si vous avez utilisé le code ci-dessus et que vous êtes en mode Débogage, ils se trouveront dans le dossier Débogage de votre projet, dans votre système de fichiers.

Capture

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique vous guidera dans le processus de vérification du statut d'une transaction et de téléchargement des documents à l'aide du SDK Java de OneSpan Sign.

Cette rubrique est la suite des étapes effectuées dans la rubrique Création et envoi d'un paquet. À ce stade-ci, vous pouvez confirmer que votre paquet de documents (transaction) a été créé et envoyé correctement. Pour ce faire, il suffit de consulter la page Transactions OneSpan Sign.

Préalables

Pour continuer, vous devez créer un nouveau fichier Java. Vous pouvez placer ce fichier au même endroit que lorsque vous avez créé un paquet, ou vous pouvez commencer un nouveau projet. Si vous avez besoin d'aide pour cette configuration, voyez comment créer et configurer un projet Java. Par exemple, créez un projet appelé CheckStatusAndDownloadRest.java.

En outre, le travail avec l'API REST nécessite l'utilisation de JSON. À ce titre, une bibliothèque externe org.json est utilisée. Ce fichier jar peut être trouvé ici. Si vous avez besoin d'aide pour importer des bibliothèques externes, suivez les étapes de ce guide.

Localisation de l'ID du paquet de votre projet existant

Pour cet exemple, vous aurez besoin d'un packageId provenant d'un paquet de documents précédemment créé. Les deux méthodes les plus probables pour retrouver votre packageId sont de naviguer vers le package dans l'interface utilisateur et de le récupérer à partir de l'URL, ou en vérifiant le packageId renvoyé dans la réponse HTTP que vous avez reçue de votre appel REST.

L'API REST

Dans cette rubrique, les fonctions API suivantes seront appelées :

  • Un appel pour récupérer l'ensemble du paquet JSON, et obtenir le statut du paquet.
  • Un appel pour obtenir le statut de signature pour l'ensemble du paquet, ou pour un signataire spécifique d'un document spécifique.
  • Un appel REST API pour télécharger les documents compressés et le résumé des preuves.

Récupération du paquet JSON

Requête HTTP

GET /api/packages/{packageId}

En-têtes HTTP

Accept : application/json; esl-api-version=11.21 Autorisation : clé_api de base

Pour une description complète de chaque champ de réponse, vous pouvez vous référer aux dernières orientations.

Consultez la note de publication 10.6.1 pour connaître le motif de la présence de « esl-api-version" » dans l'en-tête de la requête.

Récupération du statut de la signature

Requête HTTP

GET /api/packages/{packageId}/signingStatus?signer={signerId}&document={documentId}

En-têtes HTTP

Accept : application/json Authorization : clé_api de base

Données utiles de la réponse

{
    "status": "COMPLETED"
}

 

  • « signerId » dans cet appel API peut être remplacé par le courriel du signataire.
  • Les statuts possibles sont : ARCHIVÉ/ ANNULÉ/ COMPLET / DÉCLINÉ/ EXPIRÉ/ INACTIF/ REFUSÉ / COMPLÉTÉ/ SIGNATURE_EN-ATTENTE.

Téléchargement des documents compressés

Requête HTTP

GET /api/packages/{packageId}/documents/zip

En-têtes HTTP

Accepter : application/zip Autorisation : clé_api de base

Télécharger le résumé des preuves

Requête HTTP

GET /api/packages/{packageId}/evidence/summary

En-têtes HTTP

Accepter : application/pdf Autorisation : clé_api de base

Le code

Cette partie du guide ne montre que des extraits de code. Vous pouvez télécharger l'exemple de code complet sur notre site Partage de code.

Les deux premières lignes sont celles où sont définies les informations de connexion pour votre connexion OneSpan Sign. Si vous êtes dans un environnement production, changez l'url en https://apps.e-signlive.com/api. Veillez à remplacer le texte de l'espace réservé par votre clé API_KEY. Dans l'Environnement de test, votre clé API_KEY se trouve sur la page ACCOUNT lorsque vous vous connectez à votre compte OneSpan Sign. Si vous êtes en production, vous devrez l'obtenir auprès de l'assistance technique.

String API_KEY = "YOUR_API_KEY";
String url = "https://sandbox.e-signlive.com/api/packages";

Les lignes suivantes sont celles où vous créez votre connexion pour effectuer votre requête GET et définissez les valeurs appropriées de l'en-tête content-type, authorization et accept.

URL client = new URL(url + "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/");
HttpURLConnection conn = (HttpURLConnection) client.openConnection();
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Basic " + API_KEY);
conn.setRequestProperty("Accept", "application/json");

Vérifier le statut

Maintenant que vous avez accès au paquet de documents, vous pouvez vérifier votre paquet pour voir quel en est le statut. Dans cette section, vous aurez besoin de l'identifiant du paquet que vous avez obtenu précédemment. Avec elle, vous êtes prêt à faire votre demande GET pour déterminer le statut de votre paquet. Les deux lignes ci-dessous récupèrent le code d'état du message de réponse HTTP. Si la requête est réussie, le responseCode devrait afficher la valeur 200.

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

Si la requête est acceptée, vous pouvez créer un flux d'entrée et lire à partir de la connexion dans un fichier BufferedReader. Le contenu JSON de la réponse est ensuite analysé dans un JSONObject et imprimé. Le statut du paquet est indiqué dans la propriété de statut du JSONObject.

System.out.println(responseCode + " OK!");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
 
while ((inputLine = in.readLine()) != null) {
   response.append(inputLine);
}
 
in.close();
 
JSONObject json = new JSONObject(response.toString());
System.out.println(json.getString("status"));

La récupération de le statut de signature de votre paquet se fait exactement de la même manière, à l'exception de l'ajout de /signingStatus à l'url de la demande.

URL client2 = new URL(url + "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/signingStatus");
HttpURLConnection conn2 = (HttpURLConnection) client2.openConnection();
conn2.setRequestProperty("Content-Type", "application/json");
conn2.setRequestProperty("Authorization", "Basic " + API_KEY);
conn2.setRequestProperty("Accept", "application/json");
 
int responseCode2 = ((HttpURLConnection) conn2).getResponseCode();
         
if (responseCode2 == 200) {
   System.out.println(responseCode2 + " OK!");
     
   BufferedReader in2 = new BufferedReader(new InputStreamReader(conn2.getInputStream()));
   String inputLine2;
   StringBuffer response2 = new StringBuffer();
     
   while ((inputLine2 = in2.readLine()) != null) {
      response2.append(inputLine2);
   }
     
   in2.close();
   conn2.disconnect();
             
   JSONObject json2 = new JSONObject(response2.toString());
   System.out.println(json2.getString("status"));

Télécharger les fichiers

Ce segment couvre la façon de télécharger votre paquet dans un fichier compressé 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 la requête.

if (json2.getString("status").equals("COMPLETED")){
  
   URL client3 = new URL(url + "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/documents/zip");
   HttpURLConnection conn3 = (HttpURLConnection) client3.openConnection();
   conn3.setRequestProperty("Content-Type", "application/json");
   conn3.setRequestProperty("Authorization", "Basic " + API_KEY);
   conn3.setRequestProperty("Accept", "application/zip");
 
   int responseCode3 = ((HttpURLConnection) conn3).getResponseCode();
   System.out.println(responseCode3 + " OK!");
   System.out.println("Downloading zip files....");

Nous ouvrons ensuite le flux d'entrée à partir de la connexion HTTP. Vous pouvez spécifier l'emplacement que vous souhaitez sur votre ordinateur. N'oubliez pas de remplacer le texte de l'espace réservé par votre nom de compte.

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

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

FileOutputStream outputStream = new FileOutputStream(saveFilePath);
 
int bytesRead = -1;
byte[] buffer = new byte[4096];
while ((bytesRead = inputStream.read(buffer)) != -1) {
   outputStream.write(buffer, 0, bytesRead);
}
 
System.out.println("Zip files downloaded!");
outputStream.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 compressé, à l'exception du champ d'en-tête Accepter. Assurez-vous de le changer en application/pdf.

URL client4 = new URL(url + "/1edd9f11-9bcc-4587-94e8-aa6478bbda4d/evidence/summary");
HttpURLConnection conn4 = (HttpURLConnection) client4.openConnection();
conn4.setRequestProperty("Content-Type", "application/json");
conn4.setRequestProperty("Authorization", "Basic " + API_KEY);
conn4.setRequestProperty("Accept", "application/pdf");
     
int responseCode4 = ((HttpURLConnection) conn4).getResponseCode();
System.out.println(responseCode4 + " OK!");
System.out.println("Downloading evidence summary....");
                 
inputStream = conn4.getInputStream();
saveFilePath = "C:/Users/your_account/Desktop/evidenceSummary.pdf";
     
outputStream = new FileOutputStream(saveFilePath);
     
bytesRead = -1;
buffer = new byte[4096];
while ((bytesRead = inputStream.read(buffer)) != -1) {
   outputStream.write(buffer, 0, bytesRead);
}
                 
System.out.println("Evidence summary downloaded!");
outputStream.close();
inputStream.close();
conn4.disconnect();

Résultats

Appuyez sur le bouton d'exécution de votre IDE. Si le paquet a déjà été signé, la sortie devrait ressembler à ce qui suit :

Capture

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

Capture

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique vous guidera dans le processus de vérification du statut d'une transaction et de téléchargement des documents à l'aide du SDK Java de OneSpan Sign.

Cette rubrique est la suite des étapes effectuées dans la rubrique Création et envoi d'un paquet. À ce stade-ci, vous pouvez confirmer que votre paquet de documents (transaction) a été créé et envoyé correctement. Pour ce faire, il suffit de consulter la page Transactions OneSpan Sign.

Préalables

Avant de commencer, vous devez configurer votre environnement. Ce guide utilise C# et Microsoft Visual Studio. Créez un projet (par exemple, CheckStatusAndDownloadREST) et un fichier .cs (par exemple, CheckStatusAndDownloadREST.cs). Pour obtenir plus d'informations, consultez la section Créer et envoyer un paquet avec le SDK .NET (vous pouvez ignorer la partie SDK .NET et passer aux sections Télécharger Microsoft Visual Studio et Créer et configurer votre projet C#) pour des instructions plus détaillées.

Localisation de l'ID du paquet de votre projet existant

Comme le paquet avec lequel vous travaillez a été créé précédemment, nous devons trouver l'ID du paquet pour l'utiliser dans ce projet. Si vous sélectionnez le projet dans la boîte de réception de l'interface utilisateur, comme indiqué ci-dessus, l'URL aura l'ID du paquet, comme ceci :

https://sandbox.esignlive.com/a/transaction/IW30CWirli6h6gZQqqfFXdrPSqA=

Dans la classe C# que vous avez créée dans le dernier guide, vous verrez que l'ID du paquet a été renvoyé dans la réponse HTTP que vous avez reçue de votre appel REST.

Capture

Si vous créiez une application plus complexe, vous stockeriez probablement cet identifiant de paquet pour l'utiliser dans d'autres parties de votre application, au lieu de le rechercher dans vos URL OneSpan Sign.

L'API REST

Dans cette rubrique, les fonctions API suivantes seront appelées :

  • Un appel pour récupérer l'ensemble du paquet JSON, et obtenir le statut du paquet.
  • Un appel pour obtenir le statut de signature pour l'ensemble du paquet, ou pour un signataire spécifique d'un document spécifique.
  • Un appel REST API pour télécharger les documents compressés et le résumé des preuves.

Récupération du paquet JSON

Requête HTTP

GET /api/packages/{packageId}

En-têtes HTTP

Accept : application/json; esl-api-version=11.21 Autorisation : clé_api de base

Pour une description complète de chaque champ de réponse, vous pouvez vous référer aux dernières orientations.

Consultez la note de publication 10.6.1 pour connaître le motif de la présence de « esl-api-version" » dans l'en-tête de la requête.

Récupération du statut de la signature

Requête HTTP

GET /api/packages/{packageId}/signingStatus?signer={signerId}&document={documentId}

En-têtes HTTP

Accept : application/json Authorization : clé_api de base

Données utiles de la réponse

{
    "status": "COMPLETED"
}

 

  • « signerId » dans cet appel API peut être remplacé par le courriel du signataire.
  • Les statuts possibles sont : ARCHIVÉ/ ANNULÉ/ COMPLET / DÉCLINÉ/ EXPIRÉ/ INACTIF/ REFUSÉ / COMPLÉTÉ/ SIGNATURE_EN-ATTENTE.

Téléchargement des documents compressés

Requête HTTP

GET /api/packages/{packageId}/documents/zip

En-têtes HTTP

Accepter : application/zip Autorisation : clé_api de base

Télécharger le résumé des preuves

Requête HTTP

GET /api/packages/{packageId}/evidence/summary

En-têtes HTTP

Accepter : application/pdf Autorisation : clé_api de base

Le code

Dans cette partie du guide, le code sera décomposé section par section. Vous pouvez télécharger l'exemple de code complet sur notre site Partage de code.

Les premières lignes sont celles où sont définies les informations de connexion pour votre connexion OneSpan Sign. Si vous utilisez un environnement production, utilisez l'url https://apps.esignlive.com/api. Veillez à remplacer le texte de l'espace réservé par votre clé API_KEY. Vous pouvez trouver cette valeur dans la page COMPTE lorsque vous êtes connecté à votre compte OneSpan Sign.

string apiKey = "YOUR_API_KEY";
string url = "https://sandbox.esignlive.com/api";

Ensuite, vous allez créer le HttpClient que vous utiliserez pour effectuer vos requêtes GET et définir les valeurs appropriées de l'en-tête authorization et accept.

HttpClient myClient = new HttpClient();
myClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", apiKey);
myClient.DefaultRequestHeaders.Add("Accept", "application/json,application/zip,text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");

Vérifier le statut

Pour cette section, vous aurez besoin du packageId que vous avez trouvé ci-dessus. En utilisant cela, vous pouvez configurer votre requête GET pour voir quel est le statut du paquet. Les valeurs possibles sont : ARCHIVÉ, COMPLÉTÉ, DÉCLINÉ, ÉBAUCHE, EXPIRÉ, REFUSÉ et ENVOYÉ. Le code ci-dessous exécute une requête GET vers l'url créée à partir de l'url de base définie ci-dessus avec le reste de l'url de l'appel REST approprié défini dans la documentation (dans ce cas, /packages/YOUR_PACKAGE_ID). Le contenu de la réponse est ensuite analysé dans un JObject et la propriété d'état du JObject est obtenue et écrite dans la sortie Débogage.

var packageStatusResponse = myClient.GetAsync(new Uri(url + "/packages/YOUR_PACKAGE_ID")).Result;
JObject packageStatusResponseJSON = JObject.Parse(packageStatusResponse.Content.ReadAsStringAsync().Result);
var packageStatus = packageStatusResponseJSON["status"];
Debug.WriteLine("Package Status: " + packageStatus);

Ensuite, vérifiez le statut de signature du paquet. Les valeurs possibles pour celle-ci sont ARCHIVÉ, ANNULÉ, COMPLET, DÉCLINÉ, EXPIRÉ, INACTIF, REFUSÉ, COMPLÉTÉ, et SIGNATURE_EN-ATTENTE. La procédure est identique à celle de la dernière étape, à l'exception de l'ajout de /signingStatus à l'url de la demande. Écrivez également la réponse à cet appel dans la fenêtre de sortie Débogage.

var signingStatusResponse = myClient.GetAsync(new Uri(url + "/packages/0487df67-6417-48f8-9575-b520c0f977ff/signingStatus")).Result;
JObject signingStatusResponseJSON = JObject.Parse(signingStatusResponse.Content.ReadAsStringAsync().Result);
var signingStatus = signingStatusResponseJSON["status"].ToString();
Debug.WriteLine("Signing Status: " + signingStatus);

Télécharger les fichiers

Pour la dernière partie, vous vérifierez si le paquet est complet. Si c'est le cas, le fichier compressé de tous les documents sera téléchargé, ainsi que le résumé des preuves. Après chaque étape, écrivez dans la sortie Debug afin de savoir que l'événement s'est produit lorsque vous testez la classe à l'étape suivante. Notez également les ajouts à l'url de base pour chaque téléchargement.

if (signingStatus.Equals("COMPLETED"))
{
   var downloadZipResponse = myClient.GetAsync(new Uri(url + "/packages/0487df67-6417-48f8-9575-b520c0f977ff/documents/zip")).Result;
   ByteArrayContent content = new ByteArrayContent(downloadZipResponse.Content.ReadAsByteArrayAsync().Result);
   File.WriteAllBytes("C:/Eclipse/myzip.zip", content.ReadAsByteArrayAsync().Result);
   Debug.WriteLine("Zip File Downloaded");
 
   var evidenceSummaryResponse = myClient.GetAsync(new Uri(url + "/packages/0487df67-6417-48f8-9575-b520c0f977ff/evidence/summary")).Result;
   ByteArrayContent evidenceSummaryContent = new ByteArrayContent(evidenceSummaryResponse.Content.ReadAsByteArrayAsync().Result);
   File.WriteAllBytes("C:/Eclipse/myevidencesummary.pdf", evidenceSummaryContent.ReadAsByteArrayAsync().Result);
   Debug.WriteLine("Evidence Summary Downloaded");
}
else
{
   Debug.WriteLine("Signing not complete");
}

Résultats

Exécutez votre classe C# en cliquant sur le bouton Commencer de la barre d'outils.

Si vous n'avez pas encore signé votre paquet, votre sortie devrait ressembler à ce qui suit :

Capture

Après avoir signé votre paquet, vous obtiendrez ce qui suit dans votre fenêtre de sortie :

Capture

Si vous naviguez maintenant vers l'emplacement où vous avez enregistré vos fichiers, vous verrez que vos fichiers ont été téléchargés avec succès.

Capture

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique vous guidera dans le processus de vérification du statut d'une transaction et de téléchargement des documents à l'aide du SDK APEX OneSpan Sign.

Cette rubrique est la suite des étapes effectuées dans la rubrique Création et envoi d'un paquet. À ce stade-ci, vous pouvez confirmer que votre paquet de documents (transaction) a été créé et envoyé correctement. Pour ce faire, il suffit de consulter la page Transactions OneSpan Sign.

Préalables

Pour continuer, vous devez ajouter une classe Apex nommée OssCheckStatusAndDownload avec une fonction checkStatusAndDownload(). Si vous avez besoin d'aide pour cette configuration, consultez Création et envoi d'un paquet.

Localisation de l'ID du paquet

Comme le paquet avec lequel vous travaillez a déjà été créé, vous devrez le trouver pour l'utiliser dans ce projet. Si vous sélectionnez le projet à partir de la page Transaction, comme indiqué ci-dessus, l'URL aura l'ID du paquet, comme ceci :

https://sandbox.esignlive.com/a/transaction/{packageId}

Dans la classe Apex que vous avez créée précédemment, vous verrez que vous avez eu accès à cet ID de paquet lors de la création et de l'envoi. Si vous créiez une application plus complexe, vous stockeriez probablement cet identifiant de paquet pour l'utiliser dans d'autres parties de votre application, au lieu de le rechercher dans vos URL OneSpan Sign.

Dans notre exemple, afin d'imprimer l'ID du paquet, vous pouvez ajouter ce code à la fonction :

System.debug('PackageId: ' + packageId);

Après la ligne :

String packageId = sdk.createPackage(pkg);

Après avoir exécuté cette classe Apex, vous verrez l'ID du paquet imprimé dans la console de débogage :

Capture

Le code

Dans ce segment, le code sera expliqué section par section. Vous pouvez obtenir l'exemple de code complet sur notre site Partage de code.

Informations de connexion

Avant de créer un client ESL et de le connecter à OneSpan Sign, vous devez effectuer les opérations suivantes :

  • Créez un paramètre personnalisé dans lequel votre clé Api et votre point final sont attribués.
  • Ajoutez le point final de votre instance à vos paramètres de site distant.

Pour obtenir plus d'informations sur la manière d'effectuer ces étapes, consultez Création et envoi d'un paquet.

Comme il s'agit d'un exemple très simple, le code est écrit dans une fonction statique au sein de la même classe eslController Apex. La première ligne de la méthode crée un client ESL où le SDK lira les informations de connexion en utilisant les paramètres définis dans les étapes précédentes.

//connect to OneSpan Sign
ESignLiveSDK sdk= new ESignLiveSDK();

Ensuite, vous utiliserez votre PackageId obtenu à partir de la boîte de réception OneSpan Sign ou de la console de débogage comme paramètre d'entrée pour récupérer votre paquet précédemment envoyé par le client OneSpan Sign.

//create a packageId using you packageId string
String packageId = '2APPpsAcqVk8QbJKABFqWvHy-kQ='; 
//get your package
ESignLiveAPIObjects.Package_x pack = sdk.getPackage(packageId);

Vérifier le statut

Maintenant que vous avez accès au paquet de documents, vous pouvez vérifier votre paquet pour voir quel en est le statut. Les valeurs possibles sont : ARCHIVÉ, COMPLÉTÉ, DÉCLINÉ, ÉBAUCHE, EXPIRÉ, REFUSÉ et ENVOYÉ. Imprimez le statut afin de le voir dans la console lorsque vous exécutez votre classe.

//retrieve package status
ESignLiveAPIObjects.PackageStatus packageStatus = pack.status;
System.debug('Package Status: '+packageStatus);

Ensuite, vérifiez le statut de signature du paquet. Les valeurs possibles pour celle-ci sont ARCHIVÉ, ANNULÉ, COMPLET, DÉCLINÉ, EXPIRÉ, INACTIF, REFUSÉ, COMPLÉTÉ, et SIGNATURE_EN-ATTENTE. Imprimez également ce statut à la console.

//retrieve signing status
String signingStatus = sdk.getSigningStatus(packageId);
System.debug('Signing Status: '+signingStatus);  

Télécharger les fichiers

Pour la dernière partie, vous vérifierez si le paquet est complet. Si c'est le cas, tous les documents seront téléchargés, ainsi que le résumé des preuves. Nous allons d'abord lire tous les fichiers de type blob, puis les insérer dans un dossier de document nommé onespan.

if(packageStatus == ESignLiveAPIObjects.PackageStatus.COMPLETED &&
   signingStatus .equals('COMPLETED')
){
System.debug('Transaction is completed and ready to download!');
                              
//download all documents
List docs = new List();
Folder folder = [select id from Folder where name='onespan' LIMIT 1]; 
                
for(ESignLiveAPIObjects.Document document: pack.documents){
    Blob response = sdk.downloadDocument(packageId, document.id);
                    
    Document doc = new Document();
    doc.Body = response;
    doc.FolderId = folder.id;
    doc.Name = pack.name + ' - ' + document.name;
    doc.Type = 'pdf';
    docs.add(doc);
}
                           
//download evidence summary
String auditString= sdk.getAudit(packageId);
Document auditDoc= new Document();
auditDoc.Body = EncodingUtil.base64Decode(auditString);
auditDoc.FolderId = folder.id;
auditDoc.Name = pack.name + ' - evidence summary';
auditDoc.Type = 'pdf';
                
for(Document doc: docs){
    insert doc;
}
insert auditDoc;                
                
}else{
    System.debug('Transaction is not ready to download!');
}

Résultats

Vous pouvez maintenant exécuter votre classe Apex. Ouvrez votre console de développement et appuyez sur Ctrl + E pour lancer la fenêtre d'exécution anonyme. Tapez dans :

new OssCheckStatusAndDownload.checkStatusAndDownload();

Si vous n'avez pas encore signé votre paquet, votre console devrait ressembler à ce qui suit :

Capture

Après avoir signé votre paquet, vous obtiendrez la sortie suivante dans votre vue Console :

Capture

Si vous allez dans votre dossier de documents onespan et vous verrez que vos fichiers ont été téléchargés avec succès.

Capture