Sobre este documento

Este documento tiene el objetivo de describir la configuración para el lanzamiento externo (Intent) de la solución SIGNply 3.0

 

Requerimientos

Los requisitos mínimos de funcionamiento de SIGNPly son:

  • Versión de android >= 6.0 (Marshmallow) o API 23.
  • Arquitectura ARM:  armeabi-v7a (32 bits) y arm64-v8a (64 bits).
  • Necesidad de licencia: contacte con el Equipo de Soporte de Edatalia para obtener su licencia.
 

Configuración

SIGNPly es lanzada a través de un Intent a la espera de un resultado:

Intent launchSIGNply = new Intent(“com.edatalia.signply.EXTERNAL”);

//launchIntent.setAction(“com.edatalia.signply.EXTERNAL”);

startActivityForResult(launchSIGNply , REQUEST_LAUNCH_SIGNPLY);

Previamente se debe haber definido:

private final int REQUEST_LAUNCH_SIGNPLY = 1;

 

Parámetros de llamada

SIGNPly dispone de una serie de parámetros de llamada para la configuración del firmado de documento, pasado a través de un objeto Bundle.

// Creación de Bundle para paso de parámetros a SIGNply
Bundle bundle = new Bundle();

// Añadimos el bundle una vez relleno al Intent
launchSIGNply .putExtras(bundle);

Licencia

  • license-b64” (Texto): licencia de ESS en base 64. OBLIGATORIO.
    • No puede ser nulo o vacío.
    • Debe estar bien construido.

bundle.putString(“license-b64”, “ZWRhdGFsaWENCg…..”);

Documento

  • “document-path” (Texto): path del documento a firmar a partir de la raíz del almacenamiento externo compartido del dispositivo (no tarjeta SD).
    • Si es informado el path debe existir en el dispositivo.
  • “document-name” (Texto): nombre de documento a firmar. OBLIGATORIO.
    • No puede ser nulo o vacío.

La ruta del documento a firmar la compone la unión de los parámetros “document-path” y “document-name”, esta ruta debe existir y ser accesible.

  • “save-document-signed-path” (Texto): path del documento firmado a partir de la raíz del almacenamiento externo del dispositivo.
  • “save-document-signed-name” (Texto): nombre de documento firmado.
    • Si es informado no puede ser nulo o vacío.
    • Si no es informado toma el valor del parámetro “document-name”.

La ruta del documento firmado la compone la unión de los parámetros “save-document-signed-path” y “save-document-signed-name”. Si está ruta no existe en el dispositivo SIGNply la crea automáticamente a la hora de guardar el documento firmado. Si ya existe un documento con este nombre, se sobreescribe.

Modo firma

  • jsigmode” (Booleano): firma con biometría (=false) o electrónica (=true). OBLIGATORIO.

bundle.putBoolean(“jsigmode”, false);

Comportamiento

  • auto-sign” (Booleano): lanzamiento automático de firma una vez visualizado el documento a firmar.
  • auto-delete” (Booleano): eliminación de documento a firmar del dispositivo una vez firmado. Por defecto habilitado (true).
    • Si la ruta del documento a firmar y firmado son iguales este parámetro es deshabilitado.

Widget

  • widget-type” (Texto): tipo de posicionamiento. OBLIGATORIO.
    •  Valores permitidos: “manual”, “field”, “fixed” y “float”.
  • widget-manual-ratio” (Float): ratio (relación entre el ancho y el alto de widget) para posicionamiento manual. Por defecto 4.
    • Si es informado su valor se debe encontrar en el rango [1,4].

bundle.putFloat(“widget-manual-ratio”, 2.5f);

  • widget-field-fieldname” (Texto): nombre de campo preexistente en el que se incrusta el widget.
    • Es OBLIGATORIO si “widget-type”=”field”.
    • No puede ser nulo o vacío.
  • widget-fixed-page“ (Entero): número de página en el que se incrusta el widget.
    • Es OBLIGATORIO si “widget-type”=”fixed”.
    • Su valor debe ser mayor o igual a 0.

bundle.putInt(“widget-fixed-page”, 1);

  • widget-fixed-x“ (Entero): indica el desplazamiento en horizontal de la posición del widget desde el vértice inferior izquierdo de la página de un documento.
    • Es OBLIGATORIO si “widget-type”=”fixed”.
    • Su valor debe ser mayor o igual a 0.
  • widget-fixed-y“ (Entero): indica el desplazamiento en vertical de la posición del widget desde el vértice inferior izquierdo de la página de un documento.
    • Es OBLIGATORIO si “widget-type”=”fixed”.
    • Su valor debe ser mayor o igual a 0.
  • widget-float-text” (Texto): indica la cadena a buscar dentro del documento donde se incrusta el widget. Devuelve el primer resultado obtenido. Este parámetro es sensible a mayúsculas y a minúsculas.
    • Es OBLIGATORIO si “widget-type”=”float”.
    • No puede ser nulo o vacío.
  • widget-float-gap-x” (Entero): indica el número entero de unidades de desfase (positivo o negativo) en horizontal desde el vértice inferior izquierdo del texto buscado.
    • Es OBLIGATORIO si “widget-type”=”float”.
  • widget-float-gap-y” (Entero): indica el número entero de unidades de desfase (positivo o negativo) en vertical desde el vértice inferior izquierdo del texto buscado.
    • Es OBLIGATORIO si “widget-type”=”float”.
  • widget-width” (Entero): ancho del widget.
    • Es OBLIGATORIO si “widget-type”=”fixed” o “float”.
    • Su valor debe ser mayor de 0 si “jsigmode”=”false”.
    • Su valor debe ser mayor o igual a 0 si “jsigmode=”true”.
  • widget-height” (Entero): alto del widget.
    • Es OBLIGATORIO si “widget-type”=”fixed” o “float”.
    • Su valor debe ser mayor de 0 si “jsigmode”=”false”.
    • Su valor debe ser mayor o igual a 0 si “jsigmode=”true”.

