/*☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★*/ private void GetSignImage(ref string SignDataString, ref Image SignImage) { try { //싸인이미지를 받는다. Van.frmVanLoading f = new Van.frmVanLoading("서명을 받습니다.", Van.VanType.KSNET, Van.frmVanLoading.JobKind.Sign, "GetRequest"); f.SignPort = int.Parse(this.txtSignPadPort.Text.Trim()); f.SignSpeed = int.Parse(this.txtSignPadSpeed.Text.Trim()); f.WaitTimeOut = 10000; f.Owner = this; f.ShowDialog(); Image img = _ReqData.SignData == null ? null : mImage.ByteArrayToImage(_ReqData.SignData); if (_ReqData.SignData != null) { Van.SignViewer fSign = new SignViewer(img); fSign.Owner = this; fSign.ShowDialog(); } SignDataString = _ReqData.SignStringData; SignImage = _ReqData.SignData == null ? null : mImage.ByteArrayToImage(_ReqData.SignData); } catch (Exception ex) { throw ex; } }
public SignForm(List <Image <Bgr, byte> > imgSteps) { InitializeComponent(); this.ImgStepList = imgSteps; ImageViewer.SizeMode = PictureBoxSizeMode.Zoom; ImageViewer.Dock = DockStyle.Fill; SignViewer.SizeMode = PictureBoxSizeMode.Zoom; SignViewer.Dock = DockStyle.Fill; currentPos = 0; if (ImgStepList.Count != 0) { ImageViewer.Image = ImgStepList.ElementAt(0).Bitmap; ImageViewer.Refresh(); SignViewer.Image = ImgStepList.ElementAt(ImgStepList.Count - 1).Bitmap; SignViewer.Refresh(); buttonNext.Enabled = true; buttonPrevious.Enabled = false; } }
private void btnCardReg_Click(object sender, EventArgs e) { Van.RecivedData reqdata = new RecivedData(); try { string scope = this.txtScope.Text.Trim(); string str = Van.KICC.Reg(Van.JobKind.RegCard, Van.CashKind.None, this.txtTid.Text.Trim(), this.txtCardNo.Text.Trim(), scope, txtAmtSplit.Text.Trim(), txtAmt.Text.Trim()); if (chkSign.Checked) { //********************************************************************************* //싸인을 받는다. if (this.pictureEdit1.Image != null) { pictureEdit1.Image.Dispose(); pictureEdit1.Image = null; } ReqClear(); Van.frmVanLoading fCash = new frmVanLoading("고객싸인요청", VanType.KICC, frmVanLoading.JobKind.Sign, "GetRequest"); fCash.Amount = 10000; fCash.SignPadReqdata = str; fCash.SignPort = int.Parse(this.txtSignPadPort.Text.Trim()); fCash.SignSpeed = 57600; fCash.Owner = this; fCash.VanServerIP = this.txtKiccIP.Text.Trim(); fCash.VanServerPort = int.Parse(this.txtKiccPort.Text.Trim()); fCash.ShowDialog(); Application.DoEvents(); if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.PortError).ToString()) { MessageBox.Show("싸인패드 연결실패 입니다."); return; } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.NotImage).ToString()) { MessageBox.Show("싸인이미지가 없습니다."); return; } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.TimeOut).ToString()) { MessageBox.Show("제한시간 초과 입니다."); return; } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.Communication).ToString()) { MessageBox.Show("싸인패드와 통신할 수 없습니다."); return; } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.NotData).ToString()) { MessageBox.Show("데이터가 없습니다.."); return; } //********************************************************************************* if (this.pictureEdit1.Image != null) { this.pictureEdit1.Image.Dispose(); this.pictureEdit1.Image = null; } Image imgs = mImage.ByteArrayToImage(_ReqData.SignData); this.pictureEdit1.Image = mImage.ByteArrayToImage(_ReqData.SignData); Van.SignViewer f = new SignViewer(imgs); f.ShowDialog(); } if (!_ReqData.IsSignPadAgree) { SendData(str); } reqdata = _ReqData; if (reqdata.IsAgreeError) { MessageBox.Show(reqdata.Message); return; } if (_ReqData.IsSignPadAgree) { if (this.gridSend.DataSource != null) { ((DataTable)this.gridSend.DataSource).Dispose(); this.gridSend.DataSource = null; } if (this.gridRecevie.DataSource != null) { ((DataTable)this.gridRecevie.DataSource).Dispose(); this.gridRecevie.DataSource = null; } this.gridSend.DataSource = _ReqData.dsDoc.Tables[0].Copy(); this.gridRecevie.DataSource = _ReqData.dsDoc.Tables[1].Copy(); this.gridRecevie.Refresh(); this.gridSend.Refresh(); txtSendData.Text = _ReqData.FullSendData; txtReceviedData.Text = _ReqData.FullRequestData; } txtOrgRegNo.Text = reqdata.AgreeNo; this.txtOrgRegDate.Text = reqdata.AgreeDate.Substring(0, 6); InvokeOnClick(btnCardCancel, new EventArgs()); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// 싸인을 받습니다. /// </summary> /// <param name="tid">터미널아이디</param> /// <param name="svrIP">서버아이피</param> /// <param name="svrPort">서버포트</param> /// <param name="Amt">금액</param> /// <param name="ComPort">싸인패드포트</param> /// <param name="reqdata">응답데이터</param> public bool GetSign(string Project, int Amt, ref Van.RecivedData reqdata, string VanAgreeProtocal) { try { string svrIP = ""; string svrPort = ""; string tid = ""; SignPad pad = SignPad.NONE; string signcomport = ""; BizCommon.VanType rtype = BizVan.GetProjectVaninfo(Project, JobKind.None, ref svrIP, ref svrPort, ref tid, ref pad, ref signcomport); Van.VanType type = BizVan.ConvertToVanType(rtype); if (signcomport == "") { throw new Exception("싸인패드 포트가 등록되지 않았습니다."); } #region 서명모드 /******************************************************************************/ // 싸인패드가 체크 되어 있다면 서명모드 시작 /******************************************************************************/ //string str = Van.KICC.Reg( kind, // cashKind, // tid, // cardno, // scope, // Basic.MaskReplace(amtSplit.Trim()), // Basic.MaskReplace(amt.Trim())); _lblReTry: Van.frmVanLoading fCash = new Van.frmVanLoading("고객싸인요청", type, frmVanLoading.JobKind.Sign, "BizGetRequest"); try { fCash.Amount = Amt; fCash.SignPort = int.Parse(signcomport.Replace("COM", "")); fCash.VanServerIP = svrIP; fCash.VanServerPort = svrPort.Trim() == "" ? -999 : int.Parse(svrPort); fCash.SignPadReqdata = VanAgreeProtocal; fCash.Tid = tid; switch (pad) { case SignPad.EP791R: fCash.SignSpeed = 57600; break; case SignPad.KSP100S: fCash.SignSpeed = 34800; break; case SignPad.KISSP30: fCash.SignSpeed = 57600; break; case SignPad.NONE: throw new Exception("서명패드설정이 되어 있지 않습니다."); } } catch (Exception ex) { string strMsg = "싸인패드 설정 오류입니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "오류내용 : \n\r" + ex.Message; throw new Exception(strMsg); } IsLoop = true; fCash.Owner = this; fCash.ShowDialog(); Application.DoEvents(); while (IsLoop) { Application.DoEvents(); } reqdata = _ReqData; if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.PortError).ToString()) { if (MessageBox.Show("싸인패드 연결실패 입니다. - 싸인패드와 통신 상태를 확인하세요 \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.NotImage).ToString()) { if (MessageBox.Show("싸인이미지가 없습니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.TimeOut).ToString()) { if (MessageBox.Show("제한시간 초과 입니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.Communication).ToString()) { if (MessageBox.Show("싸인패드와 통신할 수 없습니다. \n\r" + "거래내역은 아직 승인되지 않았습니다.\n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.NotData).ToString()) { if (MessageBox.Show("리턴된 데이터가 없습니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } //********************************************************************************* Image img = mImage.ByteArrayToImage(_ReqData.SignData); if (type != Van.VanType.KIS) { Van.SignViewer f = new SignViewer(img); f.ShowDialog(); Application.DoEvents(); } /******************************************************************************/ // 서명모드 종료 /******************************************************************************/ #endregion return(true); } catch (Exception ex) { throw ex; } }