OneSpan Sign Cómo: Crear una plantilla

Haris Haidary, 16 de Noviembre de 2022

Las plantillas permiten a un remitente crear rápidamente un nuevo paquete de documentos utilizando uno anterior como modelo. Es una gran herramienta si planea enviar los mismos documentos para firmar de manera regular. En este blog, le mostraré cómo crear una plantilla desde cero y desde un paquete existente utilizando OneSpan Sign Java SDK, .NET SDK y REST API.

Plantillas en la IU

Para empezar, debe ubicar la sección de plantillas en su IU. Después de iniciar sesión en su cuenta de OneSpan Sign, haga clic en PLANTILLAS en su barra de herramientas. Después de ejecutar su código, debe encontrar sus plantillas guardadas aquí.

uitemplate

El código

Como mencioné antes, le mostraré cómo hacer esto con OneSpan Sign Java SDK, .NET SDK y REST API. Puede continuar y pasar a la sección que se aplica a usted. Cubriré exactamente la misma información en cada sección. En mi ejemplo, mostraré cómo crear una plantilla con un documento y dos firmantes. El código de ejemplo completo para este blog se puede encontrar en el Código compartido de la comunidad de desarrolladores ( Java , .RED , DESCANSO ) [id de promoción = "14439"] JAVA SDK Primero, comenzaré con el SDK de Java. El siguiente código de muestra crea una plantilla desde cero, con un documento y dos firmantes. El primer paso es crear su cliente OneSpan Sign. Asegúrese de reemplazar los marcadores de posición API_KEY y API_URL con sus valores. Luego, construye su paquete de documentos con las propiedades aplicables. Una vez que su paquete está construido, usted llama a su TemplateService para crear su plantilla.

paquete com.esignlive.example;

import com.silanis.esl.sdk.DocumentPackage;
import com.silanis.esl.sdk.EslClient;
import com.silanis.esl.sdk.PackageId;
 
importar estática com.silanis.esl.sdk.builder.DocumentBuilder.newDocumentWithName;
importar estática com.silanis.esl.sdk.builder.PackageBuilder.newPackageNamed;
importar estática com.silanis.esl.sdk.builder.SignatureBuilder.signatureFor;
importar estática com.silanis.esl.sdk.builder.SignerBuilder.newSignerWithEmail;

Plantillas de clase pública {
	
    Cadena pública estática final API_KEY = "your_api_key";
    public static final String API_URL = "https://sandbox.e-signlive.com/api"; 
    // USE https://apps.e-signlive.com/api PARA LA PRODUCCIÓN
 
    public static void main (String [] args) {
    	
    	EslClient eslClient = nuevo EslClient (API_KEY, API_URL);
    	
    	DocumentPackage documentPackage = newPackageNamed ("Mi plantilla desde cero SDK de Java") 
    					.withSigner (newSignerPlaceholder (nuevo Placeholder ("PlaceholderId1"))) 
    					.withSigner (newSignerPlaceholder (nuevo Placeholder ("PlaceholderId2")))
    					.withDocument (newDocumentWithName ("Mi documento") 
    							.fromFile ("YOUR_FILE_PATH") 
    							.withSignature (signatureFor (nuevo marcador de posición ("PlaceholderId1")) 
    									.onPage (0) 
    									.atPosition (100, 140))
    							.withSignature (signatureFor (nuevo marcador de posición ("PlaceholderId2"))
    									.onPage (0) 
    									.atPosition (100, 205)))
    					.construir();
    	
    	PackageId templateId = eslClient.getTemplateService (). CreateTemplate (documentPackage);
    }

}

También puede crear una plantilla a partir de un paquete existente. Para esto, necesitará el packageId de su paquete.

PackageId packageId = nuevo PackageId ("d9355f04-9bb2-4219-b9fa-734f2650a939");
PackageId templateFromPackage = eslClient.getTemplateService (). CreateTemplateFromPackage (packageId, "Nueva plantilla del paquete");

.NET SDK A continuación, revisaré el SDK de .NET. El siguiente código de muestra crea una plantilla desde cero, con un documento y dos firmantes. El primer paso es crear su cliente OneSpan Sign. Asegúrese de reemplazar los marcadores de posición API_KEY y API_URL con sus valores. Luego, construye su paquete de documentos con las propiedades aplicables. Una vez que su paquete está construido, usted llama a su TemplateService para crear su plantilla.

