Ir para conteúdo
  • Cadastre-se

dev botao

Cancelar solicitação de transação PIX


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

Recommended Posts

  • Membros Pro

Bom dia.

Existe a possibilidade de cancelar uma solicitação de transação PIX antes do timeout? Por exemplo, a opção PIX é chamada mas aí o cliente percebe que o celular descarregou e não vai ter como fazer o pagamento.

Mexendo aqui eu percebi que quando é PIX o evento ACBrTED.AguardaResp não é disparado, como acontece com o cartão? É isso mesmo?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
6 minutos atrás, hetoandrade disse:

Bom dia.

Existe a possibilidade de cancelar uma solicitação de transação PIX antes do timeout? Por exemplo, a opção PIX é chamada mas aí o cliente percebe que o celular descarregou e não vai ter como fazer o pagamento.

Mexendo aqui eu percebi que quando é PIX o evento ACBrTED.AguardaResp não é disparado, como acontece com o cartão? É isso mesmo?

Veja se está falando da chamada através de Carteira Digital no TEF existe no PaygoWeb e Sitef

ele vai mostrar e esperar o pagamento e aprova.

mas ele não funciona igual a um pagamento PIX de app de celular que tu pode cancelar ou devolver o valor.

acho que o @antonio.carlos ou @DanieliLeticia podem falar mais

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 minuto atrás, Juliomar Marchetti disse:

ele vai mostrar e esperar o pagamento e aprova.

Isso. Essa parte. Uso Sitef. E já está implementado o pagamento PIX no meu sistema desde o ano passado.

A minha duvida é, se depois que mostra o QRCode e fica esperando o pagamento, tem como enviar um comando de cancelar (não cancelar uma transação já efetuada, mas cancelar essa "espera") para liberar a aplicação e liberar o PinPad.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Para que o ACBrTEFD possa disparar os eventos  ACBrTED.OnAguardaResp , é necessário que a API (dll) do TEF, rode o processo de espera em Loops de chamadas...

Pode ser que a DLL esteja bloqueando a chamada, aguardando a resposta... Em todo caso, eu não tenho o ambiente do SiTEF, de carteiras digitais, e não saberia lhe dizer, como ele funciona...

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

  • Membros Pro
5 minutos atrás, Daniel Simoes disse:

Para que o ACBrTEFD possa disparar os eventos  ACBrTED.OnAguardaResp , é necessário que a API (dll) do TEF, rode o processo de espera em Loops de chamadas...

Pode ser que a DLL esteja bloqueando a chamada, aguardando a resposta... Em todo caso, eu não tenho o ambiente do SiTEF, de carteiras digitais, e não saberia lhe dizer, como ele funciona...

Tem algum especialista no ambiente do Sitef na equipe?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Creio que seja algo que você deva endereçar para o Suporte deles...

por favor entenda que não é uma caracteristica do ACBrTEFD.. Se a DLL fizer loops na chamada, o componente irá disparar o evento...

Em TACBrTEFDCliSiTef.ContinuarRequisicao, você pode ver os momentos que o evento dispara o evento OnAguardaResp

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

  • Fundadores

O componente fica chamando esse evento no Loop... veja o código de TACBrTEFDCliSiTef.ContinuarRequisicao em ACBrTEFDCliSiTef.pas

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

  • Moderadores

Conforme citado pelo Daniel já temos esse tratamento e ele funciona para cartão então deve e tem que funcionar para esse caso também

image.png

coloque um evento na tela que exibe o QrCode ou um botão e altera a variável FCanceladoPeloOperador pra true e ele deve de cair fora

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
58 minutos atrás, Juliomar Marchetti disse:

coloque um evento na tela que exibe o QrCode ou um botão e altera a variável FCanceladoPeloOperador pra true e ele deve de cair fora

Pois é, eu realmente vi, e pensei que aconteceria isso. Mas não aconteceu. É difícil testar porque o QrCode em Debug autoriza direto aí não dá tempo pra saber o que esta acontecendo 😕

O que vocês disseram sobre o que acontece com o cartão corrobora com o que eu disse no post da criação do tópico: "como acontece com o cartão".

Mas deve ser algo na DLL mesmo porque o evento que acontece no cartao nao acontece com o PIX.

Obrigado pela ajuda, se alguém souber de algo a mais, por favor postem aí.

 

PS: Ninguem precisou implementar uma chamada para desistencia da chamada do QrCode?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

há sim e homologação ele aprova tudo.

mas sim deveria de ter interrompido pois é igual ao comando 23 que vem do pinpad se tu clicar em cancelar.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você tem o Log gerado pelo ACBrTEFD ? nele poderemos ver as respostas da DLL e se ela fica presa na leitura do QRCode

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

  • Membros Pro

