OneSpan Sign Developer: Creación de un campo de botón de radio

Duo Liang, 26 de Septiembre de 2018

Al crear las transacciones, es posible que desee capturar la información de su destinatario durante la ceremonia de la firma. Con OneSpan Sign, puede hacerlo colocando campos, como campos de texto y casillas de verificación, en sus documentos.

En este blog, nos adentraremos en el campo del botón de radio, cómo crearlo tanto en el SDK como en el método REST, y las consideraciones importantes a la hora de crear un botón de radio. Sin más preámbulos, empecemos.

Campo de botón de radio

Uno de los tipos de campo más comunes en OneSpan Sign son los botones de radio. Se pueden agrupar asociando a cada uno un nombre de grupo común. Dentro de un grupo, usted tiene la capacidad de requerir a su firmante que haga una selección, así como preseleccionar un botón de radio como opción predeterminada.

Después de la ceremonia, el botón de radio seleccionado será replicado por una "X" en el documento después de que sea procesado por OneSpan Sign.

Ejemplo de SDK

Aquí hay algunos fragmentos del SDK que muestran cómo crear un campo de botón de radio:

Versión Java:

Field radio1 = FieldBuilder.radioButton("grupo1") .withId(new FieldId("firmante1_grupo1_radio1")) .withName(("firmante1_grupo1_radio1") .withSize(15,15) .onPage(0) .atPosition(100,100) .withValue(true) //seleccionado por defecto .withValidation(FieldValidatorBuilder.basic().required()) //añade un validador requerido .build();

Versión .Net:

Campo radio1 = FieldBuilder.RadioButton("grupo1") .WithId(("firmante1_grupo1_radio1") .WithName(("firmante1_grupo1_radio1") .WithSize(15,15) .OnPage(0) .AtPosition(100,100) .WithValue(true) //seleccionado por defecto .WithValidation(FieldValidatorBuilder.Basic().Required()) //añadir un validador requerido .Build();

Como hemos comentado anteriormente, varios botones de radio pueden compartir un mismo nombre de grupo, y este grupo sólo puede estar vinculado a un único firmante. Se sugiere que el Id de campo siga una convención de nomenclatura significativa.

Por defecto, los firmantes no están obligados a hacer una selección. Si quieres forzar a tu firmante a hacerlo, añade un Validador de Campo Requerido al campo para que añada un campo "requerido" en tu campo JSON. Si hay varios campos en un grupo, esta línea sólo debe añadirse a uno de ellos, pero recomendamos añadirla a todos los campos.

Para preseleccionar uno de varios combos, puede establecer el valor de su campo por true/"verdadero"/"x"/"X", comparando con false/"falso"/"" para empezar a deseleccionar. Dado que estamos utilizando un SDK, se sugiere utilizar simplemente un ajuste booleano verdadero para evitar la entrada de errores. Si por error establece valores verdaderos para varios botones de un grupo, OneSpan Sign reconocerá el último campo añadido como seleccionado por defecto.

Ejemplo de REST

A continuación se muestra un ejemplo de JSON que crea un campo de botón de radio, que es equivalente al código del SDK anterior:

{ "id": "firmante1_grupo1_radio1", "name": "firmante1_grupo1_radio1", "type": "INPUT", "subtype": "RADIO", "page":0, "height":15, "width":15, "left":100, "top":100, "value": "X", "validation":{"required":true, "enum":[ "group1" ] }

Como puede ver, para dar a un campo información extra, atributo requerido, y su nombre de grupo de radio se ponen en el atributo "validación".

Dato interesante

Si está utilizando REST para desarrollar su aplicación y desea recuperar los metadatos de los botones de radio en el JSON de su paquete (GET /api/packages/{packageId}), debe incluir el siguiente parámetro de cabecera para aprovechar los campos de formulario extendidos:

Accept: application/json; esl-api-version=11.18 (cualquier versión posterior a la 10.6)

Mientras que, si utiliza la llamada a la API (GET /api/packages/{packageId}/approvals/{approvalId}) para recuperar sus metadatos de aprobación, no necesita llevar este parámetro de cabecera. En definitiva, se recomienda llevar esto para mantener la misma cabecera de petición que hace el SDK. (En el SDK, este parámetro se añade por defecto)

Puede consultar la nota de la versión 10.6.1 para obtener más información.

Con métodos de extracción

Actualmente, el tipo de botón de radio aún no es compatible con la extracción de documentos. Por lo tanto, elegiremos la Extracción de Posición para localizar todos nuestros campos, junto con la Función de Inyección de Campo para rellenar la información del firmante para construir nuestro ejemplo de demostración.

Los nombres de los campos del formulario se muestran en la imagen de la izquierda. A la derecha encontrará la captura de pantalla del documento firmado.

9-26-1

El ejemplo está basado en el SDK de Java y este es el código principal al que puede referirse cuando también utilice la función de extracción de posiciones e inyección de campos:

DocumentPackage documentPackage = PackageBuilder.newPackageNamed("Test Package with Radio Button Fields") .withSigner(SignerBuilder.newSignerWithEmail(signerInfo.get("email")).withCustomId("signer1") .withFirstName(signerInfo.get("firstname")).withLastName(signerInfo.get("lastname"))) .withDocument(DocumentBuilder.newDocumentWithName("Sample contract") .fromFile("your file path") .enableExtraction() .withSignature(SignatureBuilder.signatureFor(signerInfo.get("email")) .withPositionExtracted().withName("signer1_fullname1") .withField(FieldBuilder.signatureDate().withPositionExtracted() .withName("signer1_fullname1_date")) .withField(radio1).withField(radio2).withField(radio3)) .withInjectedField(FieldBuilder.textField().withName("signer1_name") .withValue(signerInfo.get("firstname") + " " + signerInfo.get("lastname"))) .withInjectedField(FieldBuilder.textField().withName("signer1_email") .withValue(signe

Puedes encontrar el código completo y el documento que utilicé en el ejemplo aquí.

A través del blog de hoy, nos estamos familiarizando con el uso común del campo de botón de radio. Al aplicar la extracción de posición al botón de radio, podemos construir efectivamente una transacción con él.

Si tiene alguna pregunta 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. Su opinión nos importa