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

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao.png

beneficios.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
  • 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...