OneSpan Sign pour les nouveaux utilisateurs: Vérifier l’état du paquet et télécharger des fichiers (REST API)

Michael Williams,

Ce sera le dernier post dans le "OneSpan Sign for New Users" série de blog. La dernière fois, je vous ai montré comment créer et envoyer un paquet avec l’API OneSpan Sign REST en utilisant C et Microsoft Visual Studio. Cette semaine, je vais couvrir certaines choses que vous pouvez faire après l'envoi du paquet, comme:

  • Vérification de l'état du paquet/signature
  • Téléchargement des documents signés en e
  • Téléchargement du résumé des preuves

Je vais reprendre là où je me suis laissé, dans le blog de la semaine dernière. Si vous avez suivi, vous venez de regarder dans votre boîte de réception OneSpan Sign pour voir que votre paquet de documents a été créé et envoyé correctement après l’exécution de l’appel REST intégré dans le tutoriel.

Paquet créé REST

Configuration

Configuration initiale

Avant de commencer, vous devrez configurer votre environnement. Pour cet exemple, je vais utiliser C et Microsoft Visual Studio. Allez-y et obtenez un projet et un fichier .cs créé. J'ai nommé mon projet "CheckStatusAndDownloadREST" et mon fichier .cs,

"CheckStatusAndDownloadREST.cs". Si vous avez besoin d'aide pour mettre en place, consultez mon premier blog .NET SDK (vous pouvez ignorer la partie .NET SDK et passer à la "Télécharger Microsoft Visual Studio" et "Créer et configurer votre projet C" sections) pour des instructions plus détaillées.

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

Localisation de l'iD de paquet de votre projet existant

Étant donné que le paquet avec lequel vous travaillez a été créé précédemment, nous devons trouver l'ID du paquet pour une utilisation dans ce projet. Si vous sélectionnez le projet dans la boîte de réception de l'interface uI, comme on peut le voir ci-dessus, l'URL aura l'ID du paquet, comme ceci :

https://sandbox.esignlive.com/packages/

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

 

test de réponse de la console de débogage

 

Si vous créez une application plus complexe, vous stockeriez probablement cet ID de paquet pour l’utiliser dans d’autres parties de votre application, par opposition à la recherche vers le haut dans vos URL de signe de OneSpan.

Le code

