Para descargar la muestra de código completa, consulte nuestro sitio Code Share.

OneSpan Sign ofrece la posibilidad de que los firmantes carguen archivos adjuntos durante el flujo de trabajo de firma. Los remitentes pueden revisar el archivo adjunto proporcionado y marcar la transacción como completada. En este tema se describe cómo un remitente puede requerir que el firmante cargue un archivo adjunto a la transacción.

Crear una solicitud de archivo adjunto

El siguiente código describe cómo editar el bloque de firmante para solicitar un archivo adjunto.

El método withDescription() le permite proporcionar una descripción al firmante acerca de la carga de archivos que está solicitando. El método isRequiredAttachment() define que el archivo adjunto es obligatorio. Ninguno de ellos es obligatorio cuando se construye el objeto AttachmentRequirement.

.withSigner(newSignerWithEmail("[email protected]")
.withFirstName("John")
	.withLastName("Doe")
	.withCustomId("Signer1")
	.withAttachmentRequirement(newAttachmentRequirementWithName("Driver's license")
		.withDescription("Please upload a copy of your driver’s license.")
		.isRequiredAttachment()
		.build()))

Estado de archivos adjuntos

Es posible que desee consultar el estado de cada archivo adjunto de su transacción. El siguiente código recorrerá cada objeto AttachmentRequirement e imprimirá el nombre, el estado y el identificador de cada archivo adjunto solicitado para el firmante especificado.

DocumentPackage myPackage = client.getPackage(packageId);
		
List<AttachmentRequirement> signer1Attachments = myPackage.getSigner("[email protected]").getAttachmentRequirements();
		
for(AttachmentRequirement attachment : signer1Attachments){
      System.out.println(attachment.getName() + " " + attachment.getStatus() + " " + attachment.getId());
}

Descargar archivos adjuntos

Los archivos adjuntos pueden descargarse de las siguientes maneras:

  • Como archivos adjuntos individuales. Para ello, se requiere el identificador del archivo adjunto.
  • En un paquete que contiene todos los archivos adjuntos.
  • En un paquete que contiene todos los archivos adjuntos de un firmante especificado.

El siguiente código hará lo siguiente:

//Download individual attachment
DownloadedFile downloadedAttachment = client.getAttachmentRequirementService().downloadAttachmentFile(packageId, attachmentId);
Files.saveTo(downloadedAttachment.getContents(), downloadedAttachment.getFilename());
//Download all attachments in package	    
DownloadedFile downloadedAllAttachmentsForPackage = client.getAttachmentRequirementService().downloadAllAttachmentFilesForPackage(packageId);
Files.saveTo(downloadedAllAttachmentsForPackage.getContents(), "downloadedAllAttachmentsForPackage.zip");
//Download all attachments for signer in package         
DownloadedFile downloadedAllAttachmentsForSigner1InPackage = client.getAttachmentRequirementService().downloadAllAttachmentFilesForSignerInPackage(myPackage, signer1);
Files.saveTo(downloadedAllAttachmentsForSigner1InPackage.getContents(), "downloadedAllAttachmentsForSigner.zip");

Revisar archivos adjuntos

Después de revisar el archivo adjunto, puede rechazarlo o aceptarlo. Si rechaza el archivo adjunto, también puede incluir un pequeño mensaje de retroalimentación explicando por qué se rechazó el archivo adjunto. El siguiente código hará lo siguiente:

client.getAttachmentRequirementService().rejectAttachment(packageId, signer1, "Driver's license", "Expired driver's license");

Es importante tomar en cuenta que las transacciones que requieren archivos adjuntos no se autocompletan. Ofrece al remitente la oportunidad de revisar el archivo adjunto, y aceptarlo o rechazarlo.

Si se han cargado y aprobado todos los archivos adjuntos necesarios, puede completar el paquete actualizando el estado de su paquete a COMPLETADO. El siguiente código hará lo siguiente:

DocumentPackage myPackage = client.getPackage(packageId);
		
