diff --git a/CPF_Cef/Common/ChunkedUpload.cs b/CPF_Cef/Common/ChunkedUpload.cs index ca4e4c1..efe1799 100644 --- a/CPF_Cef/Common/ChunkedUpload.cs +++ b/CPF_Cef/Common/ChunkedUpload.cs @@ -11,6 +11,7 @@ using System.Threading.Tasks; using CPF.Controls; using AKSWebBrowser.Commen; using System.Collections; +using System.Net.NetworkInformation; namespace AksWebBrowser.Common { @@ -93,27 +94,84 @@ namespace AksWebBrowser.Common /// 获取签字版数据 /// /// - public async Task PostSign(string type, string _callback) + public async Task PostSign(string type, int typeCode, string _callback) { try { callback = _callback; var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, Parame.signUrl); - var content = new StringContent("{\r\n command: \"sign\",\r\n command_num: 111,\r\n data: {\r\n operation: \"" + type + "\",\r\n operation_code: 1,\r\n parameters: {\r\n data_type: 1,\r\n title_name: \"\",\r\n }\r\n }\r\n }", null, "text/plain"); + var content = new StringContent("{\r\n \"command\": \"sign\",\r\n \"command_num\": 111,\r\n \"data\": {\r\n \"operation\": \"" + type + "\",\r\n \"operation_code\": " + typeCode + ",\r\n \"parameters\": {\r\n \"data_type\": 1\r\n }\r\n }\r\n}", null, "application/json"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); if (response.StatusCode.ToString() == "OK") { - // 读取响应内容 - string body = await response.Content.ReadAsStringAsync(); - Log.Info(body); + if (type == "open" && typeCode == 1) + { + // 读取响应内容 + string body = await response.Content.ReadAsStringAsync(); + JObject jo = (JObject)JsonConvert.DeserializeObject(body); + string ret = jo["ret_info"].ToString(); + JObject jo2 = (JObject)JsonConvert.DeserializeObject(ret); + if (jo2["code"].ToString() == "0") + { + //读取data数据 + string data = jo["data"].ToString(); + JObject jo3 = (JObject)JsonConvert.DeserializeObject(data); + //读取parameters数据 + string parameters = jo3["parameters"].ToString(); + JObject jo4 = (JObject)JsonConvert.DeserializeObject(parameters); + //读取签字base64 + string sign_pic = jo4["sign_pic"].ToString(); + //读取签字版主动回复数据 + string result = "{\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"png\",\"data\":\"" + sign_pic + "\"}"; + string _parm = callback + "('" + result + "')"; + Task.Run(async () => + { + await Parame.webBrowser.ExecuteJavaScript(_parm); + }); + Log.Info(sign_pic); + } + else + { + Log.Error("请求签字失败" + jo["message"].ToString()); + string result = "{\"message\":\"fail\",\"code\":\"400\",\"status\":false,\"suffix\":\"png\",\"data\":\"" + "签字失败" + "\"}"; + string _parm = callback + "('" + result + "')"; + Task.Run(async () => + { + await Parame.webBrowser.ExecuteJavaScript(_parm); + }); + } + } + } + else + { + if (type == "open" && typeCode == 1) + { + string result = "{\"message\":\"fail\",\"code\":\"400\",\"status\":false,\"suffix\":\"png\",\"data\":\"" + "签字失败" + "\"}"; + string _parm = callback + "('" + result + "')"; + Task.Run(async () => + { + await Parame.webBrowser.ExecuteJavaScript(_parm); + }); + + } + Log.Error("请求签字失败"); } } catch (Exception ex) { - Log.Error("签字版post请求: " + ex.Message); + if (type == "open" && typeCode == 1) + { + string result = "{\"message\":\"fail\",\"code\":\"400\",\"status\":false,\"suffix\":\"png\",\"data\":\"" + "签字失败" + "\"}"; + string _parm = "callback('" + result + "')"; + Task.Run(async () => + { + await Parame.webBrowser.ExecuteJavaScript(_parm); + }); + } + Log.Error("签字异常:" + ex.Message); } } } diff --git a/CPF_Cef/FrmMain.cs b/CPF_Cef/FrmMain.cs index 5e4b445..97fa598 100644 --- a/CPF_Cef/FrmMain.cs +++ b/CPF_Cef/FrmMain.cs @@ -103,10 +103,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser } //获取授权 GetSQObject(); - //删除临时文件 - Task.Run(() => { DeleteFile(); }); - //开启定时清理任务 - Task.Run(() => { Time(); }); + ////删除临时文件 + //Task.Run(() => { DeleteFile(); }); + ////开启定时清理任务 + //Task.Run(() => { Time(); }); } //凌晨2点执行,清理当天缓存文件 @@ -142,7 +142,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser { Log.Info("定时任务执行时间: " + DateTime.Now); string file = System.IO.Directory.GetCurrentDirectory(); - file = file + @"/aks/wwwroot"; + file = file + @"/wwwroot"; // 这里添加你的任务代码 Utils.DeleteAllFiles(file); } diff --git a/CPF_Cef/MainModel.cs b/CPF_Cef/MainModel.cs index b725e6c..1c520fd 100644 --- a/CPF_Cef/MainModel.cs +++ b/CPF_Cef/MainModel.cs @@ -254,7 +254,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser } else { - Task.Run(() => HttpPostResponseBySign("open", callback)); + Task.Run(() => HttpPostResponseBySign("open", 1, callback)); string result = "{\"callback\":\"" + callback + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"jpg\",\"data\":\"" + "签字版已打开" + "\"}"; SubmitLogs(result, "openCamera"); return result; @@ -286,10 +286,9 @@ namespace AKS.EnterpriseLibrary.WebBrowser } else { - - - string result = "{\"callback\":\"" + callback + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"png\",\"data\":\"" + "成功" + "\"}"; - SubmitLogs(result, "OpenSign"); + Task.Run(() => HttpPostResponseBySign("close", 2, "")); + string result = "{\"callback\":\"" + callback + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"jpg\",\"data\":\"" + "签字版已关闭" + "\"}"; + SubmitLogs(result, "openCamera"); return result; } } @@ -444,7 +443,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser DateTime dateTime = DateTime.Now; string time = DateTime.Now.ToString( "yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var dirpath = System.IO.Path.Combine(Environment.CurrentDirectory, "wwwroot", "PrintFile"); + string dirpath = System.IO.Directory.GetCurrentDirectory(); + dirpath = dirpath + @"/wwwroot/PrintFile"; if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); @@ -503,7 +503,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser DateTime dateTime = DateTime.Now; string time = DateTime.Now.ToString( "yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var dirpath = System.IO.Path.Combine(Environment.CurrentDirectory, "wwwroot", "PrintFile"); + string dirpath = System.IO.Directory.GetCurrentDirectory(); + dirpath = dirpath + @"/wwwroot/PrintFile"; if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); @@ -568,12 +569,13 @@ namespace AKS.EnterpriseLibrary.WebBrowser DateTime dateTime = DateTime.Now; string time = DateTime.Now.ToString( "yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var dirpath = System.IO.Path.Combine(Environment.CurrentDirectory, "wwwroot", "WaveOutFile"); + string dirpath = System.IO.Directory.GetCurrentDirectory(); + dirpath = dirpath + @"/wwwroot/WaveOutFile"; if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); } - string path = dirpath + @"/" + time + "." + ext; + string path = dirpath + @"/" + time + ext; WebRequest request = WebRequest.Create(url); WebResponse response = request.GetResponse(); using (Stream stream = response.GetResponseStream()) @@ -903,11 +905,11 @@ namespace AKS.EnterpriseLibrary.WebBrowser /// /// 签字版 /// - private async void HttpPostResponseBySign(string type,string callback) + private async void HttpPostResponseBySign(string type, int typeCode, string callback) { var httpClient = new HttpClient(); var uploader = new ChunkedUpload(httpClient); - await uploader.PostSign(type, callback); + await uploader.PostSign(type, typeCode, callback); } /// @@ -994,7 +996,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser } string time = DateTime.Now.ToString( "yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var dirpath = System.IO.Path.Combine(Environment.CurrentDirectory, "wwwroot", "Record"); + string dirpath = System.IO.Directory.GetCurrentDirectory(); + dirpath = dirpath + @"/wwwroot/Record"; if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); @@ -1082,7 +1085,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser { string time = DateTime.Now.ToString( "yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var dirpath = System.IO.Path.Combine(Environment.CurrentDirectory, "wwwroot", "WavFile"); + string dirpath = System.IO.Directory.GetCurrentDirectory(); + dirpath = dirpath + @"/wwwroot/WavFile"; if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); @@ -1128,7 +1132,11 @@ namespace AKS.EnterpriseLibrary.WebBrowser return isFunc; } - //提交设备操作日志 + /// + /// 提交设备操作日志 + /// + /// + /// public static void SubmitLogs(string Describer, string funcName) { Task.Run(async () => diff --git a/CPF_Cef/Ramark.txt b/CPF_Cef/Ramark.txt index 42eb7bd..8987814 100644 --- a/CPF_Cef/Ramark.txt +++ b/CPF_Cef/Ramark.txt @@ -1,9 +1,27 @@ -sudo apt-get update +//sudo apt-get upgrade +sudo apt-get update sudo apt-get install libudev1 libudev-dev sudo apt-get install build-essential -sudo apt install sox + sudo apt install libsox-fmt-all sudo apt-get install libgdiplus sudo apt-get install alsa-utils sudo apt-get install espeak -sudo apt-get install gcc-c++ libstdc++-devel \ No newline at end of file +sudo apt-get install gcc-c++ libstdc++-devel +sudo apt-get install gcc +sudo apt-get install g++ +sudo apt-get install zh + + +sudo apt install sox +sudo apt install lame +sudo apt install libsox-fmt-all + +git clone https://github.com/caixxiong/espeak-data/ +cd espeak-data/ +unzip espeak-data.zip +sudo cp -r * /usr/lib/x86_64-linux-gnu/espeak-data/ +espeak --compile=zh + +sudo apt-get update +sudo apt-get install gcc make zlib1g-dev libphonon-dev