Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

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


Go to solution Solved by Daniel Simoes,

Recommended Posts

  • Membros Pro

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

 

Link to comment
Share on other sites

  • Membros Pro

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. 

Link to comment
Share on other sites

  • Administradores

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

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

Link to comment
Share on other sites

  • Fundadores

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.

Link to comment
Share on other sites

  • Fundadores
  • Solution

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.

Link to comment
Share on other sites

  • Consultores
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 !

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.