Ir para conteúdo
  • Cadastre-se

dev botao

Cancelar Fluxo [Esc]


  • Este tópico foi criado há 3030 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa Tarde.

 

Estou implementando o TEF usando o ACBR e preciso cancelar o fluxo, usando o ESC, no momento em que a mensagem "Digite a senha" aparece, mas nesse momento o teclado se encontra bloqueado e o nenhuma tecla ou o mouse funcionam. 

 

Mesmo no demo, não é possível cancelar pelo botão nesse momento.

 

Alguma  sugestão do que eu possa fazer?

 

Obrigado.

Editado por brsamn
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Neste caso você pode utilizar o evento onAguardaResp, testando se o GP Atual é Sitef e se arquivo é igual a 23, que seria a situação para esse momento que você precisa, algo mais ou menos assim:

 

  if (Arquivo = '23') and (ACBrTEF.GPAtual = gpCliSiTef) then
    Permite cancelar
 
Ao fazer o tratamento, sete dentro desse mesmo evento a variável interromper para o que deseja.
  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
Caros,
 
Estou testando este recurso no TEFDemo, realizando uma venda com cartão de crédito magnético à vista:
 
Cenário 1:
-------------
 
1 - Envio um CRT, seleciono a forma de pagamento e o tipo de cartão
2 - No momento em que me pede para passar ou inserir o cartao, pressiono o botão "CancelarResp" (Continua = -1);
3 - Aparece a tela de dialogo 13 - Operacao Cancelada? [Yes / No]; 
 
Bug:
--------
4 - Se a respota for "No", a tela de dialogo (Comando = 20) fica sempre aparecendo, sendo que o correto não seria ficar em Loop, esperando o retorno do de algum periférico no caso o PinPad (Comando = 23)????
 
  Obs.: Enquanto a resposta for "No" fica sempre aparecendo a tela de dialogo.
 
Cenário 2:
-------------
 
1 - Se respota for "Yes", é retonado para o TEFDemo, e repito novamente o fluxo de operações (venda com cartão de crédito magnético à vista); 
2 - Envio novamente um CRT, seleciono a forma de pagamento e o tipo de cartão;
 
Bug:
--------
6 - De cara , já me aparece o dialogo 13 - Operacao Cancelada? [Yes / No]
 
 
Conclusão:
 
Se pressiono o botão "CancelarResp", tenho que fechar o cupom com uma forma de pagamento que não seja cartão, pois se escolher cartão vai sempre aparecer o dialogo (dialogo 13 - Operacao Cancelada? [Yes / No]) e se respondo "No" acontece o "Cenário 1" e se respondo "Yes" acontece o "Cenário 2".
 
Gostaria de saber dos colegas se isso também ocorre com vocês???
 
Desde já agradeço.
Link para o comentário
Compartilhar em outros sites

Caros,

 

Alguém testou o TEFDemo, cancelando o fluxo da transação, repetindo o cenário descrito acima????

 

Pelo que pude observar nos fontes (ACBrTEFDCliSiTef.pas), os eventos "OnMudaEstadoReq" e "OnMudaEstadoResp" não são chamados/tratados para o SiTef quando enviamos um CRT ou CHQ; Sendo assim a variável "fCancelado" utilizada no TefDemo, depois que apertamos o botão "CancelarResp", nunca volta para "False" (Obs.: a variável esta sendo setada para False no evento OnMudaEstadoReq), deixando assim o programa em Loop no evento "OnAguardaResp" onde trata o Comando 23 ( Arquivo = '23'); O valor desta variável (fCancelado) é passada como resposta ao evento "OnAguardaResp" através da varável "Interromper", e dentro do método "TACBrTEFDCliSiTef.ContinuarRequisicao", no bloco case "ProximoComando = 23", a variável "Continua" sempre fica setada com o valor "-1" (menos 1), pois a variável "interromper" será sempre "True", causando os problemas relatados acima. 

 

