OneSpan Sign para nuevos usuarios: compruebe el estado del paquete y descargue archivos (REST API)

Michael Williams, 24 de Julio de 2015

Esta será la publicación final de la serie de blogs "OneSpan Sign for New Users". La última vez, le mostré cómo crear y enviar un paquete con la API REST de OneSpan Sign usando C # y Microsoft Visual Studio. Esta semana, cubriré algunas cosas que puede hacer después de enviar el paquete, como:

  • Comprobación del estado del paquete / firma
  • Descargar los documentos firmados electrónicamente
  • Descargar el resumen de evidencia

Voy a retomar justo donde lo dejé, en el blog de la semana pasada. Si siguió, acababa de buscar en su bandeja de entrada de OneSpan Sign para ver que su paquete de documentos fue creado y enviado correctamente después de ejecutar la llamada REST incorporada en el tutorial.

Paquete creado REST

Configuración

Configuración inicial

Antes de comenzar, deberá configurar su entorno. Para este ejemplo, usaré C # y Microsoft Visual Studio. Continúe y obtenga un proyecto y un archivo .cs creado. Llamé a mi proyecto "CheckStatusAndDownloadREST" y mi archivo .cs,

"CheckStatusAndDownloadREST.cs". Si necesita ayuda para configurar esto, vea mi primera Blog de .NET SDK (puede ignorar la parte del SDK de .NET y pasar a las secciones "Descarga de Microsoft Visual Studio" y "Crear y configurar su proyecto C #") para obtener instrucciones más detalladas.

Comunidad de desarrolladores de OneSpan Sign

Comunidad de desarrolladores de OneSpan Sign

¡Únase a la comunidad de desarrolladores de OneSpan Sign! Foros, blogs, documentación, descargas de SDK y más.

Únete hoy

Localizando la ID del paquete de su proyecto existente

Dado que el paquete con el que está trabajando se creó anteriormente, necesitamos encontrar la ID del paquete para usar en este proyecto. Si selecciona el proyecto de la bandeja de entrada de la interfaz de usuario, como se ve arriba, la URL tendrá el ID del paquete, como este:

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

En la clase C # que creó en el último blog, verá que el ID del paquete se devolvió en la respuesta HTTP que recibió de su llamada REST.

 

prueba de respuesta de la consola de depuración

 

Si estuviera creando una aplicación más compleja, es probable que almacene este ID de paquete para usarlo en otras partes de su aplicación, en lugar de buscarlo en las URL de inicio de sesión de OneSpan.

El código

Ahora está listo para escribir el código en su clase de C #. Copie el siguiente código en su archivo "CheckStatusAndDownloadREST.cs" (o como lo haya llamado) que creó anteriormente. Cubriré el código, con más detalle, a continuación.

usando Newtonsoft.Json.Linq;
utilizando el sistema;
usando System.Collections.Generic;
utilizando System.Diagnostics;
usando System.IO;
usando System.Net;
usando System.Net.Http;
usando System.Net.Http.Headers;
usando System.Text;

espacio de nombres CheckStatusAndDownloadREST
{
   clase pública CheckStatusAndDownload
   {
      public static void Main (cadena [] args)
      {
         string apiKey = "YOUR_API_KEY";
         string url = "https://sandbox.esignlive.com/api";

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

         // verifica el estado del paquete
         var packageStatusResponse = myClient.GetAsync (nueva Uri (url + "/packages/0487df67-6417-48f8-9575-b520c0f977ff")).Result;
         JObject packageStatusResponseJSON = JObject.Parse (packageStatusResponse.Content.ReadAsStringAsync (). Resultado);
         var packageStatus = packageStatusResponseJSON ["estado"];
         Debug.WriteLine ("Estado del paquete:" + packageStatus);

         // verifica el estado de firma del paquete
         var signatureStatusResponse = myClient.GetAsync (nueva Uri (url + "/packages/0487df67-6417-48f8-9575-b520c0f977ff/signingStatus")).Result;
         JObject signatureStatusResponseJSON = JObject.Parse (SignatureStatusResponse.Content.ReadAsStringAsync (). Resultado);
         var signatureStatus = signatureStatusResponseJSON ["estado"]. ToString ();
         Debug.WriteLine ("Estado de firma:" + firmado del estado);

         // descargar documentos
         if (signatureStatus.Equals ("COMPLETADO"))
         {
            var downloadZipResponse = myClient.GetAsync (nueva Uri (url + "/packages/0487df67-6417-48f8-9575-b520c0f977ff/documents/zip")).Result;
            Contenido de ByteArrayContent = nuevo ByteArrayContent (downloadZipResponse.Content.ReadAsByteArrayAsync (). Resultado);
            File.WriteAllBytes ("C: /Eclipse/myzip.zip", content.ReadAsByteArrayAsync (). Resultado);
            Debug.WriteLine ("Archivo Zip descargado");

            var evidenciaSummaryResponse = myClient.GetAsync (nueva Uri (url + "/packages/0487df67-6417-48f8-9575-b520c0f977ff/evidence/summary")).Result;
            ByteArrayContent evidenceSummaryContent = new ByteArrayContent (evidenceSummaryResponse.Content.ReadAsByteArrayAsync (). Resultado);
            File.WriteAllBytes ("C: /Eclipse/myevidencesummary.pdf", evidenciaSummaryContent.ReadAsByteArrayAsync (). Resultado);
            Debug.WriteLine ("Resumen de evidencia descargado");
         }
         más
         {
            Debug.WriteLine ("Firma no completa");
         }
      }
   }
}

