Ir para conteúdo
  • Cadastre-se

dev botao

PIX, Sitef Qrcode PINPAD


Ver Solução Respondido por Thiago.Rod,
  • Este tópico foi criado há 969 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Ola amigos, estou com um problema usando em produção com PIX e sitef pelo PINPAD.

Depois que é mostrado o Qrcode no pinpad, caso o cliente desista, e queira pagar com um cartao DEB/CRED o processo que o operador precisa fazer é interromper com a tecla ESC essa operação, e continuar com outra modalidade,

o problema é que quando é carteira digital (PIX) a tecla ESC para abortar(interromper) nao esta funcionando, fica uns 2 minutos a contagem e só depois disso que para o processo. 

Fazendo o mesmo processo pelo TEFDemo em producao acontece a mesma coisa.

Lembrando isso só esta acontecendo com carteira digital no caso aqui o PIX. fora isso o fluxo esta normal com outras modalidade pelo TEF.

Alguem ja passou por este problema?

 

Postado (editado)
34 minutos atrás, Juliomar Marchetti disse:

Consegue anexar o log do ACBrTEFD?

Bom dia, sim vou por anexo, fiz esse teste usando o Demo em produçao com PPC930.

Teclei ESC umas 3 ou 4 vez mas nao interrompe o processo. so depois de alguns minutos estoura a msg que esta na foto em anexo tmb.

Screenshot_1.png

 

Editado por DSilva
Postado
11 minutos atrás, DSilva disse:

Bom dia, sim vou por anexo, fiz esse teste usando o Demo em produçao com PPC930.

Teclei ESC umas 3 ou 4 vez mas nao interrompe o processo. so depois de alguns minutos estoura a msg que esta na foto em anexo tmb.

Screenshot_1.png

 

 

LogTEF.txt

Postado
5 minutos atrás, André Ferreira de Moraes disse:

Vc precisa ajustar o evento ACBrTEFD1AguardaResp para permitir interromper qdo o campo Arquivo for 23 ou 52.

Opa André, pode me dar uma dica

 

procedure TFormPrincipal.ACBrTEFD1AguardaResp(Arquivo: String;
  SegundosTimeOut: Integer; var Interromper: Boolean);
var
  Msg : String ;
begin
  if FCanceladoPeloOperador then
  begin
    FCanceladoPeloOperador := False;
    Interromper := True ;
    Exit;
  end;

  Msg := '' ;
  if (ACBrTEFD1.GPAtual in [gpCliSiTef, gpVeSPague, gpPayGoWeb]) then   // É TEF dedicado ?
   begin
     if (Arquivo = '23') and ACBrTEFD1.TecladoBloqueado then  // Está aguardando Pin-Pad ?
     begin
       // Desbloqueia o Teclado
       ACBrTEFD1.BloquearMouseTeclado(False);
       // Ajusta Interface para Espera do TEF, com opçao de cancelamento pelo Operador
       StatusVenda := stsAguardandoTEF;

       Msg := 'Aguardando Resposta do Pinpad.  Pressione <ESC> para Cancelar';
       FCanceladoPeloOperador := False;
     end;
   end
  else if FTempoDeEspera <> SegundosTimeOut then
  begin
     Msg := 'Aguardando: '+Arquivo+' '+IntToStr(SegundosTimeOut) ;
     FTempoDeEspera := SegundosTimeOut;
  end;

  if Msg <> '' then
    AdicionarLinhaLog(Msg);

  Application.ProcessMessages;
end;


Onde posso fazer o teste aqui ??? 

Postado
5 minutos atrás, André Ferreira de Moraes disse:

 if ((Arquivo = '23') or (Arquivo = '52')) and ACBrTEFD1.TecladoBloqueado then 

Blz, Andre, vou fazer os teste aqui posto o resultado, obrigado abraço..

Postado

Andre, coloquei a alteração no TefDemo e fiz os teste, e nao deu certo, continua do mesmo jeito nao interrompe.

Ele fica ate aparecer a mensagem '' 90- NAO AUTORIZADA ''. so depois que ele volta. 

Postado
2 minutos atrás, André Ferreira de Moraes disse:

Vc tem q debugar a função e ver pq não está entrando nessa condição.

Nao consigo debugar da este erro ma hora de abrir o gerTEF, nao deixa que coisa loco hoje... alguma ideia do porque disso?

Screenshot_1.png

Screenshot_2.png

Postado
14 minutos atrás, DSilva disse:

Nao consigo debugar da este erro ma hora de abrir o gerTEF, nao deixa que coisa loco hoje... alguma ideia do porque disso?

Screenshot_1.png

Screenshot_2.png

Andre, coloquei um showmessage, e descobri que ele nem entra, nao passa por la.... quando é Carteira Digital, pois fazendo com cartao normal ai sim ele passsa pelo evento.

'' ACBrTEFD1AguardaResp(Arquivo: String;
  SegundosTimeOut: Integer; var Interromper: Boolean); ''

 

 

Postado
16 horas atrás, André Ferreira de Moraes disse:

Vc está com os fontes do ACBr atualizados?

Bom dia, Andre sim estou com os fontes atualizado, sempre faço isso antes de postar. alguma outra ideia??

 

Postado
1 hora atrás, André Ferreira de Moraes disse:

Talvez, por estar exibindo o qrcode no pinpad, o cancelamento só funcione direto no pinpad. Faça um teste exibindo o qrcode na tela e veja se o interromper funciona.

Boa tare, pessoal, os teste que estou fazendo é pelo PINPAD, quando aparece o Qrcpde nele e o cliente resolve desistir o operador tecla o ESC para interromper o processo e isso nao ocorre,

so lembrando os amigos estou fazendo teste em produção com SitefDemo.

eu ainda nao concegui resolver peço se tem alguem com este mesmo proplema por favor uma ajudinha seria bem vindo.. abraço.

Postado (editado)
14 minutos atrás, Juliomar Marchetti disse:

veja ele pediu para tu testar somente exibindo na aplicação e não no pinpad pra gente ter um norte.

Opa, ok, ja estava fazendo teste, nao tinha implementado para mostrar na tela, mas fiz no proprio Demo, o log e imagem anexo..

Obs: Com Qrcode na tela ao Teclar ESC ele entra no evento do componente.

Screenshot_1.png

LogTEF.txt

Editado por DSilva
Postado
Em 25/06/2021 at 13:47, DSilva disse:

Opa, ok, ja estava fazendo teste, nao tinha implementado para mostrar na tela, mas fiz no proprio Demo, o log e imagem anexo..

Obs: Com Qrcode na tela ao Teclar ESC ele entra no evento do componente.

Screenshot_1.png

LogTEF.txt 6 kB · 1 download

Andre, tudo bem! descobriu alguma coisa referente a esse problema de interromper ?

  • Solution
Postado
Em 28/06/2021 at 17:04, DSilva disse:

Andre, tudo bem! descobriu alguma coisa referente a esse problema de interromper ?

Olá amigo, consegui mandar corretamente fazendo o cancelamento no evento ACBrTEFDAguardaResp.

No método que retorna o valor 52 sempre passa o parâmetro Interromper := False.

No evento faça:

 if (Arquivo = '52') and (not Interromper) then 

Interromper := True;

...

Para mim funcionou, espero que lhe ajude também.

  • Curtir 1
  • 3 meses depois ...
  • 5 meses depois ...
  • Este tópico foi criado há 969 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.