Saltar al contenido principal

🛠️ Ejemplo de Integración

Este ejemplo demuestra cómo integrar la librería ATS CodeCheck en una aplicación C para validar códigos de barras de cédulas de identidad colombianas.

1. Activar la Licencia​

Antes de utilizar la librería, debes activarla descargando el archivo de licencia (license.lic) usando tu identificador de usuario (UID). Este archivo se guardará en el directorio de trabajo actual.

#include "libatscodecheck.h"

const char* uid = "usuario@ejemplo.com";
const char* workingDir = ".";
char activationResponse[1024] = {0};
int resultadoActivacion = ATS_Activate(uid, workingDir, activationResponse, sizeof(activationResponse));
if (resultadoActivacion != 0) {
printf("❌ Falló la activación de la licencia: %s\n", activationResponse);
} else {
printf("✅ Licencia activada: %s\n", activationResponse);
}

2. Inicializar la Librería​

#include "libatscodecheck.h"

const char* uid = "usuario@ejemplo.com";
const char* workingDir = ".";
char initResponse[1024] = {0};
int result = ATS_Init(uid, workingDir, initResponse, sizeof(initResponse));
if (result != 0) {
printf("❌ Inicialización falló: %s\n", initResponse);
} else {
printf("✅ Inicialización exitosa: %s\n", initResponse);
}

3. Validar un Código de Barras​

const char* jsonRequest = "{ \"base64Barcode\": \"...\", \"requestFields\": [\"CEDNUM\", \"NUMPREP\"] }";

char responseBuffer[2048];
int code = ATS_CheckCode(jsonRequest, responseBuffer, sizeof(responseBuffer));

if (code == 0) {
printf("✅ Respuesta: %s\n", responseBuffer);
} else {
printf("❌ ATS_CheckCode falló con código: %d\n", code);
}

4. Ejemplo Completo​

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Funciones externas de la librería compartida Go
extern int ATS_Init(const char* uid, const char* workingDir, char* jsonResponseBuffer, int bufferSize);
extern int ATS_Activate(const char* uid, const char* workingDir, char* jsonResponseBuffer, int bufferSize);
extern int ATS_CheckCode(const char* jsonRequest, char* jsonResponseBuffer, int bufferSize);
extern int ATS_GetVersion(char* versionBuffer, int bufferSize);

int main() {
const char* uid = "usuario@ejemplo.com";
const char* workingDir = ".";
char activationResponse[1024] = {0};
if (ATS_Activate(uid, workingDir, activationResponse, sizeof(activationResponse)) != 0) {
printf("❌ Falló la activación de la licencia: %s\n", activationResponse);
return 1;
} else {
printf("✅ Licencia activada: %s\n", activationResponse);
}

const char* configJson = "{ \"logLevel\": \"debug\" }";
char initResponse[1024] = {0};

// Inicializar la librería Go
if (ATS_Init(uid, workingDir, initResponse, sizeof(initResponse)) != 0) {
printf("❌ Error al inicializar ATSCodeCheck: %s\n", initResponse);
return 1;
} else {
printf("✅ Inicialización: %s\n", initResponse);
}

// Obtener versión de la librería
char version[256] = {0};
if (ATS_GetVersion(version, sizeof(version)) == 0) {
printf("📦 Versión de la Librería: %s\n", version);
}

// Ejemplo de código de barras codificado en Base64 (reemplazar con uno real para pruebas)
const char* base64Input = "REEMPLAZAR_CON_BASE64_VALIDO";

// Crear payload de solicitud JSON
const char* fieldList = "\"NUMPREP\"";
char jsonRequest[1024];
snprintf(jsonRequest, sizeof(jsonRequest),
"{ \"base64Barcode\": \"%s\", \"requestFields\": [%s] }",
base64Input, fieldList);

// Preparar buffer de respuesta
char response[2048] = {0};

// Ejecutar verificación
int result = ATS_CheckCode(jsonRequest, response, sizeof(response));
if (result == 0) {
printf("✅ Respuesta: %s\n", response);
} else {
printf("❌ ATS_CheckCode falló con código: %d\n", result);
}

return 0;
}