Ahora, echemos un vistazo más de cerca al código. Al igual que la última vez, el primer par de líneas es donde se define la información de conexión para su conexión OneSpan Sign. Si está utilizando el entorno de producción, use la URL, https://apps.e-signlive.com/api . Asegúrese de reemplazar el texto del marcador de posición con su API_KEY. Puede encontrar este valor en la página CUENTA cuando inicie sesión en su cuenta de OneSpan Sign.

 

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

 

A continuación, creará el HttpClient que usará para realizar sus solicitudes GET y establecerá la autorización de encabezado y los valores de aceptación apropiados.

 

HttpClient myClient = nuevo HttpClient ();

myClient.DefaultRequestHeaders.Authorization = nuevo AuthenticationHeaderValue ( "Básico" , Clave API);

myClient.DefaultRequestHeaders.Add ( "Aceptar" , "application / json, application / zip, text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, * / *; q = 0.8" );


Verifica el estado
Para esta sección, necesitará el packageId que encontró arriba. Con eso a mano, puede configurar su solicitud GET para ver cuál es el estado del paquete. Los valores posibles son ARCHIVADO, COMPLETADO, DECLINADO, BORRADO, CADUCADO, OPTED_OUT y SENT. El siguiente código realiza una solicitud GET a la url creada a partir de la url base definida anteriormente con el resto de la url de la llamada REST apropiada definida en la documentación (en este caso, "/ packages / YOUR_PACKAGE_ID"). El contenido de la respuesta se analiza en un JObject y la propiedad de "estado" del JObject se obtiene y se escribe en la salida de depuración.

 

var packageStatusResponse = myClient.GetAsync ( nuevo Uri (url + "/ packages / YOUR_PACKAGE_ID" )).Resultado;

JObject packageStatusResponseJSON = JObject.Parse (packageStatusResponse.Content.ReadAsStringAsync (). Resultado);

var packageStatus = packageStatusResponseJSON [ "estado" ];

Debug.WriteLine ( "Estado del paquete: " + packageStatus);

 

Luego, verifique el estado de firma del paquete. Los valores posibles para este son ARCHIVADO, CANCELADO, COMPLETO, RECHAZADO, CADUCADO, INACTIVO, OPTED_OUT, COMPLETED y SIGNING_PENDING. Esto se hace exactamente igual que el último paso, excepto por la adición de "/ signStatus" a la url de solicitud. Escriba la respuesta para esta llamada en la ventana de salida de Depuración, también.

var signatureStatusResponse = myClient.GetAsync ( nuevo Uri (url + "/ packages / 0487df67-6417-48f8-9575-b520c0f977ff / SignatureStatus" )).Resultado;

JObject signatureStatusResponseJSON = JObject.Parse (SignatureStatusResponse.Content.ReadAsStringAsync (). Resultado);

var SignatureStatus = SignatureStatusResponseJSON [ "estado" ].Encadenar();

Debug.WriteLine ( "Estado de firma:" + signingStatus);

Descargar los archivos Para la última parte, verificará si el paquete está completo. Si es así, se descargará el archivo zip de todos los documentos, así como el resumen de la evidencia. Después de cada paso, escriba en la salida de Depuración para que sepa que el evento ocurrió cuando prueba la clase en el siguiente paso. Tampoco las adiciones a la URL base para cada descarga.

Si (signatureStatus.Equals ( "TERMINADO" ))

{

    var downloadZipResponse = myClient.GetAsync ( nuevo Uri (url + "/ packages / 0487df67-6417-48f8-9575-b520c0f977ff / documents / zip" )).Resultado;

    ByteArrayContent content = nuevo ByteArrayContent (downloadZipResponse.Content.ReadAsByteArrayAsync (). Resultado);

    File.WriteAllBytes ( "C: /Eclipse/myzip.zip" , content.ReadAsByteArrayAsync (). Resultado);

    Debug.WriteLine ( "Archivo Zip descargado" );

 

    var evidenciaSummaryResponse = myClient.GetAsync ( nuevo Uri (url + "/ paquetes / 0487df67-6417-48f8-9575-b520c0f977ff / evidencia / resumen" )).Resultado;

    ByteArrayContent evidenceSummaryContent = nuevo ByteArrayContent (evidenceSummaryResponse.Content.ReadAsByteArrayAsync (). Resultado);

    File.WriteAllBytes ( "C: /Eclipse/myevidencesummary.pdf" , evidenciaSummaryContent.ReadAsByteArrayAsync (). Resultado);

    Debug.WriteLine ( "Resumen de evidencia descargado" );

}

más

{

    Debug.WriteLine ( "Firma no completa" );

}

Ejecutando el Código

Con su clase simple completada, es hora de ejecutar la clase C #. Ejecute la clase desde la barra de herramientas haciendo clic en el botón Inicio.

Si aún no ha firmado su paquete, su salida debería tener el siguiente aspecto:

 

debugOutputPackageNotCompleteREST

 

Después de firmar su paquete, obtendrá lo siguiente en su ventana de Salida:

 

debugOutputPackageCompleteREST

 

Si ahora busca la ubicación donde guardó sus archivos, verá que sus archivos se descargaron correctamente.

 

downloadFilesREST

 

Ahí tienes. Ha verificado con éxito el estado y descargado los archivos de su paquete.

¡Gracias por leer! Si tiene preguntas o características que le gustaría ver cubiertas desde la perspectiva de un nuevo usuario, no dude en publicar en la sección de comentarios. Los enlaces a todas las publicaciones de esta serie de blogs se pueden encontrar a continuación.

- Michael Williams
Gorjeo El | Facebook El | LinkedIn

 

Serie de blogs de eSignLive para nuevos usuarios