Introducción

Si desea utilizar BioStar 2 New Local API como una API RESTful para su propia personalización u otros fines, simplemente puede consultar este artículo. Este artículo cubrirá el uso más básico de la aplicación de consola BioStar 2 New Local API by C#.

 

Esta es solo una aplicación de muestra hecha para aquellos que podrían necesitar usar la Nueva API Local de BioStar 2. Es una aplicación de consola de Visual C#.

 

Funciones

Este artículo cubrirá cómo registrar / anular el registro de huellas dactilares a un usuario a través de la nueva API local.

 

A través de este artículo, puede aprender cómo llamar a una función API para registrar huellas dactilares a los usuarios en el servidor BioStar 2. Puede usar la función [PUT] /api/users/{id}, que es para actualizar cualquier información de un usuario, para registrar / anular el registro de fotos de perfil de usuario.

 

Para la mayor parte de la entrada relacionada con la imagen, debe convertir las imágenes al formato Base64.  Por favor, tenga en cuenta que no debe tener "Base64 :" en su entrada para "template0" y "template1".

Si tiene el valor de la matriz "fingerprint_templates" como vacío, anulará el registro de las plantillas de huellas digitales de usuario actuales.

* Se recomienda utilizar dispositivos de escaneo de huellas dactilares para escanear sus huellas dactilares, ya que transforma automáticamente los datos de la plantilla de huellas dactilares (no una imagen) al formato Base64.
 

"plantilla0": "/9j/4AAQSkZJRgABAQEASABI..."

Bien

"template0": "Base64: /9j/4AAQSkZJRgABAQEASABI..."

Malo

"fingerprint_templates": []

Anular el registro de huellas dactilares

 

Asegúrese de echar un buen vistazo al código de ejemplo del programa de C# creado para llamadas a la API. Simplemente puede copiar y pegar el código fuente para usar la misma función en su propia integración.

 

También puede ver cómo llamar a las funciones de la API a través de Postman, que es un programa utilizado para las llamadas a la API RESTful.

 

Parte 1. Llamada a la API y parámetros

 

[PUT]: /users/{id}

[Parámetros]

Grupo

Nombre

Tipo

*M/O

Explicación

Valor

Usuario

Fingerprint_templates

Arreglo

O

Contiene datos relacionados con las huellas dactilares

Template0, template1, finger_mask, isnew

Fingerprint_templates

plantilla0

cuerda

O

  plantilla

Base64

Fingerprint_templates

plantilla1

cuerda

O

  plantilla

Base64

Fingerprint_templates

finger_mask

cuerda

O

Compruebe si es una huella dactilar de coacción

Verdadero y falso

Fingerprint_templates

esNuevo

cuerda

O

Comprueba si es nuevo o ya existe

Verdadero y falso

* M – Obligatorio, O – Opcional

 

Parte 2. Cuerpo de solicitud y modelo de respuesta

[Ejemplo de modelo de valor/parámetros]

{

"Usuario": {

"fingerprint_templates": [

{

"template0": "RR4QFK8AVUYpAzGahhLFEKO...",

"plantilla1": "RCwQFLIAVUZCCeWHNBH0jlw..."

"finger_mask": falso,

"isNew": verdadero

}

]

}

}

 

[Modelo de respuesta]

{

"DeviceResponse": {

"filas": [

{

"id": "541530887",

"código": "65230"

}

],

"resultado": "falso"

},

"Respuesta": {

"código": "0",

"link": "https://support.supremainc.com/en/support/home",

"message": "Éxito"

}

}

[Respuesta: Fallo]

{

"Respuesta": {

"código": "65675",

"link": "https://support.supremainc.com/en/support/home",

"mensaje": "no definido"

}

}

[Respuesta: Exitosa]

{

"Respuesta": {

"código": "0",

"link": "https://support.supremainc.com/en/support/home",

"message": "Éxito"

}

}

 

Parte 3. Ejemplo de registro de huellas dactilares de consola

 

