Ir para conteúdo
  • Cadastre-se

dev botao

Retorno de Transação


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

Recommended Posts

  • Moderadores
11 minutos atrás, el.lauro disse:

Boa tarde galera, como eu devo fazer para capturar o retorno de uma transação? No caso capturar os dados retornados para posteriormente inserir no meu banco de dados.

Aguardo retorno

Que retorno?

confere os eventos no componente ACBrTEFD!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Eu estudei eles Juliomar, porém, quando eu faço uma transação administrativa(ACBrTefD1.ADM) eu não consigo ler o arquivo de retorno como eu faço com a transação de venda(CRT). O fato é que eu queria ler o arquivo de retorno para poder inserir no banco de dados as informações.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você precisa ser mais específico, em relação a qual informação, deseja capturar...

Veja um exemplo em TEFDDemo...  procedure TForm1.ACBrTEFD1DepoisConfirmarTransacoes

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

Daniel, analisando os códigos da transação administrativa percebi que o arquivo de retorno é excluído depois que os dados são capturados, porém, a coleção usada para Resposta (ACBrTefD1.Resp) é limpa através do comando clear, desse modo eu não consigo pegar os dados para persistir no meu banco. Qual seria o evento que eu deveria usar para ter esses dados?

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Boa tarde galera, hoje comecei a mexer novamente no TEF e principalmente em transações administrativas, mais precisamente em recarga de celulares. Estava analisando os códigos do componente para esse tipo de transação e algumas coisas me chamaram atenção. 

Seguindo o fluxo da operações primeiro o componente inicia a requisição, adiciona os dados e finaliza. Apos isso entra em operação o integrador da NTK. Ao receber a resposta da requisição o componente lê a resposta da mesma adiciona o retorno da função, processa e finaliza a resposta. Pois bem, esse finalizar resposta ele acaba limpando o retorno e apagando o arquivo do retorno, sendo que desse modo, pelo menos ao meu ver, não conseguimos persistir os dados da transação no banco, pois, as mesmas não podem serem lidas. Segue abaixo os códigos com o fluxo das transações.

  Result := False ;
  IniciarRequisicao('ADM');
  AdicionarIdentificacao;
  FinalizarRequisicao;
  LerRespostaRequisicao;
  Result := Resp.TransacaoAprovada ;
  try
     ProcessarResposta ;         { Faz a Impressão e / ou exibe Mensagem ao Operador }
  finally
     FinalizarResposta( True ) ; { True = Apaga Arquivo de Resposta }
  end;

Eu gostaria de saber se eu estou enganado, ou do contrario, oque eu devo fazer para conseguir pegar os retornos(Operadora, valor da transação, etc)?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Se você ativar o Log, e a propriedade LogDebug, será gravado no arquivo de Log, todos os dados retornado pelo Gerenciador TEF, com os respectivos índices de acesso

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

  • Fundadores

Conforme já comentei, nos tópicos anteriores, você pode acessar todas as propriedades pelo índice, conforme é demonstrado no exemplo do TEFDDemo

procedure TForm1.ACBrTEFD1DepoisConfirmarTransacoes(
   RespostasPendentes: TACBrTEFDRespostasPendentes);
var
  I : Integer;
begin
  for I := 0 to RespostasPendentes.Count-1  do
  begin
     with RespostasPendentes[I] do
     begin
        Memo1.Lines.Add('Confirmado: '+Header+' ID: '+IntToStr( ID ) );

        // Lendo os campos mapeados //
        Memo1.Lines.Add( 'Rede: '  + Rede +
                         ' NSU: '  + NSU  +
                         ' Parcelas: '+ IntToStr(QtdParcelas) +
                         ' Parcelado por: '+ GetEnumName(TypeInfo(TACBrTEFDRespParceladoPor), integer(ParceladoPor) )  +
                         ' É Débito: '+BoolToStr(Debito)+
                         ' É Crédito: '+BoolToStr(Credito)+
                         ' Valor: '+ FormatFloat('###,###,##0.00',ValorTotal)) ;

        // Lendo um Campo Específico //
        Memo1.Lines.Add('Campo 11: ' + LeInformacao(11,0).AsString );
     end;
  end;
end;

Veja o trecho acima... (lendo um campo específico)

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.