myPackage.setStatus(PackageStatus.COMPLETED);
		
client.updatePackage(packageId, myPackage);

Resultados

Una vez que haya completado este procedimiento, los documentos requeridos aparecerán con cada destinatario.

adjuntar

Para descargar la muestra de código completa, consulte nuestro sitio Code Share.

OneSpan Sign ofrece la posibilidad de que los firmantes carguen archivos adjuntos durante el flujo de trabajo de firma. Los remitentes pueden revisar el archivo adjunto proporcionado y marcar la transacción como completada. En este tema se describe cómo un remitente puede requerir que el firmante cargue un archivo adjunto a la transacción.

Crear una solicitud de archivo adjunto

El siguiente código describe cómo editar el bloque de firmante para solicitar un archivo adjunto.

El método withDescription() le permite proporcionar una descripción al firmante acerca de la carga de archivos que está solicitando. El método isRequiredAttachment() define que el archivo adjunto es obligatorio. Ninguno de ellos es obligatorio cuando se construye el objeto AttachmentRequirement.

.WithSigner(SignerBuilder.NewSignerWithEmail("[email protected]")
    .WithFirstName("John")
    .WithLastName("Doe")
    .WithCustomId("Signer1")
    .WithAttachmentRequirement(AttachmentRequirementBuilder.NewAttachmentRequirementWithName("Driver's license")
        .WithDescription("Please upload a copy of your driver’s license.")
        .IsRequiredAttachment()
        .Build()))

Estado de archivos adjuntos

Es posible que desee consultar el estado de cada archivo adjunto de su transacción. El siguiente código recorrerá cada objeto AttachmentRequirement e imprimirá el nombre, el estado y el identificador de cada archivo adjunto solicitado para el firmante especificado.

DocumentPackage myPackage = client.GetPackage(packageId);
IList<AttachmentRequirement> signer1Attachments = myPackage.GetSigner("[email protected]").Attachments;
foreach (AttachmentRequirement attachment in signer1Attachments)
{
     Debug.WriteLine(attachment.Name + " " + attachment.Status + " " + attachment.Id);
}

Descargar archivos adjuntos

Los archivos adjuntos pueden descargarse de las siguientes maneras:

  • Como archivos adjuntos individuales. Para ello, se requiere el identificador del archivo adjunto.
  • En un paquete que contiene todos los archivos adjuntos.
  • En un paquete que contiene todos los archivos adjuntos de un firmante especificado.

El siguiente código hará lo siguiente:

//Download individual attachment
DownloadedFile downloadedAttachment = client.AttachmentRequirementService.DownloadAttachmentFile(packageId, attachmentId);
System.IO.File.WriteAllBytes(downloadedAttachment.Filename, downloadedAttachment.Contents);
//Download all attachments in package
DownloadedFile downloadedAllAttachmentsForPackage = client.AttachmentRequirementService.DownloadAllAttachmentFilesForPackage(packageId);
System.IO.File.WriteAllBytes("downloadedAllAttachmentsForPackage.zip", downloadedAllAttachmentsForPackage.Contents);
//Download all attachments for signer in package
DownloadedFile downloadedAllAttachmentsForSigner1InPackage = client.AttachmentRequirementService.DownloadAllAttachmentFilesForSignerInPackage(myPackage, signer1);
System.IO.File.WriteAllBytes("downloadedAllAttachmentsForSigner.zip", downloadedAllAttachmentsForSigner1InPackage.Contents);

Revisar archivos adjuntos

Después de revisar el archivo adjunto, puede rechazarlo o aceptarlo. Si rechaza el archivo adjunto, también puede incluir un pequeño mensaje de retroalimentación explicando por qué se rechazó el archivo adjunto. El siguiente código hará lo siguiente:

client.AttachmentRequirementService.RejectAttachment(packageId, signer1, "Driver's license", "Expired driver's license");