utilizando el sistema;
usando System.IO;
usando Silanis.ESL.SDK;
usando Silanis.ESL.SDK.Builder;

espacio de nombres createTemplateFrom
{
    clase createTemplateFrom
    {
        Private static String apiUrl = "https://sandbox.e-signlive.com/api";
        // USE https://apps.e-signlive.com/api PARA LA PRODUCCIÓN
        cadena estática privada apiKey = "your_api_key";

        public static void Main (cadena [] args)
        {
            EslClient eslClient = nuevo EslClient (apiKey, apiUrl);

            FileStream fs = File.OpenRead ("YOUR_FILE_PATH");

           DocumentPackage documentPackage = PackageBuilder
                    .NewPackageNamed ("Mi plantilla desde cero .NET SDK")
                    .WithSigner (SignerBuilder.NewSignerPlaceholder (nuevo Placeholder ("PlaceholderId1")))
                    .WithSigner (SignerBuilder.NewSignerPlaceholder (nuevo Placeholder ("PlaceholderId2")))
                    .WithDocument (DocumentBuilder.NewDocumentNamed ("Mi documento")
                                  .FromStream (fs, DocumentType.PDF)
                                  .WithSignature (SignatureBuilder
                                       .SignatureFor (nuevo marcador de posición ("PlaceholderId1"))
                                         .OnPage (0)
                                         .Posición (100, 140))
                                  .WithSignature (SignatureBuilder
                                       .SignatureFor (nuevo marcador de posición ("PlaceholderId2"))
                                         .OnPage (0)
                                         .Posición (100, 205)))
                    .Construir();

            PackageId templateId = eslClient.CreateTemplate (documentPackage);
        }
    }
}

También puede crear una plantilla a partir de un paquete existente. Para hacer esto, necesitará el packageId de su paquete.

PackageId packageId = nuevo PackageId ("d9355f04-9bb2-4219-b9fa-734f2650a939");
PackageId templateFromPackage = eslClient.CreateTemplateFromPackage (packageId, "Nueva plantilla del paquete");

API REST Finalmente, te mostraré cómo hacerlo con la API REST. A continuación se muestra una clase de C # que realiza una solicitud POST para crear una nueva plantilla desde cero. La carga útil de la solicitud JSON contiene muchas propiedades vacías que no son necesarias para crear una nueva plantilla. Los incluí para darle una lista de opciones disponibles y cómo se analizan en el JSON.

utilizando el sistema;
utilizando System.Diagnostics;
usando System.IO;
usando System.Net;
usando System.Net.Http;
usando System.Net.Http.Headers;
usando System.Text;

