UI Documentos Anverso y Reverso - ReconoSERID/SDK-ReconoSERID-Android GitHub Wiki

UI Documentos Anverso y Reverso

Interfaz gráfica para los servicios de Documento anverso y reverso.

Dependiendo del tipo de convenio ciertos parametros son obligatorios enviar en el intent

  • Para tipo 0:

     1.  Se debe enviar como llave "guid_ciudadano" acompañado del guidCiudadano
    
  • Para tipo 3:

     1.  Se debe enviar como llave "type_document" acompañado del tipo de documento
    
     2.  Se debe enviar como llave "num_document" acompañado del número documento
    

Documento Anverso

Captura el documento por la parte del anverso, valido para cédulas de colombia, como cédula de ciudadanía (CC), tarjeta de identidad (TI), cédula de extranjería (CE) y cédula de ciudadanía digital (CCD) ya que valida que haya un rostro y que diga cédula de Colombia.

Para saber que documento capturó, se debe remitir a la sección "Parametro typeDocument" de este mismo documento, el cual indica por medio de un valor asignado (ver tabla) que tipo de documento anverso fue encontrado por la cámara.

#!java
static final int DOCUMENT_FRONT = 1;
Intent intent = new Intent(this, RequestDocumentActivity.class);
        intent.putExtra(IntentExtras.TEXT_SCAN, "Anverso");
        intent.putExtra(IntentExtras.GUID_CIUDADANO, "xxxxx-xxxxx-xxxxx-xxxxx"); //Obligatorio para convenio 0
        intent.putExtra(IntentExtras.TYPE_DOCUMENT, "CC");  //Obligatorio para convenio  3, para este caso se envía CC, pero se pueden enviar otros valores, como se muestra en la descripción
        intent.putExtra(IntentExtras.NUM_DOCUMENT, "123456789");  //Obligatorio para convenio  3
        intent.putExtra(IntentExtras.SAVE_USER, "xxxx"); //Obligatorio para convenio 0
        startActivityForResult(intent, DOCUMENT_FRONT);
#!Kotlin

const val DOCUMENT_FRONT = 1
    val intent = Intent(this, RequestDocumentActivity::class.java)
        intent.putExtra(IntentExtras.TEXT_SCAN, "Anverso")       
        intent.putExtra(IntentExtras.GUID_CIUDADANO, "xxxxx-xxxxx-xxxxx-xxxxx") //Obligatorio para convenio 0
        intent.putExtra(IntentExtras.TYPE_DOCUMENT, "CC")  //Obligatorio para convenio  3, para este caso se envía CC, pero se pueden enviar otros valores, como se muestra en la descripción
        intent.putExtra(IntentExtras.NUM_DOCUMENT, "123456789")  //Obligatorio para convenio  3
        intent.putExtra(IntentExtras.SAVE_USER, "xxxx") //Obligatorio para convenio 0
        startActivityForResult(intent, DOCUMENT_FRONT)

Se realiza el llamado por intent y se le debe pasar "Anverso" y static final int DOCUMENT_FRONT = 1; y recibes la respuesta en el onActivityResult

#!java

 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
       
        if (requestCode == DOCUMENT_FRONT){
            if (resultCode == RESULT_OK){
                Document document =  data.getParcelableExtra(IntentExtras.DATA_DOCUMENT); //datos leidos en el documento
                String pathFront = data.getStringExtra(IntentExtras.PATH_FILE_PHOTO);  //path de la imagen tomada
            } else if (resultCode == IntentExtras.ERROR_INTENT){
                data.getStringExtra(IntentExtras.ERROR_MSG);  //mensaje de error
                data.getExtras().getParcelable(IntentExtras.ERROR_SDK); //errores generados en el SDK
            }
        } 
    }
#!Kotlin

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == DOCUMENT_REQUEST){
            if (resultCode == RESULT_OK){
                val document: Document? =  data.extras!!.getParcelable(IntentExtras.DATA_DOCUMENT) //datos leidos en el documento
                val pathFront: String? =  data.getStringExtra(IntentExtras.PATH_FILE_PHOTO)  //path de la imagen tomada
            } else if (resultCode == IntentExtras.ERROR_INTENT){
                data.extras!!.getStringExtra(IntentExtras.ERROR_MSG)!!      //mensaje de error
                data.extras!!.getParcelable(IntentExtras.ERROR_SDK)!!       //errores generados en el SDK
            }
        } 
    }

Para saber más sobre los errores de lectura que puede entregar el SDK en caso de error, verificar el siguiente enlace:

Códigos de Error

Documento Reverso

Captura el documento por la parte del reverso (ya que valida que diga "FECHA DE NACIMIENTO"), valido para cédulas de Colombia, como cédula de ciudadanía (CC), tarjeta de identidad (TI), cédula de extranjería (CE) y cédula de ciudadanía digital (CCD).

Para saber que documento capturó, se debe remitir a la sección "Parametro typeDocument" de este mismo documento, el cual indica por medio de un valor asignado (ver tabla) que tipo de documento reverso fue encontrado por la cámara.