Es importante tomar en cuenta que las transacciones que requieren archivos adjuntos no se autocompletan. Ofrece al remitente la oportunidad de revisar el archivo adjunto, y aceptarlo o rechazarlo.

Si se han cargado y aprobado todos los archivos adjuntos necesarios, puede completar el paquete actualizando el estado de su paquete a COMPLETADO. El siguiente código hará lo siguiente:

DocumentPackage myPackage = eslClient.GetPackage(packageId);
myPackage.Status = DocumentPackageStatus.COMPLETED;
eslClient.UpdatePackage(packageId, myPackage);

Resultados

Una vez que haya completado este procedimiento, los documentos requeridos aparecerán con cada destinatario.

adjuntar

Para descargar la muestra de código completa, consulte nuestro sitio Code Share.

OneSpan Sign ofrece la posibilidad de que los firmantes carguen archivos adjuntos durante el flujo de trabajo de firma. Los remitentes pueden revisar el archivo adjunto proporcionado y marcar la transacción como completada. En este tema se describe cómo un remitente puede requerir que el firmante cargue un archivo adjunto a la transacción.

Crear una solicitud de archivo adjunto

El siguiente código describe cómo añadir un destinatario con un requisito de archivo adjunto.

Solicitud HTTP

POST /api/packages/{packageId}/roles

Encabezados HTTP

Accept: application/json
Content-Type: application/json
Authorization: Basic api_key

Carga útil de solicitud

{
  "id": "client",
  "type": "SIGNER",
  "index": 1,
  "attachmentRequirements": [
    {
      "description": "Please upload a scanned copy of your driver's license.",
      "required": true,
      "id": "lD6p5QnWk905",
      "status": "INCOMPLETE",
      "comment": "",
      "name": "Driver's license"
    }
  ],
  "signers": [
    {
      "firstName": "John",
      "lastName": "Smith",
      "email": "[email protected]"
    }
  ],
  "name": "client"
}

Para obtener una descripción completa de cada campo, consulte la tabla Carga útil de solicitud siguiente.

Carga útil de respuesta

{
    "id": "client",
    "data": null,
    "emailMessage": null,
    "attachmentRequirements": [
        {
            "status": "INCOMPLETE",
            "description": "Please upload a scanned copy of your driver's license.",
            "required": true,
            "id": "1JMGfs9xRDoD",
            "comment": "",
            "name": "Driver's license",
            "data": null
        }
    ],
    "locked": false,
    "reassign": false,
    "specialTypes": [],
    "index": 1,
    "type": "SIGNER",
    "signers": [
        {
            "group": null,
            "language": "en",
            "signature": null,
            "id": "fe666c24-c18d-4d93-bbb7-2b1a6ce8332e",
            "auth": {
                "scheme": "NONE",
                "challenges": []
            },
            "data": null,
            "title": "",
            "external": null,
            "updated": "2017-10-19T18:18:37Z",
            "company": "",
            "email": "[email protected]",
            "firstName": "John",
            "lastName": "Smith",
            "phone": "",
            "professionalIdentityFields": [],
            "userCustomFields": [],
            "knowledgeBasedAuthentication": null,
            "delivery": {
                "provider": false,
                "email": false,
                "download": false
            },
            "address": null,
            "created": "2017-10-19T18:18:37Z",
            "name": "",
            "specialTypes": []
        }
    ],
    "name": "client"
}

Descargar archivos adjuntos

Los archivos adjuntos pueden descargarse de las siguientes maneras:

  • Como archivos adjuntos individuales. Para ello, se requiere el identificador del archivo adjunto.
  • En un paquete que contiene todos los archivos adjuntos.
  • En un paquete que contiene todos los archivos adjuntos de un firmante especificado.

Para descargar un archivo adjunto individual, necesitará el paquete y el ID de archivo adjunto. El siguiente código hará lo siguiente:

Solicitud HTTP

GET /api/packages/{packageId}/attachment/{attachmentId}

Encabezados HTTP

Accept: application/octet-stream
Content-Type: application/octet-stream
Authorization: Basic api_key

Carga útil de respuesta

[document.pdf]

También puede descargar todos los archivos adjuntos como un archivo zip en un paquete. El siguiente código hará lo siguiente:

Solicitud HTTP

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

Encabezados HTTP

Accept: application/zip
Content-Type: application/zip
Authorization: Basic api_key

Carga útil de respuesta

[document.zip]

Para descargar todos los archivos adjuntos como un archivo zip para un firmante en particular, hará su solicitud a:

Solicitud HTTP

GET /api/packages/{packageId}/attachment/zip/{roleId}

Encabezados HTTP

Accept: application/zip
Content-Type: application/zip
Authorization: Basic api_key
[document.zip]

Revisar archivos adjuntos

Después de revisar el archivo adjunto, puede rechazarlo o aceptarlo. Si rechaza el archivo adjunto, también puede incluir un pequeño mensaje de retroalimentación explicando por qué se rechazó el archivo adjunto. El siguiente código hará lo siguiente:

Solicitud HTTP

PUT /api/packages/{packageId}/roles/{roleId}

Encabezados HTTP

Accept: application/json
Content-Type: application/json
Authorization: Basic api_key

Carga útil de solicitud

{
  "attachmentRequirements": [
    {
      "id": "q66CYiDrxTU1",
      "status": "REJECTED",
      "comment": "Invalid copy."
    }
  ]
}

Es importante tomar en cuenta que las transacciones que requieren archivos adjuntos no se autocompletan. Ofrece al remitente la oportunidad de revisar el archivo adjunto, y aceptarlo o rechazarlo.

Si se han cargado y aprobado todos los archivos adjuntos necesarios, puede completar el paquete actualizando el estado de su paquete a COMPLETADO. El siguiente código hará lo siguiente:

Solicitud HTTP

PUT /api/packages/{packageId}/

Encabezados HTTP

Accept: application/json
Content-Type: application/json
Authorization: Basic api_key

Carga útil de solicitud

{
    "status" : "COMPLETED"
}

Resultados

Una vez que haya completado este procedimiento, los documentos requeridos aparecerán con cada destinatario.

adjuntar

Tabla de propiedades JSON

PropiedadTipoEditableObligatorioPredeterminadoValores de ejemplo
idstringNon/aclient
typestringNoFIRMANTEFIRMANTE / REMITENTE
indexintegerNo00 / 1 / 2 ...
namestringNon/aclient
attachmentRequirements
descriptionstringNon/aPor favor, cargue una copia escaneada de su licencia de conducir
requiredbooleanNofalsefalse / true
idstringNon/alD6p5QnWk905
statusstringNoINCOMPLETEINCOMPLETE / COMPLETE / REJECTED
comentariostringNon/alicencia de conducir incorrecta
namestringNon/aLicencia de conducir
signers
firstNamestringNon/aErnesto
lastNamestringNon/aPuente
emailstringNon/a[email protected]

Para descargar la muestra de código completa, consulte nuestro sitio Code Share.

OneSpan Sign ofrece la posibilidad de que los firmantes carguen archivos adjuntos durante el flujo de trabajo de firma. Los remitentes pueden revisar el archivo adjunto proporcionado y marcar la transacción como completada. En este tema se describe cómo un remitente puede requerir que el firmante cargue un archivo adjunto a la transacción.

Crear una solicitud de archivo adjunto

El siguiente código describe cómo editar el bloque de firmante para solicitar un archivo adjunto.

ESignLiveAPIObjects.Role role = new ESignLiveAPIObjects.Role();
ESignLiveAPIObjects.Signer signer = new ESignLiveAPIObjects.Signer();
signer.firstName = 'firstName';
signer.lastName = 'lastName';
signer.email = '[email protected]';
signer.name = 'signer1';
signer.id = 'signer1';
role.signers = new List<ESignLiveAPIObjects.Signer>{signer};
role.id = 'signer1';
role.attachmentRequirements = new ESignLiveAPIObjects.AttachmentRequirement(null, 'Please upload a copy of your driver\'s license.','attachment1','driver\'s license' ,true,null,null);

Además, existen dos funciones encapsuladas en Code Share:

public ESignLiveAPIObjects.AttachmentRequirement createAttachmentRequirement(String id, String name, String description, Boolean isRequired)
public ESignLiveAPIObjects.Role createRoleWithAttachmentRequest(String id, String firstName, String lastName, String email, List attachmentRequirements)

El método withDescription() le permite proporcionar una descripción al firmante acerca de la carga de archivos que está solicitando. El método isRequiredAttachment() define que el archivo adjunto es obligatorio. Ninguno de ellos es obligatorio cuando se construye el objeto AttachmentRequirement.

La función createAttachmentRequirement() le permite proporcionar una descripción al firmante acerca de la carga de archivos que está solicitando y que el archivo adjunto es obligatorio. La función createRoleWithAttachmentRequest() proporciona una manera más fácil de crear un rol con una lista de requisitos de archivos adjuntos.

Estado de archivos adjuntos

Es posible que desee consultar el estado de cada archivo adjunto de su transacción. El siguiente código recorrerá cada objeto AttachmentRequirement e imprimirá el nombre, el estado y el identificador de cada archivo adjunto solicitado para el firmante especificado.

ESignLiveSDK sdk = new ESignLiveSDK();
//retrieve attachments' status
ESignLiveAPIObjects.Role retrievedRole1 = sdk.getRole(packageId,roleId);
for(ESignLiveAPIObjects.AttachmentRequirement attachment: retrievedRole1.attachmentRequirements){
     System.debug('Attachment: ' + attachment.id+ ' : ' + attachment.name + ' : ' + attachment.status);        
}

El fragmento de código está encapsulado en esta función:

public void retrieveAttachmentsStatus(String packageId, String roleId)

Descargar archivos adjuntos

Los archivos adjuntos pueden descargarse de las siguientes maneras:

  • Como archivos adjuntos individuales. Para ello, se requiere el identificador del archivo adjunto.
  • En un paquete que contiene todos los archivos adjuntos.
  • En un paquete que contiene todos los archivos adjuntos de un firmante especificado.

El siguiente código hará lo siguiente:

//Download individual attachment
Blob downloadAttachmentFile = downloadAttachmentFile('packageId','attachmentId');
//Download all attachments in package	    
Blob downloadAttachmentFilesForPackage = downloadAllAttachmentFilesForPackage('packageId');
//Download all attachments for signer in package         
ESignLiveSDK sdk = new ESignLiveSDK();
String downloadAllAttachmentForSigner = sdk.downloadAllAttachmentFilesForSignerInPackage('packageId','roleId');

Revisar archivos adjuntos

Después de revisar el archivo adjunto, puede rechazarlo o aceptarlo. Si rechaza el archivo adjunto, también puede incluir un pequeño mensaje de retroalimentación explicando por qué se rechazó el archivo adjunto. El siguiente código hará lo siguiente:

public void acceptAttachment(String packageId, String roleId, String attachmentName)
public void rejectAttachment(String packageId, String roleId, String attachmentName, String senderComment)

Es importante tomar en cuenta que las transacciones que requieren archivos adjuntos no se autocompletan. Ofrece al remitente la oportunidad de revisar el archivo adjunto, y aceptarlo o rechazarlo.

Si se han cargado y aprobado todos los archivos adjuntos necesarios, puede completar el paquete actualizando el estado de su paquete a COMPLETADO. El siguiente código hará lo siguiente:

ESignLiveAPIObjects.Package_x pkg = sdk.getPackage(packageId);
pkg.status = ESignLiveAPIObjects.PackageStatus.COMPLETED;
sdk.updatePackage(pkg,packageId);  

Resultados

Una vez que haya completado este procedimiento, los documentos requeridos aparecerán con cada destinatario.

adjuntar