public commonresponse FaceCompare([FromBody] facerequest input) { if (input == null) { return(new commonresponse { status = responseStatus.requesterror }); } highlevel.infolog(_log, "FaceCompare", input.image.Length.ToString()); var accinfo = highlevel.GetInfoByToken(Request.Headers); if (accinfo.status != responseStatus.ok) { return(accinfo); } if (string.IsNullOrEmpty(input.image)) { return(new commonresponse { status = responseStatus.imageerror }); } var fp = Path.Combine(facepath, accinfo.Identity); if (!Directory.Exists(fp)) { Directory.CreateDirectory(fp); } var now = DateTime.Now; var fbase = string.Format("{0}-{1}-{2}-{3}-{4}-{5}.jpg", now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); var fname = Path.Combine(fp, fbase); try { var index = input.image.IndexOf("base64,"); _log.LogInformation("length: {0}", input.image.Length); System.IO.File.WriteAllBytes(fname, Convert.FromBase64String(input.image.Substring(index + 7))); } catch (Exception ex) { _log.LogInformation("error: {0}", ex); return(new commonresponse { status = responseStatus.fileprocesserror }); } try { var api_id = "9a4c8ff73d6642d886c537403a0a736d"; var api_secret = "d5f2e07d025b4bc8bdc8e4774f904fbf"; var ret = living(api_id, api_secret, fname); _log.LogInformation("living check ret={0}", ret); var retsta = JsonConvert.DeserializeObject <okcheck>(ret); if (retsta.status != "OK") { return(new commonresponse { status = responseStatus.livingerror, content = ret }); } var retok = JsonConvert.DeserializeObject <okcheck2>(ret); var score = double.Parse(retok.score); if (score >= 0.98) { return(new commonresponse { status = responseStatus.livingerror, content = retok.score }); } var theuser = _db1.Aouser.FirstOrDefault(c => c.Identity == accinfo.Identity); if (theuser == null) { return(new commonresponse { status = responseStatus.nouser, content = accinfo.Identity }); } if (string.IsNullOrEmpty(theuser.Photofile)) { return(new commonresponse { status = responseStatus.residencepictureerror }); } var history = Path.Combine(residencepicturepath, theuser.Photofile + ".jpg"); highlevel.infolog(_log, "historpic", fname); var rettwo = CompareWitdIdFace(api_id, api_secret, fname, history); var twoc = JsonConvert.DeserializeObject <okcheck>(rettwo); if (twoc.status != "OK") { return(new commonresponse { status = responseStatus.compareerror, content = rettwo }); } var twook = JsonConvert.DeserializeObject <okchecktwo>(rettwo); var confidence = double.Parse(twook.confidence); if (confidence <= 0.78) { return(new commonresponse { status = responseStatus.compareerror, content = twook.confidence }); } return(new commonresponse { status = responseStatus.ok, content = twook.confidence }); } catch (Exception ex) { _log.LogInformation("error: {0}", ex); return(new commonresponse { status = responseStatus.fileprocesserror }); } }
public commonresponse FaceCompare([FromBody] facerequest input) { if (input == null) { return(new commonresponse { status = responseStatus.requesterror }); } try { var inin = JsonConvert.SerializeObject(input); _log.LogInformation("input ={1},{0}", inin.Length); var htoken = Request.Headers["token"].First(); if (string.IsNullOrEmpty(htoken)) { return(new commonresponse { status = responseStatus.tokenerror }); } var found = false; var identity = string.Empty; foreach (var a in tokens) { if (a.Token == htoken) { identity = a.idinfo.Identity; found = true; break; } } if (!found) { var redisdb = highlevel.redis.GetDatabase(); var cacheidinfo = redisdb.StringGet(htoken); if (cacheidinfo == "nil") { return(new commonresponse { status = responseStatus.tokenerror }); } return(new commonresponse { status = responseStatus.tokenerror }); } } catch (Exception ex) { return(new wxconfigresponse { status = responseStatus.tokenerror }); } if (string.IsNullOrEmpty(input.image)) { return(new commonresponse { status = responseStatus.imageerror }); } var fname = Path.GetTempFileName() + ".jpg"; try { var index = input.image.IndexOf("base64,"); _log.LogInformation("length: {0}", input.image.Length); System.IO.File.WriteAllBytes(fname, Convert.FromBase64String(input.image.Substring(index + 7))); } catch (Exception ex) { _log.LogInformation("error: {0}", ex); return(new commonresponse { status = responseStatus.fileprocesserror }); } try { // var fname = @"d:\ycl.jpg"; // var req=new livingbodyrequest(){ var api_id = "9a4c8ff73d6642d886c537403a0a736d"; var api_secret = "d5f2e07d025b4bc8bdc8e4774f904fbf"; // file=System.IO.File.ReadAllBytes(fname) // }; // var bbytes=System.IO.File.ReadAllBytes(fname); // var str64=Convert.ToBase64String(bbytes); // var req=new livingbodyrequest2(){ // api_id="9a4c8ff73d6642d886c537403a0a736d", // api_secret="d5f2e07d025b4bc8bdc8e4774f904fbf", // file=str64 // }; // var theUrl="https://cloudapi.linkface.cn/hackness/selfie_hack_detect"; // var ret= SendRestHttpClientRequest(theUrl,JsonConvert.SerializeObject(req)); var ret = living(api_id, api_secret, fname); _log.LogInformation("ret={0}", ret); var retsta = JsonConvert.DeserializeObject <okcheck>(ret); if (retsta.status != "OK") { return(new commonresponse { status = responseStatus.livingerror, content = ret }); } var retok = JsonConvert.DeserializeObject <okcheck2>(ret); var score = double.Parse(retok.score); if (score >= 0.98) { return(new commonresponse { status = responseStatus.livingerror, content = ret }); } var history = "test.jpg"; var rettwo = living22(api_id, api_secret, fname, history); var twoc = JsonConvert.DeserializeObject <okcheck>(rettwo); if (twoc.status != "OK") { return(new commonresponse { status = responseStatus.compareerror, content = rettwo }); } var twook = JsonConvert.DeserializeObject <okchecktwo>(rettwo); var confidence = double.Parse(twook.confidence); if (confidence <= 0.78) { return(new commonresponse { status = responseStatus.compareerror, content = rettwo }); } return(new commonresponse { status = responseStatus.ok, content = rettwo }); } catch (Exception ex) { _log.LogInformation("error: {0}", ex); return(new commonresponse { status = responseStatus.fileprocesserror }); } return(new commonresponse { status = responseStatus.ok }); }