Ir para conteúdo
  • Cadastre-se

dev botao

Loop de cancelamento para simulação de erro em múltiplos cartões.


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

Recommended Posts

  • Membros Pro
Postado

Bom dia, estava meu simulando um pagamento com múltiplos cartões na minha aplicação quando me deparei com um erro na hora de simular um cancelamento de venda com dois cartões, rodei um teste no demo e consegui o mesmo erro.

image.thumb.png.e510952cceae00dbddc22b739245b05d.png

Essa parte é  onde ocorre a simulação de erro. 

image.thumb.png.54fa9b47886fcc619cc3e2fa087d7919.png

Agora ele executa o cancelamento do segundo tef ainda não confirmado.1729246753_CapturadeTela(33).thumb.png.d496448001d3b8003c764ea9fa0878f1.png1728958925_CapturadeTela(32).thumb.png.013cfc117c7f8d737fba75ee132812ec.png

e agora as duas solicitações de cancelamento para o mesmo tef, e continua solicitando, cancelamento se eu não apertar ESC.

segue o arquivo de log.

20220422_PayGo.txt

 

  • Membros Pro
Postado

1 - Com a opção 'simular erro docto fiscal' marcado realizo uma venda de 500,00
2 - para o primeiro pagamento cartão de credito 200 e o segundo pagamento debito 300 
3 - como esperado ocorre o erro e a solicitação de cancelamento
4 - inicia o cancelamento das operações.
5 - pagamento de 300 cancelado Ok
6 - inicia o cancelamento de 200, o gerenciador padrão pay go solicita senha adm.
7 - o gerenciador paygo pergunta se desejo cancelar a operação de NSU: XXXXXX, confirmo, operação finalizada
8 o erro - o gerenciador abre novamente pedindo a senha adm, o gerenciador paygo pergunta se desejo cancelar a operação de NSU: XXXXXX, confirmo, operação finalizada
9 - o looping continua até eu cancelar a operação pressionando a tecla ESC. 

  • Administradores
Postado

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Fundadores
Postado

Obrigado pelo passo a passo, é exatamente isso que precisamos...

Consegue anexar o Log gerado pelo ACBrTEFD ?

@antonio.carlos, consegue reproduzir o problema ?  (não tenho o Client Windows instalado em minha máquina)

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.

  • Fundadores
  • Solution
Postado

Me parece ser apenas um problema no Demo (e não no componente)... o Demo não está mudando o Estado da Venda Para Cancelada, quando chama o método CancelarVenda, antes de rodar a rotina de Cancelamento no TEF... com isso, o Estado da Venda retornado em OnInfoECF, continua sendo P-Pagamento, e como o ACBrTEFD interpreta que o "Cupom está aberto", ele dispara o comando de Cancelamento de Cupom, que acaba chamando novamente o Cancelamento de Cartão

-- 22/04 13:03:08:304 - PagGo ProcessarResposta: CNC                    // Aqui ele irá tentar rodar as Impressões dos comprovantes de Cancelamento
-- 22/04 13:03:08:336 - PagGo ImprimirRelatorio: CNC                    // Imprimindo
-- 22/04 13:03:08:344 - BloquearMouseTeclado: SIM
-- 22/04 13:03:08:481 - InfoECF: ineEstadoECF                           // Pergunta a aplicação, qual é o Estado do "ECF"
-- 22/04 13:03:08:504 -     Ret: P                                      // A aplicação retornou que o ECF está com Cupom Aberto, na fase de Pagamento...
-- 22/04 13:03:08:514 - PagGo ComandarECF: Oper: opeCancelaCupom        // ...com isso, o ACBrTEFD tentará cancelar o Cupom Aberto..
-- 22/04 13:03:08:539 - PagGo CancelarTransacoesPendentesClass          // ...Mas essa rotina chama novamente o Cancelamento... (loop infinito)
-- 22/04 13:03:08:580 - PagGo IniciarRequisicao: CNC

 

Experimente por favor, mudar essa método, para sinalizar o Estado da Venda como Cancelada, antes de chamar o Cancelamento do TEF

procedure TFormPrincipal.CancelarVenda;
begin
  AdicionarLinhaLog('- CancelarVenda');
  // AQUI você deve cancelar a sua venda no Banco de Dados, desfazendo baixa de
  // estoque ou outras operações que ocorreram durante a venda.

  StatusVenda := stsCancelada;                    // <----- MUDE AQUI-----
  ACBrTEFD1.CancelarTransacoesPendentes;
end;        

   

@antonio.carlos, consegue modificar o Demo e testar novamente ?

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.

  • Consultores
Postado
Em 22/04/2022 at 23:18, Daniel Simoes disse:

Me parece ser apenas um problema no Demo (e não no componente)... o Demo não está mudando o Estado da Venda Para Cancelada, quando chama o método CancelarVenda, antes de rodar a rotina de Cancelamento no TEF... com isso, o Estado da Venda retornado em OnInfoECF, continua sendo P-Pagamento, e como o ACBrTEFD interpreta que o "Cupom está aberto", ele dispara o comando de Cancelamento de Cupom, que acaba chamando novamente o Cancelamento de Cartão

-- 22/04 13:03:08:304 - PagGo ProcessarResposta: CNC                    // Aqui ele irá tentar rodar as Impressões dos comprovantes de Cancelamento
-- 22/04 13:03:08:336 - PagGo ImprimirRelatorio: CNC                    // Imprimindo
-- 22/04 13:03:08:344 - BloquearMouseTeclado: SIM
-- 22/04 13:03:08:481 - InfoECF: ineEstadoECF                           // Pergunta a aplicação, qual é o Estado do "ECF"
-- 22/04 13:03:08:504 -     Ret: P                                      // A aplicação retornou que o ECF está com Cupom Aberto, na fase de Pagamento...
-- 22/04 13:03:08:514 - PagGo ComandarECF: Oper: opeCancelaCupom        // ...com isso, o ACBrTEFD tentará cancelar o Cupom Aberto..
-- 22/04 13:03:08:539 - PagGo CancelarTransacoesPendentesClass          // ...Mas essa rotina chama novamente o Cancelamento... (loop infinito)
-- 22/04 13:03:08:580 - PagGo IniciarRequisicao: CNC

 

Experimente por favor, mudar essa método, para sinalizar o Estado da Venda como Cancelada, antes de chamar o Cancelamento do TEF

procedure TFormPrincipal.CancelarVenda;
begin
  AdicionarLinhaLog('- CancelarVenda');
  // AQUI você deve cancelar a sua venda no Banco de Dados, desfazendo baixa de
  // estoque ou outras operações que ocorreram durante a venda.

  StatusVenda := stsCancelada;                    // <----- MUDE AQUI-----
  ACBrTEFD1.CancelarTransacoesPendentes;
end;        

   

@antonio.carlos, consegue modificar o Demo e testar novamente ?

Claaro !
Realizando alterações e testes.. logo posto o resultado aqui !

  • Este tópico foi criado há 946 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.

The popup will be closed in 10 segundos...