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 | 1ª plantilla | Base64 |
Fingerprint_templates | plantilla1 | cuerda | O | 2ª 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.
- RegisterFingerPrint: Elija un usuario para el registro de huellas dactilares
- ScanFingerprint: Escanee la huella digital a través del dispositivo ya elegido (este paso se realiza 2 veces en biostar 2)
- 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]