-- 12/11 10:54:24:276 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 3 TipoCampo = -1 Buffer = Solicite a leitura do QR Code no pinpad utilizando o Smartphone Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:24:296 - CliSiTef DoExibeMsg: Oper: opmExibirMsgOperador Mensagem: Solicite a leitura do QR Code no pinpad utilizando o Smartphone
-- 12/11 10:54:24:318 - CliSiTef DoExibeMsg: Oper: opmExibirMsgCliente Mensagem: Solicite a leitura do QR Code no pinpad utilizando o Smartphone
-- 12/11 10:54:24:335 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:24:907 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 0 TipoCampo = 0 Buffer = 672 Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:24:916 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:24:942 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 0 TipoCampo = 106 Buffer = 00600012 Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:24:953 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:24:978 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 0 TipoCampo = 107 Buffer = PicPay Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:24:988 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:25:014 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 0 TipoCampo = 131 Buffer = 00271 Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:25:026 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:25:052 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 3 TipoCampo = -1 Buffer = Aguarde, em processamento... Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:25:064 - CliSiTef DoExibeMsg: Oper: opmExibirMsgOperador Mensagem: Aguarde, em processamento...
-- 12/11 10:54:25:079 - CliSiTef DoExibeMsg: Oper: opmExibirMsgCliente Mensagem: Aguarde, em processamento...
-- 12/11 10:54:25:095 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:25:144 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 3 TipoCampo = -1 Buffer = Aguarde, em processamento...(35) Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:25:154 - CliSiTef DoExibeMsg: Oper: opmExibirMsgOperador Mensagem: Aguarde, em processamento...(35)
-- 12/11 10:54:25:168 - CliSiTef DoExibeMsg: Oper: opmExibirMsgCliente Mensagem: Aguarde, em processamento...(35)
-- 12/11 10:54:25:179 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:26:228 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 3 TipoCampo = -1 Buffer = Aguarde, em processamento...(34) Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:26:237 - CliSiTef DoExibeMsg: Oper: opmExibirMsgOperador Mensagem: Aguarde, em processamento...(34)
-- 12/11 10:54:26:249 - CliSiTef DoExibeMsg: Oper: opmExibirMsgCliente Mensagem: Aguarde, em processamento...(34)

 

Daí pra frente fica as linhas de baixo até o timeout
-- 12/11 10:54:25:179 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 12/11 10:54:26:228 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 3 TipoCampo = -1 Buffer = Aguarde, em processamento...(34) Tam.Min = 0 Tam.Max = 0
-- 12/11 10:54:26:237 - CliSiTef DoExibeMsg: Oper: opmExibirMsgOperador Mensagem: Aguarde, em processamento...(34)
-- 12/11 10:54:26:249 - CliSiTef DoExibeMsg: Oper: opmExibirMsgCliente Mensagem: Aguarde, em processamento...(34)

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

  • Fundadores

Segundo esse tópico abaixo..

 

Deveria haver um retorno da DLL com ProximoComando = 52... No seu Log parece não ocorrer isso.. deve ser alguma configuração no módulo

                 52 :   // Mensagem de rodapé QRCode
                   begin
                     Interromper := False;
                     OnAguardaResp('52', 0, Interromper);
                     if Interromper then
                     begin
                       Continua := -1 ;
                       FinalizarTransacaoInterrompida := True;
                     end;
                   end;         

 

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

  • Fundadores

Está no seu Log...

Citar

-- 12/11 12:05:05:352 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 52 TipoCampo = 4128 Buffer = Aguarde, em processamento...(35) Tam.Min = 0 Tam.Max = 0
-- 12/11 12:05:05:357 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer =

Provavelmente você não está tratando o 52, no lado da aplicação, em OnAguardaResp

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

  • Membros Pro
4 minutos atrás, Daniel Simoes disse:

Está no seu Log...

Provavelmente você não está tratando o 52, no lado da aplicação, em OnAguardaResp

 

Sim, entendi Daniel. Porém o evento AguardaResp não é disparado em momento algum quando uso Carteira Digital. No Cartão sim, mas no QrCode não. Pelo menos aqui pra mim não cai nenhuma vez no AguardaResp quando uso o PIX

7 horas atrás, hetoandrade disse:

Mexendo aqui eu percebi que quando é PIX o evento ACBrTED.AguardaResp não é disparado, como acontece com o cartão? É isso mesmo?

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Se os seus fontes do ACBr, estão corretamente atualizados, essa linha abaixo, dispara o evento SIM

Citar

-- 12/11 12:05:05:352 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 52 TipoCampo = 4128 Buffer = Aguarde, em processamento...(35) Tam.Min = 0 Tam.Max = 0
-- 12/11 12:05:05:357 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer =

 

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

  • Membros Pro
4 minutos atrás, Daniel Simoes disse:

Se os seus fontes do ACBr, estão corretamente atualizados, essa linha abaixo, dispara o evento SIM

 

Vou tratar o '52' especificamente aqui pra ver. Mas no teste que eu fiz, eu coloquei um ShowMessage na primeira linha de código do Evento, já que com PIX não dá pra debugar. E a mensagem não apareceu, já quando eu seleciono cartão e aperto ESC pra desistir da transação o ShowMessage aparece.

Mas vou tratar o '52' especificamente.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Segue agora o exemplo usando o TEFDemo.

Vejam na primeira imagem, que a mensagem lá em cima está aparecendo Caixa Livre porque Pressionei o ESC pra cancelar, e o ESC novamente pra deixar o Status Livre, porém o log continua adicionando linhas sem parar com a mesma instrução. 

Pela horário mostrado na imagem vocês poderão ver que eu tentei desistir da transação às 17:36, porém o log continuara "esperando algo acontecer" até as 17:38.

Log gerado pelo ACBrTEDemoNF

Screenshot_1.png

CliSiTef.log

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...
  • Fundadores

@hetoandrade, creio que as correções implementadas nesse tópico abaixo, podem resolver o problema... (basta atualizar os fontes)

 

  • 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

  • 3 semanas depois ...
  • Este tópico foi criado há 1038 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.