/*☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★*/

        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;
            }
        }
Beispiel #2
0
 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);
            }
        }
Beispiel #4
0
        /// <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;
            }
        }