Ir para conteúdo
  • Cadastre-se

dev botao

HOMOLOGAÇÃO SITEF ACBrTEFAPI - Seq. 19 - Tratamento Queda de Energia da máquina


Ver Solução Respondido por datilas,

Recommended Posts

Postado

Boa tarde pessoal, tudo bem?

Estou fazendo homologação no sitef utilizando ACBrTEFAPI. E estou com dúvidas na sequencia 19, que é para simular uma queda de energia no momento de realizar o pagamento.
Fazendo algumas consultas, vi que foram feitas algumas alterações no ACBr para tratar dessa questão. Mas estou com meu ACBr atualizado no dia 28/11/2024, e não consegui fazer ele buscar as transações pendentes. Tenho que executar algum procedimento para identificar as transações pendentes? Ou ao inicializar (ACBrTEFAPI1.Inicializar;) o ACBr já faz a consulta automaticamente? Ou eu deveria executar alguma procedure após iniciar? Ex: ACBrTEFAPI1.CarregarRespostasPendentes;

Em qual ponto vocês estão fechando o aplicativo? Quando aparece a mensagem de transação aprovada? Quando pede para retirar o cartão?

Obrigado.

 

  • Solution
Postado

no momento que pede para retirar o cartão, não retirar e derrubar a aplicação.

depois do ACBrTEFAPI1.Inicializar;

vc pode chamar:

ACBrTEFAPI1.CarregarRespostasPendentes;

fazer um for em ACBrTEFAPI1.RespostasTEF e finalizar as transações pendentes como sucesso ou erro.

ACBrTEFAPI1.FinalizarTransacao(tefstsSucessoManual);

ou

ACBrTEFAPI1.FinalizarTransacao(tefstsErroDiverso);

  • Curtir 1
Postado

Muito obrigado pela ajuda.
No meu caso então faltou eu fazer o loop para tratar as transações pendentes de resposta.

Vou fazer o teste e retorno. Muito obrigado.

Postado

Boa tarde, fiz o teste e parece que deu tudo certo.
Agora vou encaminhar os arquivos para homologação, para eles avaliarem se é isso mesmo.

Muito Obrigado.

  • Fundadores
Postado

O método ACBrTEFAPI.Inicializar, já carrega e trata as transações pendentes

procedure TACBrTEFAPIComum.Inicializar;
begin
  GravarLog('Inicializar');

  if not Assigned( fQuandoFinalizarOperacao )  then
    DoException( Format( ACBrStr(sACBrTEFAPIEventoInvalidoException),
                         ['QuandoFinalizarOperacao']) );

  if (TratamentoTransacaoPendente = tefpenPerguntar) and
     (not (Assigned( fQuandoDetectarTransacaoPendente ))) then
    DoException( Format( ACBrStr(sACBrTEFAPIEventoInvalidoException),
                         ['QuandoDetectarTransacaoPendente']) );

  if (fArqLOG <> '') then
  begin
    if (ExtractFilePath(fArqLOG) = '') then
      fArqLOG := ApplicationPath + fArqLOG;
  end;

  fpInicializando := True;
  try
    fpTEFAPIClass.Inicializar;
    CriarListaTEFResp;

    // Verificando se ficou alguma Transação Pendente, no Diretório de Trabalho
    if (TratamentoTransacaoInicializacao = tefopiCancelarOuEstornar) then
      CancelarOuEstornarTransacoesDiretorioTrabalho
    else
    begin
      fpTEFAPIClass.CarregarRespostasPendentes( fRespostasTEF );
      if (TratamentoTransacaoInicializacao = tefopiProcessarPendentes) then
        VerificarTransacoesPendentes;
    end;
  finally
    fpInicializando := False;
  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.

  • Membros Pro
Postado

ola, ainda é possivel fazer manual essa confirmacao, para poder exibir a mensagem ao operador, configurando a propriedade 

TratamentoTransacaoInicializacao para não realizar tratamento nenhum 

 

o acbr continuara buscando as transacoes pendentes porem nao vai confirmar ou estornar e ai que entra o loop mencionado pelo colega @datilas.

  • 2 semanas depois ...

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.

The popup will be closed in 10 segundos...