Gostaria da opinião dos colegas, se também estão enfrentando problemas para cancelar o fluxo da transação.

 

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Acho que você não está sabendo implementar, olhe mais calmamente e lembre-se o Demo é como o nome diz uma demonstração superficial como funciona o componente!

agora você pode ter várias formas de interagir com o mesmo! ;)

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Bom dia Juliomar,

 

Obrigado pela atenção.

 

Concordo que temos várias formas de implementar. Porém da forma como o TEFDemo está não funciona, e isso pode confundir algumas pessoas com mais dificuldades. Para o SiTef, os eventos "OnMudaEstadoReq" e "OnMudaEstadoResp" não são chamados/tratados quando enviamos um CRT ou CHQ. 

 

Se você tem uma outra forma de implementar e possa compartilhar conosco, seria de grande valia.

 

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O que vc diz que não funciona ?  O Cancelar não cancela ?

 

Todas as demais perguntas são disparadas pelo próprio SiTef... veja os Logs

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Bom dia Daniel,

 

Quando apertamos o botão "CancelarResp" a variável "fCancelado" é setada para "true" e a mesma é passada para a variável "Interromper" do evento "OnAguardaResp", correto. No final do bloco do evento "OnAguardaResp" tem a seguinte condicional "  if fCancelado then Interromper := True ;"

 

Este evento esta contido dentro do "repeat" do método "TACBrTEFDCliSiTef.ContinuarRequisicao", como a variável "fCancelado" não é setada nunca para "false" se respondermos não "No" diálogo "13 - Operacao Cancelada? [Yes / No]", o dialogo fica aparecendo sempre, e seu respondo "Yes", quando envio novamente um CRT, no momento que o PinPad começa interagir com a aplicação (evendo OnAguardaResp - Arquivo = 23), de cara já me aparece o diálogo sem ao menos termos pressionado o botão "CancelarResp".

 

Não sei se consegui passar o ocorrido aqui.

 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Fundadores

Sim... notei que há um bug relacionado a isso no Demo... mas como vc disse, basta restaurar o estado de fCancelado para False...

 

Atualmente fiz várias modificações no meu Demo (experiências) e por isso não posso commitado..

 

Quando tiver um tempo reverto as modificações e corrijo esse bug...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Ok,

 

Daniel Simões

 

Uma outra coisa. No demo está sendo utilizados eventos "OnMudaEstadoReq" e "OnMudaEstadoResp", porém para o SiTef, os mesmos nunca são disparados quando enviamos um CRT ou CHQ. Portanto os blocos de comandos relacionados a esses eventos nuca serão processados. 

 

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Consultores
Em 24/07/2014 at 09:05, ornei disse:

Bom dia Daniel,

 

Quando apertamos o botão "CancelarResp" a variável "fCancelado" é setada para "true" e a mesma é passada para a variável "Interromper" do evento "OnAguardaResp", correto. No final do bloco do evento "OnAguardaResp" tem a seguinte condicional "  if fCancelado then Interromper := True ;"

 

Este evento esta contido dentro do "repeat" do método "TACBrTEFDCliSiTef.ContinuarRequisicao", como a variável "fCancelado" não é setada nunca para "false" se respondermos não "No" diálogo "13 - Operacao Cancelada? [Yes / No]", o dialogo fica aparecendo sempre, e seu respondo "Yes", quando envio novamente um CRT, no momento que o PinPad começa interagir com a aplicação (evendo OnAguardaResp - Arquivo = 23), de cara já me aparece o diálogo sem ao menos termos pressionado o botão "CancelarResp".

 

Não sei se consegui passar o ocorrido aqui.

 

Obrigado

Enviei uma correção para este problema no DEMO hoje. Acredito que agora está exemplificando corretamente como agir. Mas lembramos que é apenas um exemplo e sua aplicação pode fazer de forma diferente.

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3030 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.