Firma en lote con Viafirma Desktop

Actualizado: 08-sep-2023

A partir de la v3.24 de Viafirma Platform se permite activar el procesamiento de firmas en lote en paralelo, tanto del lado servidor como del lado cliente (Desktop).

Estos nuevos servicios incrementan el rendimiento de los procesos con un número muy elevado de documentos, mejorando además la experiencia del usuario final que debe interactuar con Viafirma Desktop para el procesamiento y firma de los documentos.

Requisitos:

  • Viafirma platform v3.24 y superior con sistema de caché basado en Redis.
  • Viafirma Desktop v2.3 y superior.

NOTA: las instalaciones de platform v3.24+ en HA con sistema de caché basado en EHCACHE en lugar de Redis no activarán el procesamiento del lote en paralelo aún recibiendo peticiones de Desktop con el param isParallel a true.

Integradores:

  • Uso de Viafirma Desktop mediante apertura por protocolo, y haciendo uso del nuevo queryParam isParallel=true.

Seguridad:

Todos los servicios REST descritos en esta guía requieren una autenticación Basic Auth, por lo que debes contar con credenciales válidas generadas previamente desde Viafirma Manager.

Descripción del proceso

El procedimiento parar preparar un firma en lote de varios documentos a través del cliente VIAFIRMA DESKTOP, en sus versiones escritorios Windows y Mac OS, está compuesto por tres fases.

  • Fase de preparación del lote
  • Fase de firma (cliente)
  • Fase de consulta y descarga de los documentos firmados

Primera fase: preparación del lote

Para la preparación del lote necesitarás consumir 3 métodos del API para:

  • definir propiedades de proceso de firma (lote), donde obtendrás el operationId que necesitarás para continuar con el proceso:

POST /api/rest/services/prepareparallelsignature

  • añadir todos los documentos que necesites al proceso (lote), definiendo para cada uno de ellos la política de firma deseada:

POST /api/rest/services/preparesignature/addOperationFile

  • y por último cerrar el proceso (lote), en el que necesitarás informar el operationId asociado a tu proceso para la apertura por protocolo de Desktop.

GET /api/rest/services/preparesignature/finish/{{operationId}}/

Apertura por protocolo

Para la apertura por protocolo debes hacer uso del siguiente formato:

viafirmawpfclient://?url={{endpoint}}&operationId={{operationId}}&isParallel=true

Ejemplo:

viafirmawpfclient://?url=https://testservices.viafirma.com/viafirma&operationId=1693933026460U8CIU7MH&isParallel=true

Una vez finalizada la operación cliente, Viafirma Desktop se comunicará con el servidor de Viafirma Platform para completar la envoltura de los formatos de firma definidos en la solicitud.

Requisitos para la firma en lote

  • el número máximo del elementos del lote debe ser informado en la preparación.
  • el lote podrá ser consolidado de forma prematura, es decir, con menos elementos que los informados en la preparación, pero nunca se podrá consolidar con 0 (cero elementos). De esta forma el lote gestiona dos valores: total y current para definir el número máximo de elementos previsto, y el número real de elementos consolidados en el lote respectivamente.

El total se mostrará en la UI de Viafirma Desktop durante la fase de preparación:

Preparando Documentos N / total

mientras que el current se mostrará en la UI de Viafirma Desktop en la fase de firma, es decir, el lote ya ha sido finalizado, y se mostrará el número de elementos realmente incluido.

Firmando Documentos N / current

Segunda fase: consulta del estado

Mientras la aplicación Viafirma Desktop está procesando la firma en cliente tu aplicación no tendrá el control del proceso, por lo que debes implementar los métodos del API que te informarán del estado del proceso.

  • estado del proceso, para el que necesitarás el operationId:

GET /api/rest/services/operation/finished/{{operationId}}

{
    "operationId": "string",
    "isFinished": true,
    "isCancelled": false,
    "isDownloaded": false,
    "isInitialized": false,
    "hasErrors": false,
    "isSignature": false
}
  • tras finalizar el proceso necesitarás el identificador individual de firma de cada documento (signatureId):

GET /api/rest/services/signatureparallel/?sessionId=

obteniendo en la respuesta la lista de signatureId:

"signatures": [
        {
            "documentId": "string",
            "signatureId": "string"
        },
        {
            "documentId": "string",
            "signatureId": "string"
        }
    ]
  • el identificador de firma de cada documento te permitirá su descarga:

GET /api/rest/services/signed/{{signatureId}}

obteniendo en la response el base64 del documento firmado:

{
    "id": "string",
    "filename": "string",
    "base64": "string"
}

Métodos del API

A continuación encontrarás la descripción de los métodos que necesitas para preparar una firma en lote mediante apertura por protocolo de Viafirma Desktop.

Estos métodos los podrás probar en la Colección Postman que puedes encontrar en el siguiente link:

results matching ""

    No results matching ""