#!java
static final int DOCUMENT_BACK = 2;
Intent intent = new Intent(this, RequestDocumentActivity.class);
        intent.putExtra(IntentExtras.TEXT_SCAN, "Reverso");
        intent.putExtra(IntentExtras.GUID_CIUDADANO, "xxxxx-xxxxx-xxxxx-xxxxx"); //Obligatorio para convenio 0
        intent.putExtra(IntentExtras.TYPE_DOCUMENT, "CC");  //Obligatorio para convenio  3, para este caso se envía CC, pero se pueden enviar otros valores, como se muestra en la descripción
        intent.putExtra(IntentExtras.NUM_DOCUMENT, "123456789");  //Obligatorio para convenio  3
        intent.putExtra(IntentExtras.SAVE_USER, "xxxx"); //Obligatorio para convenio 0
        startActivityForResult(intent, DOCUMENT_BACK);
#!Kotlin

 const val DOCUMENT_BACK = 2
    val intent = Intent(this, RequestDocumentActivity::class.java)
        intent.putExtra(IntentExtras.TEXT_SCAN, "Reverso")       
        intent.putExtra(IntentExtras.GUID_CIUDADANO, "xxxxx-xxxxx-xxxxx-xxxxx") //Obligatorio para convenio 0
        intent.putExtra(IntentExtras.TYPE_DOCUMENT, "CC")  //Obligatorio para convenio  3, para este caso se envía CC, pero se pueden enviar otros valores, como se muestra en la descripción
        intent.putExtra(IntentExtras.NUM_DOCUMENT, "123456789")  //Obligatorio para convenio  3
        intent.putExtra(IntentExtras.SAVE_USER, "xxxx") //Obligatorio para convenio 0
        startActivityForResult(intent, DOCUMENT_BACK)

Se realiza el llamado por intent y se le debe pasar "Reverso" y static final int DOCUMENT_BACK = 2; y recibes la respuesta en el onActivityResult

#!java

 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
       
        if (requestCode == DOCUMENT_BACK){
            if (resultCode == RESULT_OK){
                Document document =  data.getParcelableExtra(IntentExtras.DATA_DOCUMENT); //datos leidos en el documento
                String pathBack = data.getStringExtra(IntentExtras.PATH_FILE_PHOTO);  //path de la imagen tomada
            } else if (resultCode == IntentExtras.ERROR_INTENT){
                data.getStringExtra(IntentExtras.ERROR_MSG);  //mensaje de error
                data.getExtras().getParcelable(IntentExtras.ERROR_SDK); //errores generados en el SDK
            }
        } 
    }
#!Kotlin

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == DOCUMENT_BACK){
            if (resultCode == RESULT_OK){
                val document: Document? =  data.extras!!.getParcelable(IntentExtras.DATA_DOCUMENT) //datos leidos en el documento
                val pathFront: String? =  data.getStringExtra(IntentExtras.PATH_FILE_PHOTO)  //path de la imagen tomada
            } else if (resultCode == IntentExtras.ERROR_INTENT){
                data.getStringExtra(IntentExtras.ERROR_MSG)  //mensaje de error
                data.getExtras().getParcelable(IntentExtras.ERROR_SDK) //errores generados en el SDK
            }
        } 
    }

Document

Por su parte para obtener el path (donde se encuentra la ubicación del archivo) del documento leído, debe asignarse a un String la siguiente data: data.getStringExtra(IntentExtras.PATH_FILE_PHOTO).

Mientras la variable de salida Document ( data.extras!!.getParcelable(IntentExtras.DATA_DOCUMENT) ), contiene la información asociada al documento leído. Principalmente la llave-valor "typeDocument" es la encargada de indicar por medio de un valor predeterminado, el cual fue el documento que se encontró, además de indicar si lo que se leyó fue el anverso o el reverso.

Parámetro Tipo Descripción
documentoAnverso DocumentoAnverso Datos Anverso
documentoReverso DocumentoReverso Datos Reverso
path String Ruta Foto cache
typeDocument String Tipo documento
stateDocument String Estado de lectura total del documento
textScan String Todo el texto que obtuvo al leer el documento
documentValidations DocumentValidations Validaciones realizadas

Parámetros typeDocument

Tipo de documento Valor Documento parseado
Cédula colombiana anverso 1 ColombianOCR
Cédula colombiana reverso 2 ColombianOCR
Tarjeta de identidad anverso 3 ColombianOCR
Tarjeta de identidad reverso 4 ColombianOCR
Documento ecuatoriano anverso 5
Documento ecuatoriano reverso 6
Cédula de extranjería anverso 9 ForeignOCR
Cédula de extranjería reverso 10 ForeignOCR
Cédula digital colombiana anverso 11 ColombianCCD
Cédula digital colombiana reverso 12 ColombianCCD
Permiso de protección temporal (PPT) 13 PPTOCR
Permiso de protección temporal (PPT) 14 PPTOCR

Cuando se detecta que tipo de documento fue leído, dependiendo del valor encontrado, a continuación se debe leer la información de la clase asociada de acuerdo a los valores detectados por el SDK como lo muestra la anterior tabla.

Para saber más sobre los documentos y barcode que puede leer el SDK, verificar el siguiente enlace:

Documentos

Parámetros stateDocument

Tipo de documento Valor
sin anverso y sin reverso 0
solo anverso evaluado 1
solo reverso evaluado 2
anverso y reverso evaluados 3

stateDocument

  • 0 : sin anverso y sin reverso
  • 1 : solo anverso evaluado
  • 2 : solo reverso evaluado
  • 3 : anverso y reverso evaluados

Para saber más sobre los errores de lectura que puede entregar el SDK en caso de error, verificar el siguiente enlace:

Códigos de Error

volver