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:
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:
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: