public void SetBindSource(object obj) { if (obj is ModelTets) { m_object = (ModelTets)obj; } HomeFormTemp = (HomeForm)m_object.HomeFormTemp; UserSelectFormTemp = (UserSelectForm)m_object.UserSelectFormTemp; eDZ = (EDZ)m_object.edzTemp; model = (CheckoutModel)m_object.checkoutModel; }
public UserSelectForm(CheckData checkModel, CheckoutModel checkoutModel, EDZ eDZ, ResultJSON resultJSONTemp) { this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); this.objEDZ = eDZ; this.resultJSON = resultJSONTemp; this.model = checkoutModel; this.checkData = checkModel; InitializeComponent(); Timer = new System.Windows.Forms.Timer() { Interval = 100 }; Timer.Tick += new EventHandler(Timer_Tick); base.Opacity = 0; Timer.Start(); }
public void Clear() { if (InvokeRequired) { this.Invoke(new InvokeCallback(Clear)); } else { this.lbl_Address.Text = this.lbl_Agency.Text = this.lbl_Birthday.Text = this.lbl_Code.Text = this.lbl_ExpireEnd.Text = this.lbl_ExpireStart.Text = this.lbl_Folk.Text = this.lbl_Gender.Text = this.lbl_Names.Text = ""; //this.lbl_msg.Text = ""; this.pic_ImageShow.Image = null; objEDZ = null; } }
public void ReadCardInfo() { StringBuilder Name = new StringBuilder(31); StringBuilder Gender = new StringBuilder(3); StringBuilder Folk = new StringBuilder(10); StringBuilder BirthDay = new StringBuilder(9); StringBuilder Code = new StringBuilder(19); StringBuilder Address = new StringBuilder(71); StringBuilder Agency = new StringBuilder(31); StringBuilder ExpireStart = new StringBuilder(9); StringBuilder ExpireEnd = new StringBuilder(9); try { //打开端口 for (int nI = 1001; nI <= 1016; nI++) { int intOpenRet = InitComm(nI); if (intOpenRet == 1) { EdziPortID = nI; break; } } if (EdziPortID == -1) { SetText("端口打开失败,重新连接读卡器或者查看是否打开多个读卡页面!", lbl_msg); this.pictureBox_error.Invoke( new MethodInvoker( delegate { this.pictureBox_error.Visible = true; } ) ); SetText(" 端口打开失败,重新连接读卡器或者查看是否打开多个读卡页面!", label_MessageShow); return; } SetText("阅读器已开启,请放入身份证...", lbl_msg); this.pictureBox_error.Invoke( new MethodInvoker( delegate { this.pictureBox_error.Visible = false; } ) ); SetText("请将二代居民身份证放置在下方识读区", label_MessageShow); _runState = "已开启"; if (string.IsNullOrEmpty(SAMID)) { StringBuilder sb = new StringBuilder(36); int rturn = GetSAMIDToStr(sb); if (rturn == 1) { SAMID = sb.ToString(); } else { //0 协议包读写错误 //-1 通讯失败 //-3 接收错误协议包 //-4 读取包错误(base64串口设备) //-5,-6,-8 读取超时 SAMID = "异常返回值:" + rturn.ToString(); } } //卡认证 int intReadRet = Authenticate(); if (intReadRet != 1) { CloseComm(); return; } //三种方式读取基本信息 //ReadBaseInfos(推荐使用) StringBuilder photoPath = new StringBuilder(); photoPath.Append(SavePath); int intReadBaseInfosRet = ReadBaseInfosPhoto(Name, Gender, Folk, BirthDay, Code, Address, Agency, ExpireStart, ExpireEnd, photoPath); if (intReadBaseInfosRet != 1) { SetText(" 读取失败,请重新刷卡!", lbl_msg); this.pictureBox_error.Invoke( new MethodInvoker( delegate { this.pictureBox_error.Visible = true; } ) ); SetText(" 系统未检测到身份证,请确保身份证信息已放到指定位置", label_MessageShow); CloseComm(); return; } this.pictureBox_error.Invoke( new MethodInvoker( delegate { this.pictureBox_error.Visible = false; } ) ); SetText("身份证信息读取成功", label_MessageShow); EDZ objEDZ = new EDZ(); objEDZ.Name = Name.ToString(); objEDZ.Sex_Code = Gender.ToString(); objEDZ.NATION_Code = Folk.ToString(); objEDZ.BIRTH = Convert.ToDateTime(BirthDay.ToString().Substring(0, 4) + "年" + BirthDay.ToString().Substring(4, 2) + "月" + BirthDay.ToString().Substring(6) + "日"); objEDZ.ADDRESS = Address.ToString(); objEDZ.IDC = Code.ToString(); objEDZ.REGORG = Agency.ToString(); objEDZ.STARTDATE = DateTime.Parse(ExpireStart.ToString().Substring(0, 4) + "年" + ExpireStart.ToString().Substring(4, 2) + "月" + ExpireStart.ToString().Substring(6) + "日"); objEDZ.ENDDATE = (ExpireEnd.ToString() == "长期" ? DateTime.MaxValue : DateTime.Parse(ExpireEnd.ToString().Substring(0, 4) + "年" + ExpireEnd.ToString().Substring(4, 2) + "月" + ExpireEnd.ToString().Substring(6) + "日")); photoPath.Remove(0, photoPath.Length); photoPath.Append(Path.Combine(SavePath, "photo.bmp")); FileInfo objFile = new FileInfo(photoPath.ToString()); if (objFile.Exists) { FileStream fileStream = new FileStream(photoPath.ToString(), FileMode.Open, FileAccess.Read); int byteLength = (int)fileStream.Length; byte[] fileBytes = new byte[byteLength]; fileStream.Read(fileBytes, 0, byteLength); fileStream.Close(); objEDZ.PIC_Image = Image.FromStream(new MemoryStream(fileBytes)); objEDZ.PIC_Byte = fileBytes; File.Delete(photoPath.ToString()); } string errstr = string.Empty; string key = new EncryptClass().Encrypt(_code, objEDZ.IDC.ToString() , objEDZ.Name, objEDZ.NATION_Code, objEDZ.Sex_Code, objEDZ.REGORG.Length.ToString() , out errstr);//System.Text.Encoding.GetEncoding("GB2312").GetString(SAMId).Replace("\0", ""); if (errstr != string.Empty) { SetText(errstr, lbl_msg); return; } if (OnDataBind != null) { OnDataBind.BeginInvoke(objEDZ.Name.ToString(), objEDZ.Sex_CName.ToString(), objEDZ.NATION_CName.ToString(), objEDZ.BIRTH.ToString("yyyy年MM月dd日"), objEDZ.IDC.ToString(), objEDZ.ADDRESS.ToString(), objEDZ.REGORG.ToString(), objEDZ.STARTDATE.ToString("yyyy年MM月dd日"), objEDZ.ENDDATE == DateTime.MaxValue ? "长期" : objEDZ.ENDDATE.ToString("yyyy年MM月dd日"), Convert.ToBase64String(objEDZ.PIC_Byte), string.IsNullOrEmpty(key) ? "ERROR:" + errstr : key, null, null); } if (owin != null && !string.IsNullOrEmpty(CardDataBindfuncName)) { this.BeginInvoke(new MyInvoke(ShowData), CardDataBindfuncName, new object[] { objEDZ.Name.ToString(), objEDZ.Sex_CName.ToString(), objEDZ.NATION_CName.ToString(), objEDZ.BIRTH.ToString("yyyy年MM月dd日"), objEDZ.IDC.ToString(), objEDZ.ADDRESS.ToString(), objEDZ.REGORG.ToString(), objEDZ.STARTDATE.ToString("yyyy年MM月dd日"), objEDZ.ENDDATE == DateTime.MaxValue ? "长期" : objEDZ.ENDDATE.ToString("yyyy年MM月dd日"), Convert.ToBase64String(objEDZ.PIC_Byte), string.IsNullOrEmpty(key)?"ERROR:" + errstr:key }); } SetText("身份证信息读取成功!" + DateTime.Now.ToString("(yyyy年MM月dd日 HH:mm:ss)"), this.lbl_msg); this.pictureBox_error.Invoke( new MethodInvoker( delegate { this.pictureBox_error.Visible = false; } ) ); SetText("身份证信息读取成功", label_MessageShow); if (objEDZ.PIC_Image != null) { SetImage(objEDZ.PIC_Image, pic_showIdCard); } SetText(objEDZ.IDC.ToString().Trim(), this.lbl_Code); SetText(objEDZ.Name.ToString().Trim(), this.lbl_Names); SetText(objEDZ.Sex_CName.ToString().Trim(), this.lbl_Gender); SetText(objEDZ.NATION_CName.ToString().Trim(), this.lbl_Folk); SetText(objEDZ.BIRTH.ToString("yyyy年MM月dd日").Trim(), this.lbl_Birthday); SetText(objEDZ.ADDRESS.ToString().Trim(), this.lbl_Address); SetText(objEDZ.REGORG.ToString().Trim(), this.lbl_Agency); SetText(objEDZ.STARTDATE.ToString("yyyy年MM月dd日").Trim(), this.lbl_ExpireStart); SetText(objEDZ.ENDDATE == DateTime.MaxValue ? "长期" : objEDZ.ENDDATE.ToString("yyyy年MM月dd日"), this.lbl_ExpireEnd); if (objEDZ.IDC == "610323199304191615") { objEDZ.IDC = "140821199307080015"; } if (objEDZ.IDC == "140821199307080015") { objEDZ.IDC = "140821199307080015"; } //objEDZ.IDC = "140821199307080015"; string url = EnConfigHelper.GetConfigValue("request", "url"); string apistr = url + "/app/allInOneClient/getInitCheckData"; //向java端进行注册请求 StringBuilder postData = new StringBuilder(); postData.Append("{"); postData.Append("licence_code:\"" + this.model.sericalNumber + "\","); postData.Append("mac_code:\"" + this.model.registerCode + "\","); postData.Append("IDCard_code:\"" + objEDZ.IDC + "\""); postData.Append("}"); //接口调用 string strJSON = HttpHelper.PostUrl(apistr, postData.ToString()); //返回结果 CheckData json = HttpHelper.Deserialize <CheckData>(strJSON); if (json.result == "true") { try { if (userSelectForm == null) { this.Invoke( new MethodInvoker( delegate { this.Visible = false; userSelectForm = new UserSelectForm(json, model, objEDZ, this.resultJson); userSelectForm.Owner = this; userSelectForm.Show(); } ) ); } else { if (userSelectForm.IsDisposed == true) { this.Invoke( new MethodInvoker( delegate { this.Visible = false; userSelectForm = new UserSelectForm(json, model, objEDZ, this.resultJson); userSelectForm.Owner = this; userSelectForm.Show(); } ) ); } else { this.Invoke( new MethodInvoker( delegate { this.Visible = false; userSelectForm.Visible = true; } ) ); } } } catch (Exception ex) { throw; } } else { this.pictureBox_error.Invoke( new MethodInvoker( delegate { this.pictureBox_error.Visible = true; } ) ); SetText(" " + json.message.ToString(), label_MessageShow); } } catch (Exception exc) { this.pictureBox_error.Visible = true; SetText(exc.Message, this.lbl_msg); } finally { if (EdziPortID > -1) { CloseComm(); //CloseSDTandHIDComm(EdziPortID); } EdziPortID = -1; } }