/// <summary>
        /// Verifica se o ESC foi pressionado, para cancelar a captura.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            Fluxos.FluxoPinPadKeyDown(() => SomenteTeclaNumerica(e.Key));

            if (e.Key == Key.Escape)
            {
                CancelCaptura(true);
            }
        }
Esempio n. 2
0
        public override string ToString()
        {
            switch (PwInfo)
            {
            case PWINFO.PWINFO_RCPTFULL:
            case PWINFO.PWINFO_RCPTMERCH:
            case PWINFO.PWINFO_RCPTCHOLDER:
            case PWINFO.PWINFO_RCPTCHSHORT:
                return
                    (string.Format("{0}:{1}{1}{2}",
                                   PwInfo,
                                   Environment.NewLine,
                                   Fluxos.FormatarComprovante(Value)
                                   ));

            default:
                return
                    (string.Format("{0}: [{1}]", PwInfo, ValueFormatado));
            }
        }
        private async Task NewTransacExecute(PWOPER pwOper)
        {
            Admin.IsEnabled = false;
            Sale.IsEnabled  = false;

            Log.PrintThread("Iniciando...");

            TefWindow.Instance.TimeOut = null;
            TefWindow.Instance.BindMuxxLib();

            PGWebLib.DebugType = DebugType.Json;
            //PGWebLib.DebugCallback = Log.PrintThread;

            Fluxos.CancelarOperacaoFunc = Cancelar;
            Fluxos.Clear();

            Fluxos.ParamsAdd(PWINFO.PWINFO_AUTNAME, "PDV");
            Fluxos.ParamsAdd(PWINFO.PWINFO_AUTVER, "1.0.0.0");
            Fluxos.ParamsAdd(PWINFO.PWINFO_AUTDEV, "PayGo");
            Fluxos.ParamsAdd(PWINFO.PWINFO_AUTCAP, (
                                 (int)PWINFO_AUTCAP.PWINFO_AUTCAP_DSP_CHECKOUT +
                                 (int)PWINFO_AUTCAP.PWINFO_AUTCAP_DSP_QRCODE
                                 ).ToString());
            //QRCode
            Fluxos.ParamsAdd(PWINFO.PWINFO_DSPQRPREF,
                             ((int)PWINFO_DSPQRPREF.PWINFO_DSPQRPREF_EXIBE_CHECKOUT).ToString());

            Log.PrintThread(
                string.Format("Operação: [{0}]", pwOper.ToString()));

            bool status = await Fluxos.FluxoInitAsync();

            if (!status)
            {
                Log.PrintThread("Não foi possível inicializar a biblioteca");
                return;
            }

            PWCNF pwCnf;

            status = await Fluxos.FluxoPrincipalAsync(pwOper);

            if (status)
            {
                Log.PrintThread("Transação: realizada com sucesso");
                pwCnf = PWCNF.PWCNF_CNF_AUTO;
            }
            else
            {
                Log.PrintThread("Transação: Não foi possível concluir sua transação");
                pwCnf = PWCNF.PWCNF_REV_MANU_AUT;
            }

            if (Fluxos.PossuiPendencia())
            {
                Log.PrintThread("Existe alguma transação pendente de confirmação no PayGoWeb...");

                //Nesse exemplo estou confirmando, mas o correto é verificar o status
                //dessa transação na sua automação, para confirmar ou desfazer a mesma.
                if (Fluxos.FluxoConfirmacaoPendencia(PWCNF.PWCNF_CNF_AUTO))
                {
                    Log.PrintThread("Confirmada!!!");
                }
                else
                {
                    Log.PrintThread("Não Confirmada!!!");
                }
            }

            TefWindow.Instance.BindDisplayAguarde();

            Log.PrintThread("Resultados:");

            await Fluxos.FluxoGetResultPwInfosAsync();

            foreach (var info in Fluxos.ResultsEnviadosComSucesso)
            {
                Log.PrintThread(info.ToString());
            }

            if (Fluxos.RequerConfirmacao())
            {
                Log.PrintThread("Confirmando a transação...");

                if (Fluxos.FluxoConfirmacao(pwCnf))
                {
                    Log.PrintThread("Confirmada!!!");
                }
                else
                {
                    Log.PrintThread("Não Confirmada!!!");
                }
            }

            Log.PrintThread("Operação Finalizada!");

            TefWindow.Instance.Hide();

            Admin.IsEnabled = true;
            Sale.IsEnabled  = true;
        }