Ir para conteúdo
  • Cadastre-se

dev botao

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


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

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"

  • Curtir 5
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

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