Vous êtes maintenant prêt à écrire le code dans votre classe CMD. Copiez le code suivant dans votre fichier « CheckStatusAndDownloadREST.cs » (ou ce que vous l'avez nommé) que vous avez créé ci-dessus. Je vais couvrir le code, plus en détail, ci-dessous.

en utilisant Newtonsoft.Json.Linq;
en utilisant le système;
à l’aide de System. Collections. Generic;
en utilisant System.Diagnostics;
l’utilisation de System.IO;
l’utilisation de System.Net;
en utilisant System.Net.Http;
en utilisant System.Net.Http.Headers;
en utilisant System.Text;

namespace CheckStatusAndDownloadREST
{
   classe publique CheckStatusAndDownload
   {
      public statique vide Main(corde[] args)
      {
         apiKey chaîne - "YOUR_API_KEY";
         url de chaîne et "https://sandbox.esignlive.com/api";

         HttpClient myClient '  nouveau httpClient();
         myClient.DefaultRequestHeaders.Authorization - new AuthenticationHeaderValue ("Basic", apiKey);
         myClient.DefaultRequestHeaders.Add("Accept", "application/json,application/zip,text/html,application/xhtmlxml,application/xml;q-0.9,image/webp, '/;q'0.8");

         vérifier l'état du paquet
         var packageStatusResponse - myClient.GetAsync (nouveau Uri (url - "/packages/0487df67-6417-48f8-9575-b520c0f977ff"). Résultat;
         JObject packageStatusResponseJSON - JObject.Parse(packageStatusResponse.Content.ReadAsStringAsync(). Résultat);
         var packageStatus - packageStatusResponseJSON["status"];
         Debug.WriteLine ("Package Status: " - packageStatus);

         vérifier l'état de signature du paquet
         var signingStatusResponse - myClient.GetAsync (nouveau Uri (url - "/packages/0487df67-6417-48f8-9575-b520c0f977ff/signingStatus").). Résultat;
         JObject signingStatusResponseJSON - JObject.Parse(signingStatusResponse.Content.ReadAsStringAsync(). Résultat);
         var signingStatus - signingStatusResponseJSON["status"]. ToString();
         Debug.WriteLine ("Statut de signature: " - signingStatus);

         télécharger des documents
         if (signingStatus.Equals("COMPLETED"))
         {
            var downloadZipResponse - myClient.GetAsync (nouveau Uri (url - "/packages/0487df67-6417-48f8-9575-b520c0f977ff/documents/zip")). Résultat;
            Contenu ByteArrayContent - nouveau ByteArrayContent(downloadZipResponse.Content.ReadAsByteArrayAsync(). Résultat);
            File.WriteAllBytes("C:/Eclipse/myzip.zip", contenu. ReadAsByteArrayAsync(). Résultat);
            Debug.WriteLine ("Zip File Downloaded");

            var evidenceSummaryResponse - myClient.GetAsync (nouveau Uri (url - "/packages/0487df67-6417-48f8-9575-b520c0f977ff/evidence/summary")). Résultat;
            ByteArrayContent evidenceSummaryContent - nouveau ByteArrayContent(evidenceSummaryResponse.Content.ReadAsByteArrayAsync(). Résultat);
            File.WriteAllBytes("C:/Eclipse/myevidencesummary.pdf", evidenceSummaryContent.ReadAsByteArrayAsync(). Résultat);
            Debug.WriteLine ("Evidence Summary Downloaded");
         }
         Autre
         {
            Debug.WriteLine ("Signing not complete");
         }
      }
   }
}

Maintenant, regardons de plus près le code. Tout comme la dernière fois, les lignes de couple premier est l’endroit où les informations de connexion pour votre connexion OneSpan Sign est définie. Si vous utilisez l'environnement de production, utilisez l'URL, https://apps.e-signlive.com/api. Assurez-vous de remplacer le texte du placeholder par votre API_KEY. Vous pouvez trouver cette valeur dans la page ACCOUNT lorsqu'elle est signée dans votre compte OneSpan Sign.

 

apiKey chaîne - "YOUR_API_KEY";
url de chaîne et "https://sandbox.esignlive.com/api";

 

Ensuite, vous créerez le httpClient que vous utiliserez pour faire vos demandes GET et définirez l'autorisation d'en-tête appropriée et accepterez les valeurs.

 

HttpClient myClient ' nouveau httpClient();

myClient.DefaultRequestHeaders.Authorization - new AuthenticationHeaderValue ("Basic", apiKey);

myClient.DefaultRequestHeaders.Add("Accept", "application/json,application/zip,text/html,application/xhtmlxml,application/xml;q-0.9,image/webp, '/;q'0.8");


Vérifier l'état
Pour cette section, vous aurez besoin du packageId que vous avez trouvé ci-dessus. Avec ce maniable, vous pouvez configurer votre demande GET pour voir ce que l'état du paquet est. Les valeurs possibles sont ARCHIVED, COMPLETED, DECLINED, DRAFT, EXPIRED, OPTED_OUT et SENT. Le code ci-dessous exécute une demande GET à 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, "/paquets/YOUR_PACKAGE_ID"). Le contenu de la réponse est ensuite mis en œtus dans un JObject et la propriété "statut" du JObject est obtenue et écrite à la sortie Debug.

 

var packageStatusResponse - myClient.GetAsync (nouveau Uri (url - "/packages/YOUR_PACKAGE_ID").). Résultat;

JObject packageStatusResponseJSON - JObject.Parse(packageStatusResponse.Content.ReadAsStringAsync(). Résultat);

var packageStatus - packageStatusResponseJSON["status"];

Debug.WriteLine ("Package Status: " - packageStatus);

 

Ensuite, vérifiez l'état de signature du paquet. Les valeurs possibles pour celui-ci sont ARCHIVED, CANCELED, COMPLETE, DECLINED, EXPIRED, INACTIVE, OPTED_OUT, COMPLETED, et SIGNING_PENDING. Cela est fait exactement de la même façon que la dernière étape, sauf pour un ajout de "/signingStatus" à l'URL de demande. Écrivez la réponse pour cet appel à la fenêtre de sortie Debug, ainsi.

var signingStatusResponse - myClient.GetAsync (new Uri (url - "/packages/0487df67-6417-48f8-9575-b520c0f977ff/signingStatus").). Résultat;

JObject signingStatusResponseJSON - JObject.Parse(signingStatusResponse.Content.ReadAsStringAsync(). Résultat);

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 colis est complet. Si c'est le cas, le fichier zip de tous les documents sera téléchargé, ainsi que le résumé des preuves. Après chaque étape, écrivez à la sortie Debug afin que vous sachiez que l'événement s'est produit lorsque vous testez la classe à l'étape suivante. Aussi pas les ajouts à l'URL de base pour chaque téléchargement.

si (signingStatus.Equals("COMPLETED"))

{

   var downloadZipResponse - myClient.GetAsync (new Uri (url - "/packages/0487df67-6417-48f8-9575-b520c0f977ff/documents/zip").). Résultat;

   Contenu ByteArrayContent - nouveau ByteArrayContent(downloadZipResponse.Content.ReadAsByteArrayAsync(). Résultat);

   File.WriteAllBytes("C:/Eclipse/myzip.zip", contenu. ReadAsByteArrayAsync(). Résultat);

   Debug.WriteLine ("Zip File Downloaded");

 

   var evidenceSummaryResponse - myClient.GetAsync(new Uri (url - "/packages/0487df67-6417-48f8-9575-b520c0f977ff/evidence/summary")). Résultat;

   ByteArrayContent evidenceSummaryContent - nouveau ByteArrayContent(evidenceSummaryResponse.Content.ReadAsByteArrayAsync(). Résultat);

   File.WriteAllBytes("C:/Eclipse/myevidencesummary.pdf", evidenceSummaryContent.ReadAsByteArrayAsync(). Résultat);

   Debug.WriteLine ("Evidence Summary Downloaded");

}

Autre

{

   Debug.WriteLine ("Signing not complete");

}

Exécution du Code

Une fois votre classe simple terminée, il est temps d'exécuter la classe CMD. Exécutez la classe à partir de la barre d'outils en cliquant sur le bouton Démarrer.

Si vous n'avez pas encore signé votre colis, votre Sortie doit ressembler à ce qui suit :

 

debugOutputPackageNotCompleteREST

 

Après la signature de votre colis, vous obtiendrez ce qui suit dans votre fenêtre de sortie :

 

debugOutputPackageCompleteREST

 

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

 

téléchargéFilesREST

 

Voilà, c'est toi qui l'as. Vous avez vérifié avec succès l'état et téléchargé les fichiers de votre colis.

Merci pour la lecture! Si vous avez des questions ou des fonctionnalités que vous souhaitez voir couvertes du point de vue d'un nouvel utilisateur, n'hésitez pas à poster dans la section commentaires. Liens vers tous les messages de cette série de blog peut être trouvé, ci-dessous.

Michael Williams
Twitter - France Facebook - France LinkedIn (en)

 

eSignLive pour les nouveaux utilisateurs Blog Series