Ir para conteúdo
  • Cadastre-se

dev botao

Contribuição: métodos para capturar o último erro retornado


  • Este tópico foi criado há 865 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa tarde, fiz uma implementação nos fontes que permite recuperar o último erro retornado pelo TEF em uma transação.

Desculpe se faltou algum trecho de código a ser implementado, esta é a minha primeira contribuição com o ACBr.
Tentei seguir o mais parecido possível com os códigos já escritos.

Implementei a classe TACBrTEFUltimoErro que contem a seguinte estrutura:

  TACBrTEFUltimoErro = class
  private
    FCodigoErro: Integer;
    FMensagem: String;
  public
    constructor Create;
    procedure Clear;

    property CodigoErro: Integer read FCodigoErro write FCodigoErro;
    property Mensagem: String read FMensagem write FMensagem;
  end;

Ela pode ser acessada pela property UltimoErroTEF, desta maneira após qualquer transação.

  ACBrTEFAPI1.UltimoErroTEF.Codigo
  ACBrTEFAPI1.UltimoErroTEF.Mensagem

Testado e funcionando com PayGoWeb

ACBRTEFAPI UltimoErroTEF.zip

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

  • 2 semanas depois ...
  • Fundadores

Olá @cristianocruzzz,

Analisando a modificação, notei que ela é compatível apenas com PayGoWeb.. o que pode causar uma certa confusão, em quem usa o TEF por troca de Arquivos, ou SiTef, pois essa classe estaria sempre vazia...

As informações que você está salvando nessa classe, podem ser obtidas no termino da Transação TEF.. veja um exemplo:

  Ok := ACBrTEFAPI1.EfetuarPagamento( IntToStr(Venda.NumOperacao),
                                      AValor, Modalidade, CartoesAceitos,
                                      tefmfAVista );
  Ok := Ok and
        ACBrTEFAPI1.UltimaRespostaTEF.Sucesso and
        ACBrTEFAPI1.UltimaRespostaTEF.TransacaoAprovada;

  // -- Exemplo de como capturar os Erros retornados pela API do TEF PayGoWeb -- //
  if not OK then
  begin
    if (ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb) then
    begin
      CodErro := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(PWINFO_RET).AsInteger;
      MsgErro := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(PWINFO_RESULTMSG).AsBinary;
      ShowMessage('Erro: '+IntToStr(CodErro)+' - '+Trim(MsgErro));
    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

  • Membros Pro

Bom dia @Daniel Simoes, tudo bem?

Obrigado pela resposta, mas o ACBRTEFAPI não é somente via DLL (API)?

Eu não tenho os parâmetros para poder testar o CliSitef por isso não implementei nessa classe, mas posso rastrear e implementar o preenchimento para a CliSitef.

Vou testar com esse método que você me passou, obrigado!

Link para o comentário
Compartilhar em outros sites

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