Hay 2 pasos a seguir para registrar la huella digital a un usuario. Pero, en la consola, hay un paso adicional para elegir al usuario que recibirá el registro de huellas dactilares.

  1. RegisterFingerPrint: Elija un usuario para el registro de huellas dactilares
  2. ScanFingerprint: Escanee la huella digital a través del dispositivo ya elegido (este paso se realiza 2 veces en biostar 2)
  3. RegisterFingerPrintToUser: Registre la huella digital escaneada al usuario elegido.

[RegisterFingerPrint]

static async void RegisterFingerPrint()

{

Console.WriteLine("*****RegisterFingerPrint Task Started******");

if (sessionID ==  null)

{

Console.WriteLine("¡Primero debe iniciar sesión!" );

volver;

}

 

CookieContainer cookieContainer = nuevo  CookieContainer();

 

Controlador HttpClientHandler = nuevo  HttpClientHandler();

Controlador. CookieContainer = cookieContainer;

 

Cliente HttpClient = nuevo  HttpClient(controlador);

 

cliente. DefaultRequestHeaders.Add("bs-session-id", sessionID);

cookieContainer.Add(new  Uri("https://127.0.0.1"),  new  Cookie("bs-session-id",sessionID));

ListUsers();

Console.WriteLine("Seleccione el ID de usuario para el registro de huellas dactilares...");

string userID = Console.ReadLine();

HttpResponseMessage httpResponse = cliente en espera. GetAsync("https://127.0.0.1/api/users");

HttpResponseMessage httpResponse = cliente. GetAsync("https://127.0.0.1/api/users"). Resultado;

 

 

if (httpResponse.IsSuccessStatusCode ==  true)

{

string httpResponseBody =  await  httpResponse.Content.ReadAsStringAsync();

Console.WriteLine(httpResponseBody);

Console.WriteLine("Registro de HUELLAS DACTILARES al USUARIO("  + ID de usuario +  ")");

ScanFingerprint(ID de usuario);

 

}

más

{

Console.WriteLine("Error al recuperar la lista de usuarios");

Console.WriteLine(httpResponse.ToString());

}

}

 

[ScanFingerprint]

  • Este paso se da 2 veces en BioStar 2. En realidad, debe ejecutar este método 2 veces para tener 2 plantillas diferentes. Pero, en los métodos en la aplicación de consola, solo se hace una vez. El mismo valor de plantilla va a template0 y template1.

static async void ScanFingerprint(string  UserID)

{

Console.WriteLine("*****ScanFingerprint Task Started*****");

CookieContainer cookieContainer = nuevo  CookieContainer();

 

Controlador HttpClientHandler = nuevo  HttpClientHandler();

Controlador. CookieContainer = cookieContainer;

 

HttpClient httpClient = nuevo  HttpClient(controlador);

 

Cliente HttpClient = nuevo  HttpClient(controlador);

httpClient.DefaultRequestHeaders.Add("bs-session-id", sessionID);

cookieContainer.Add(new  Uri("https://127.0.0.1"),  new  Cookie("bs-session-id",sessionID));

string deviceID =  "538747164";

string resourceAddress =  "https://127.0.0.1/api/devices/" + 538747164 +  "/scan_fingerprint";

 

JavaScriptSerializer serializer = nuevo  JavaScriptSerializer();

 

string payload =  "{ \"ScanFingerprintOption\": { \"enroll_quality\": \"80\", \"raw_image\": false}, \"noblockui\": true}";

Console.WriteLine(carga útil);

StringContent sc = new  StringContent(payload, Encoding.UTF8,  "application/json");

HttpResponseMessage httpResponse = await httpClient.PostAsync(resourceAddress, sc);

HttpResponseMessage httpResponse = httpClient.PostAsync(resourceAddress, sc). Resultado;

 

Console.WriteLine("ESCANEE SU HUELLA DIGITAL con el DISPOSITIVO(ID: "  + deviceID +  ")");

 

if (httpResponse.IsSuccessStatusCode ==  true)

{

Console.WriteLine("Escanear huella digital correctamente". );

string httpResponseBody =  await  httpResponse.Content.ReadAsStringAsync();

Console.WriteLine(httpResponseBody);

obj dinámico = JsonConvert.DeserializeObject(httpResponseBody);

string template0 = obj. FingerprintTemplate.template0;

cadena template_image0 = obj. FingerprintTemplate.template_image0;

Console.WriteLine("Plantilla de huella digital escaneada0: " + plantilla0);

RegisterFingerPrintToUser(ID de usuario, plantilla0);

}

más

{

Console.WriteLine("Error al escanear huella digital". );

Console.WriteLine(httpResponse.ToString());

}

}

 

[RegisterFingerPrintToUser]

  • Este método recibe el valor de la plantilla del método 'ScanFingerprint' y lo coloca en los valores 'template0' y 'template1'.

static async void RegisterFingerPrintToUser(string  UserID,  string  template0)

{

Console.WriteLine("*****RegisterFingerPrintToUser Task Started******");

if (sessionID ==  null)

{

Console.WriteLine("¡Primero debe iniciar sesión!" );

volver;

}

CookieContainer cookieContainer = nuevo  CookieContainer();

 

Controlador HttpClientHandler = nuevo  HttpClientHandler();

Controlador. CookieContainer = cookieContainer;

 

HttpClient httpClient = nuevo  HttpClient(controlador);

 

Cliente HttpClient = nuevo  HttpClient(controlador);

httpClient.DefaultRequestHeaders.Add("bs-session-id", sessionID);

cookieContainer.Add(new  Uri("https://127.0.0.1"),  new  Cookie("bs-session-id",sessionID));

Console.WriteLine("Registro de huella digital a USUARIO("  + ID de usuario +  ") ...");

 

string resourceAddress =  "https://127.0.0.1/api/users/"  + UserID +  "";

string payload =  "{ \"Usuario\": { \"fingerprint_templates\": [ { \"template0\": \""  + template0 +  "\", \"template1\": \""  + template0 +  "\", \"finger_mask\": false,\"isNew\": true} ] }}";

* En realidad, tiene que escanear la huella digital dos veces para tener template0 y template1, pero me salté este procedimiento. Solo recibo template0 y lo uso dos veces en la carga útil anterior (requestbody (JSON))

StringContent sc = new  StringContent(payload, Encoding.UTF8,  "application/json");

HttpResponseMessage httpResponse = await httpClient.PutAsync(resourceAddress, sc);

HttpResponseMessage httpResponse = httpClient.PutAsync(resourceAddress, sc). Resultado;

 

 

if (httpResponse.IsSuccessStatusCode ==  true)

{

Console.WriteLine(httpResponse.ToString());

string httpResponseBody =  await  httpResponse.Content.ReadAsStringAsync();

Console.WriteLine("***** FINGERPRINT ahora está registrado en "  + Usuario " + ID de usuario +  " *****");

}

más

{

Console.WriteLine("Error al registrar FINGERPRINT en User("  + UserID +  ")");

Console.WriteLine(httpResponse.ToString());

}

 

}

 

[Seleccione un usuario]

Entrada: ID de usuario

텍스트이(가) 표시된 사진

자동 생성된 설명

[Escanea tu huella digital]

 

[Registro procesado con éxito]

텍스트이(가) 표시된 사진

자동 생성된 설명

 

 

 

 

Parte 4. Registrar huella digital a través de Postman

 

[1. Escanear huella digital por dispositivo seleccionado (por device_ID)]

텍스트, 스크린샷, 모니터, 검은색이(가) 표시된 사진

자동 생성된 설명 

 

[2. Resultado de la huella digital del escaneo]]

  • Debe tomar el valor "template0" del resultado.

텍스트이(가) 표시된 사진

자동 생성된 설명 

[3. Vuelva a escanear su huella digital]

  • Debe tomar el valor "template0" del resultado.

텍스트, 실내, 스크린샷, 화면이(가) 표시된 사진

자동 생성된 설명

[Registre la huella digital al usuario]

  • Coloque el resultado de #2 a "template0" y el resultado de #3 a "template1".

텍스트이(가) 표시된 사진

자동 생성된 설명

 

[Mensaje de éxito]

텍스트이(가) 표시된 사진

자동 생성된 설명