using Common.system; using System; using System.IO; using System.Text; using System.Windows; using XHWK.Model; using XHWK.WKTool.DAL; using XHWK.WKTool.Skin; namespace XHWK.WKTool { /// /// ProductVerification.xaml 的交互逻辑 /// /* 本地解密 解密成功 日期在有效期内 ,判断当天是否调用添加历史接口,没有则调用 解密失败 或解密获取的时间 过期 , 跳到输入code 激活界面 */ public partial class ProductVerification : Window { private readonly XHApi registerController = new XHApi(); private int serverReturnCode = 0; public ProductVerification() { InitializeComponent(); WindowStartupLocation = WindowStartupLocation.CenterScreen; Topmost = true; App.BackgroundWorkerHelper.RunWorkerAsync(InvokeActivationDecryptServering, InvokeActivationDecryptServerCompate); } /// /// 激活信息--验证签名是否过期-调用 /// /// private object InvokeActivationDecryptServering() { return App.ServerMsg; } /// /// 激活信息--验证签名是否过期-返回结果 /// /// public void InvokeActivationDecryptServerCompate(object obj) { //解析 try { App.Signature = System.IO.File.ReadAllText(App.DataPath + "signature.txt", Encoding.Default); string decrypt = DataProvider.TripleDESDecrypt(App.Signature, App.secretKey); decrypt = decrypt.Replace("\u0001", "").Replace("\u0007", "").Trim(); Model_Signatures msgBean = JsonHelper.JsonToObj(decrypt); long currentTimeTimestamp = DataProvider.TimestampTotalSeconds(); //当前时间 时间戳 if (msgBean.endtime > currentTimeTimestamp)//条件成立 解析成功 code 在有效期内 { if (File.Exists(App.DataPath + "signatureTime.txt")) { string signatureTime = System.IO.File.ReadAllText(App.DataPath + "signatureTime.txt", Encoding.Default); string currentTime = DateTime.Now.ToLongDateString().ToString(); //当前时间 if (signatureTime != currentTime) { App.BackgroundWorkerHelper.RunWorkerAsync(InvokeActivationAddHistoryServering, InvokeActivationAddHistoryServerCompate); } } Dispatcher.Invoke(new Action(() => { Hide(); CreateAMicroLessonWindow win = new CreateAMicroLessonWindow(); win.Show(); Close(); })); } else//时间失效 { Dispatcher.Invoke(new Action(() => { Hide(); KeyVerification wins = new KeyVerification { Topmost = true }; wins.ShowDialog(); Close(); })); } } catch (Exception ex) //解析失败 输code { LogHelper.WriteErrLog("ProductVerification(解析失败)" + ex.Message, ex); Dispatcher.Invoke(new Action(() => { Hide(); KeyVerification wins = new KeyVerification { Topmost = true }; wins.ShowDialog(); Close(); })); } } /// /// 激活信息--添加激活历史-调用 /// /// private object InvokeActivationAddHistoryServering() { serverReturnCode = registerController.ActivationAddHistory(); return App.ServerMsg; } /// /// 激活信息--添加激活历史-返回结果 /// /// public void InvokeActivationAddHistoryServerCompate(object obj) { if (!Directory.Exists(App.DataPath)) { Directory.CreateDirectory(App.DataPath); } string ApplicationData = App.DataPath + "signatureTime.txt"; string currentTime = DateTime.Now.ToLongDateString().ToString();//当前时间 System.IO.File.WriteAllText(ApplicationData, currentTime, Encoding.Default);//存放签名验证日期 } /// /// 关闭弹窗 /// /// /// private void close_click(object sender, RoutedEventArgs e) { closeAction(); } /// /// 退出程序 /// private void closeAction() { Dispatcher.Invoke(new Action(() => { System.Environment.Exit(0); })); } ~ProductVerification() { //Console.WriteLine("{0}被销毁", this); Dispose(false); } public void Dispose() { //Console.WriteLine("{0}被手动销毁", this); Dispose(true); GC.SuppressFinalize(this); } private bool disposed; protected void Dispose(bool disposing) { //Console.WriteLine("{0}被自动销毁", this); if (!disposed) { if (disposing) { //托管资源释放 } //非托管资源释放 // ... } disposed = true; } } }