espacio de nombres createTemplateREST
{
    clase pública createTemplateREST
    {
        public static void Main (cadena [] args)
        {

            string apiKey = "your_api_key";
            string url = "https://sandbox.e-signlive.com/api";

            string jsonString = "{\" name \ ": \" Mi plantilla desde cero REST \ ", \" description \ ": \" \ ", \" roles \ ": [{\" name \ ": \" PlaceholderId1 \ ", \" index \ ": 0, \" id \ ": \" PlaceholderId1 \ ", \" bloqueado \ ": falso, \" reasignar \ ": falso}, {\" nombre \ ": \" PlaceholderId2 \ ", \" index \ ": 0, \" id \ ": \" PlaceholderId2 \ ", \" bloqueado \ ": falso, \" reasignar \ ": falso}], \" tipo \ ": \" PLANTILLA \ ", \" due \ ": nulo, \" autocompletar \ ": verdadero, \" emailMessage \ ": \" \ ", \" documentos \ ": [{\" aprobaciones \ ": [{\" rol \ " : \ "PlaceholderId1 \", \ "firmado \": nulo, \ "aceptado \": nulo, \ "datos \": nulo, \ "campos \": [{\ "página \": 0, \ "subtipo \ ": \" NOMBRE COMPLETO \ ", \" ancho \ ": 200, \" enlace \ ": nulo, \" extracto \ ": falso, \" extractoAnchor \ ": nulo, \" izquierda \ ": 175, \ "top \": 165, \ "validation \": null, \ "height \": 50, \ "data \": null, \ "type \": \ "SIGNATURE \", \ "value \": \ "\"}], \ "nombre \": \ "\"}, {\ "rol \": \ "PlaceholderId2 \", \ "firmado \": nulo, \ "aceptado \": nulo, \ "datos \ ": nulo, \" campos \ ": [{\" página \ ": 0, \" subtipo \ ": \" NOMBRE COMPLETO \ ", \" ancho \ ": 200, \" enlace \ ": nulo, \ "extract \": falso, \ "extractAnchor \": nulo , \ "left \": 550, \ "top \": 165, \ "validation \": null, \ "height \": 50, \ "data \": null, \ "type \": \ "SIGNATURE \ ", \" value \ ": \" \ "}], \" name \ ": \" \ "}], \" name \ ": \" YOUR_FILE_NAME \ "}]}";
            
            StringContent jsonContent = new StringContent (jsonString, Encoding.UTF8, "aplicación / json"); 

            byte [] fileByteArray = File.ReadAllBytes ("YOUR_FILE_PATH");
            Contenido de ByteArrayContent = nuevo ByteArrayContent (fileByteArray);

            content.Headers.ContentDisposition = new ContentDispositionHeaderValue ("datos de formulario");
            content.Headers.ContentDisposition.Name = "\" archivo \ "";
            content.Headers.ContentDisposition.FileName = "\" myDocument.pdf \ "";
            content.Headers.ContentType = new MediaTypeHeaderValue ("aplicación / pdf");

            MultipartFormDataContent form = new MultipartFormDataContent ();
            form.Add (contenido, "\" archivo \ "", "\" myDocument.pdf \ "");
            form.Add (jsonContent, "\" payload \ "");

            HttpClient myClient = new HttpClient ();
            myClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue ("Básico", apiKey);
            myClient.DefaultRequestHeaders.Add ("Aceptar", "aplicación / json");

            respuesta var = myClient.PostAsync (nueva Uri (url) + "/ packages /", form) .Result;
            Debug.WriteLine (response.Content.ReadAsStringAsync (). Resultado);
        }
    }
}

Del mismo modo, puede crear una nueva plantilla a partir de un paquete existente. Necesitará el packageId del paquete que desea clonar.

string jsonString = "{\" name \ ": \" your_cloned_template \ ", \" description \ ": \" \ ", \" emailMessage \ ": \" \ ", \" autocomplete \ ": true, \" settings \ ": {\" ceremonia \ ": {\" en persona \ ": falso}}, \" tipo \ ": \" PLANTILLA \ ", \" remitente \ ": {\" apellido \ ": \" Nombre del último emisor \ ", \" firstName \ ": \" Sender_First_Name \ ", \" email \ ": \" first.signer @example .com \ "}, \" visibilidad \ ": \" CUENTA \ ", \" vencimiento \ ": nulo, \" idioma \ ": \" en \ "}";
StringContent jsonContent = new StringContent (jsonString, Encoding.UTF8, "aplicación / json");

HttpClient myClient = new HttpClient ();
myClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue ("Básico", apiKey);
myClient.DefaultRequestHeaders.Add ("Aceptar", "aplicación / json");

respuesta var = myClient.PostAsync (nueva Uri (url + "d9355f04-9bb2-4219-b9fa-734f2650a939 / clone"), jsonContent) .Result;
Debug.WriteLine (response.Content.ReadAsStringAsync (). Resultado);

Ejecutando su código

Continúa y ejecuta tu código. Debería poder ver su plantilla recién creada en su cuenta de OneSpan Sign.

plantilla de resultados

Ahí tienes. Ha creado con éxito una plantilla desde cero y desde un paquete creado previamente.

Si tiene preguntas sobre este blog o cualquier otra cosa relacionada con la integración de OneSpan Sign en su aplicación, visite los foros de la comunidad de desarrolladores: https://developer.onespan.com . Eso es todo de mi parte. ¡Gracias por leer! Si esta publicación le parece útil, compártala en Facebook, Twitter o LinkedIn.

Haris Haidary Junior

Evangelista Técnico de Producto

LinkedIn El | Gorjeo