Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

logos

Texto.png

p200

click.png

click.png

click.png

Como detectar se em uma Transação ADM houve um cancelamento ?


Recommended Posts

  • Fundadores

Olá pessoal...

Como vocês sabem, em uma menu Administrativo do TEF (ADM), é possível efetuar várias operações, inclusive um Cancelamento de Pagamento TEF realizado anteriormente..

Nessa situação, a Aplicação Comercial pode necessitar ser informada de que houve um Cancelamento e identificar corretamente a transação TEF que foi Cancelada. Isso pode ser útil para refletir esse status de Cancelamento em sua base de dados local, ou até mesmo providenciar outros estornos e devoluções...

Mas como podemos detectar no Log de retorno de uma transação Administrativa (ADM), se houve ou não um Cancelamento ou uma simples reimpressão ?

A resposta abaixo, se refere ao TEF PayGo Web, usando o componente ACBrTEFD.

O componente ACBrTEFD, mapeia os retornos do Log do TEF, para propriedades internas do Objeto TACBrTEFResp, isso é feito no método TACBrTEFResp.ConteudoToProperty, que é sobreposto em cada Classe de TEF... Para ver o mapeamento que o ACBrTEFD realiza com os Logs da PayGoWeb, veja na Unit ACBrTEFPayGoComum.pas, a procedure ConteudoToPropertyPayGoWeb(AACBrTEFResp: TACBrTEFResp);


Analisando o Log de um ADM, onde ocorreu o Cancelamento... temos as seguintes respostas:

PWINFO_TOTAMNT=000000000300 -> Resp.ValorTotal
PWINFO_TRNORIGDATE=291020 -> Resp.DataHoraTransacaoCancelada
PWINFO_TRNORIGNSU=000092672 -> Resp.NSUTransacaoCancelada
PWINFO_TRNORIGREQNUM=0000216525
PWINFO_TRNORIGTIME=101830 -> Resp.DataHoraTransacaoCancelada
PWINFO_RCPTMERCH=   *** PAYGO - AMBIENTE SANDBOX ***   \x0D\x0A         Via Estabelecimento......  -> Resp.ImagemComprovante1aVia.Text

Ou seja, se o Cancelamento ocorreu com sucesso, teremos a impressão de um comprovante desse cancelamento, e os dados da transação Cancelada... então podemos analisar a resposta com o IF abaixo:

if (ACBrTEFD.Resp.NSUTransacaoCancelada <> EmptyStr) and
     (Trim(ACBrTEFD.Resp.ImagemComprovante1aVia.Text) <> EmptyStr) then 
  // HouveCancelamento

Um bom local para fazer esse tipo de Verificação é no evento "OnDepoisConfirmarTransacoes"

  • Like 3
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 post
Share on other sites
×
×
  • Create New...