El ratio (relación entre el ancho y el alto de widget) debe estar comprendido entre [1,4].

  • widget-custom-text-b64” (String): texto personalizado en base 64 para el widget.

La sintaxis de este parámetro se construye a partir de un xml de formato [Texto línea].

Se disponen de las variables:

    • nombre de firmador: ##CERT_COMMON_NAME##
    • propiedades básicas del certificado: ##CERT_COMMON_PROPS##
    • info clave pública: ##CERT_PUBLIC_INFO##
    • fecha/Hora del sello de tiempo: ##TIMESTAMP##

Ejemplo:
Firmado electrónicamente el: ##TIMESTAMP##  en base 64
Usar http://www.motobit.com/util/base64-decoder-encoder.asp u otra solución para transformar ese XML en un Base 64.

Certificados

  • sign-cert-p12-b64” (Texto): certificado de firma en base 64.
    • Si es informado no puede ser nulo o vacío y debe estar bien construido.
  • sign-cert-password-b64” (Texto): password de certificado de firma en base 64.
    • Si es informado debe estar bien construido.
  • enc-key-b64” (Texto): certificado de cifrado de datos biométricos en base 64.
    • Si es informado no puede ser nulo o vacío y debe estar bien construido.

Tsp

  • tsp-activate” (Booleano): activación de introducción de sello de tiempo.

El resto de parámetro solo aplican cuando “tsp-activate”=1.

  • tsp-url” (Texto): url de TSP. OBLIGATORIO.
    • No puede ser nulo o vacío.
    • Debe comenzar por el protocolo http ó https.
  • tsp-user” (Texto): usuario de TSP.
  • tsp-password-b64” (Texto): password de TSP en base 64.
    • Si es informado debe estar bien construido.

Ocsp

  • ocsp-activate” (Booleano): activación de introducción de sello de tiempo.

El resto de parámetro solo aplican cuando “ocsp-activate”=1.

  • ocsp-url” (Texto): url de OCSP. OBLIGATORIO.
    • No puede ser nulo o vacío.
    • Debe comenzar por el protocolo http ó https.
  •  
  • ocsp-user” (Texto): usuario de OCSP.
  • ocsp-password-b64” (Texto): password de OCSP en base 64.
    • Si es informado debe estar bien construido.

Otp

  • otp-activate (Booleano): activación de otp.

El resto de parámetro solo aplican cuando “otp-activate”=1.

  • otp-window-size (Entero): tiempo de ventana en la que el otp es válido (en salto de ventana, cada salto es de 30 segundos). Por defecto 10 (5 minutos).
    • Si es informado su valor debe ser mayor de 0.
  • opt-system-sms (Entero): sistema de envío de los sms. OBLIGATORIO.
  • otp-user (Texto): usuario de plataforma de envío de sms. OBLIGATORIO.
    • No puede ser nulo o vacío.
  • otp-password-b64 (Texto): password en base 64 de la plataforma de envío de sms.
    • Si es informado debe estar bien construido.
  • otp-from (Texto): remitente de sms. OBLIGATORIO.
    • No puede ser nulo o vacío.
  • otp-unicode (Booleano): uso de unicode o no (para uso de tildes y caracteres raros se debe activar, limitando la longitud máxima del sms de 160 a 70 caracteres). Por defecto deshabilitado (false).
  • otp-text (Texto): contenido o texto del sms. OBLIGATORIO.
    • No puede ser nulo o vacío.
    • Debe contener la cadena ##OTP## para informar al receptor el código otp generado.
  • otp-send-to (Texto): número de teléfono de envío de sms. OBLIGATORIO.
    • No puede ser nulo o vacío.
    • Debe comenzar por un código de país. Ejemplos: +34, +54, …
    • Debe ser válido.

Resultados desde SIGNply

SIGNPly devuelve una serie de resultados de actividad estándar en respuesta a la llamada externa de la aplicación. A continuación se enumeran los posibles resultados devueltos:

  • -1 RESULT_OK (Activity.RESULT_OK): documento firmado correctamente.
  • 0 RESULT_CANCELED (Activity.RESULT_CANCELED): el proceso de firmado ha sido cancelado.
  • 1 RESULT_ERROR (Activity.RESULT_FIRST_USER): error en proceso de firmado. El error es mostrado previamente en una ventana en SIGNply.

Para la obtención de los códigos de retorno de SIGNply se puede emplear el siguiente código para actuar en consecuencia al resultado obtenido:

public void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == REQUEST_LAUNCH_SIGNPLY){
if (resultCode == RESULT_OK) ……
else if (resultCode == RESULT_CANCELED) ……
else if (resultCode == RESULT_ERROR) ……
}
super.onActivityResult(requestCode, resultCode, data);
}

Previamente hay que definir las constantes:

private final int RESULT_OK = -1;
private final int RESULT_CANCELED = 0;
private final int RESULT_ERROR = 1

  • Share: