Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

Adquirente Demo + Cancelamento via ADM no TEFAPI


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 240 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Olá a todos,

No Demo do TEFAPI é mostrado como detectar uma transação de cancelamento de pagamento através do menu administrativo. Tal detecção se dá no evento QuandoFinalizarTransacao, mas especificamente no código abaixo:

procedure TFormPrincipal.ACBrTEFAPI1QuandoFinalizarTransacao(
  RespostaTEF: TACBrTEFResp; AStatus: TACBrTEFStatusTransacao);
var
  Atualizou, Sucesso: Boolean;
begin
...... codigo cortado.....
  else if (RespostaTEF.Header = CHEADER_ADMINISTRATIVA) then   // <----- AQUI --------
  begin
    if Sucesso then
    begin
      // https://www.projetoacbr.com.br/forum/topic/61001-como-detectar-se-em-uma-transa%C3%A7%C3%A3o-adm-houve-um-cancelamento/
      if (RespostaTEF.NSUTransacaoCancelada <> '') and
         (RespostaTEF.ImagemComprovante1aVia.Count > 0) then
      begin
        Atualizou := Venda.Pagamentos.CancelarPagamento( RespostaTEF.Rede,
                                                         RespostaTEF.NSU,
                                                         RespostaTEF.ValorTotal);
      end;
    end;
  end;

  if Atualizou then
    AtualizarPagamentosVendaNaInterface;
end;   

A grande questão é que quando se cancela um pagamento, via adm, na adquirente DEMO, tal evento nem é disparado. Já na adquirente Rede o evento acima é disparado e tal código funciona, descobri isso testando o roteiro de homologação que é com a Rede.

Porque isso ocorre?

Link to comment
Share on other sites

  • Consultores

Senão me engano nos vídeos do Daniel ele fala para usar sempre o adquirente DEMO pois os demais tem algo . mesmo que o roteiro peça use sempre o DEMO

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Membros Pro
7 horas atrás, Juliomar Marchetti disse:

Senão me engano nos vídeos do Daniel ele fala para usar sempre o adquirente DEMO pois os demais tem algo . mesmo que o roteiro peça use sempre o DEMO

Oi Juliomar...

Exato, esse é o problema, como eu disse acima usando o DEMO o código não funciona como está documentado.

Link to comment
Share on other sites

  • Consultores
1 hora atrás, doidopb disse:

Oi Juliomar...

Exato, esse é o problema, como eu disse acima usando o DEMO o código não funciona como está documentado.

Isso é de se esperar. Nem todas as informações são retornadas em modo "homologação".

Não sei explicar o motivo, mas me parece que sempre foi assim no TEF.

Minha sugestão é: faça os teste em homologação como são descritos. Se der tudo certo, então não tem muito que se preocupar.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Membros Pro
Agora, EMBarbosa disse:

Isso é de se esperar. Nem todas as informações são retornadas em modo "homologação".

Não sei explicar o motivo, mas me parece que sempre foi assim no TEF.

Olá meu amigo, sempre me socorrendo, kkkkkkkkkkkk

É, meu conhecimento em TEF é zero como eu disse no início de minha homologação com a PayGo, mas se é isso então beleza.

Mas é bom aguardarmos, pois o @Daniel Simoes estava falando comigo no Discord ontem e disse que ia dar uma verificada nesse comportamento.

Eu estranhei porque ele até criou um tópico sobre detectar o Cancelamento Via ADM, e logo na hora de testar e programar isso não funcionou. Acho que ele não criaria esse tópico se não funcionasse em homologação, mas aí só ele mesmo pode confirmar.

Link to comment
Share on other sites

  • Consultores
2 minutos atrás, doidopb disse:

@Daniel Simoes estava falando comigo no Discord ontem e disse que ia dar uma verificada nesse comportamento.

Eu estranhei porque ele até criou um tópico sobre detectar o Cancelamento Via ADM, e logo na hora de testar e programar isso não funcionou. Acho que ele não criaria esse tópico se não funcionasse em homologação, mas aí só ele mesmo pode confirmar.

Isso é bom aguardar mesmo.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Fundadores
  • Solution

O ambiente de testes "DEMO", é muito incompleto, em relação ao "REDE"... mas ambos são simulados, e podem apresentar algumas diferenças, em relação ao ambiente de produção...

Usando um TESTE com REDE, realmente o evento foi disparado e entrou no IF...

image.png

 

Já no DEMO, o Retorno do TEF, está com uma instrução que a transação NÃO requer confirmação (PWINFO_CNFREQ=0)

21/09/21 18:32:19:107 -   PWINFO_RESULTMSG=\x0DTRANSACAO AUTORIZADA
21/09/21 18:32:19:109 -   PWINFO_CNFREQ=0   // <----- AQUI -----

 

Sendo assim, o componente não tenta enviar o comando FinalizarTransacao, pois essa transação foi sinalizada como não requer a finalização (3a perna)

Como o FinalizarTransacao, não é chamado, o evento QuandoFinalizarTransacao, não é disparado...

 

Creio que em Produção, todas as adquirentes, deverão solicitar a Confirmação, de transações de Cancelamento.. afinal nessa transação, há a Impressão de comprovantes...

Mas caso deseje, talvez seja possível implementar uma verificação semelhante, no evento: QuandoFinalizarOperacao, que será disparado ao termino de toda e qualquer transação TEF

  • Like 1
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 comment
Share on other sites

  • Membros Pro
19 minutos atrás, Daniel Simoes disse:

O ambiente de testes "DEMO", é muito incompleto, em relação ao "REDE"... mas ambos são simulados, e podem apresentar algumas diferenças, em relação ao ambiente de produção...

Usando um TESTE com REDE, realmente o evento foi disparado e entrou no IF...

image.png

 

Já no DEMO, o Retorno do TEF, está com uma instrução que a transação NÃO requer confirmação (PWINFO_CNFREQ=0)

21/09/21 18:32:19:107 -   PWINFO_RESULTMSG=\x0DTRANSACAO AUTORIZADA
21/09/21 18:32:19:109 -   PWINFO_CNFREQ=0   // <----- AQUI -----

 

Sendo assim, o componente não tenta enviar o comando FinalizarTransacao, pois essa transação foi sinalizada como não requer a finalização (3a perna)

Como o FinalizarTransacao, não é chamado, o evento QuandoFinalizarTransacao, não é disparado...

 

Creio que em Produção, todas as adquirentes, deverão solicitar a Confirmação, de transações de Cancelamento.. afinal nessa transação, há a Impressão de comprovantes...

Mas caso deseje, talvez seja possível implementar uma verificação semelhante, no evento: QuandoFinalizarOperacao, que será disparado ao termino de toda e qualquer transação TEF

Então... Eu estou entrando nesse mundo do TEF agora e quero padronizar o máximo possível. O meu medo é em uma adquirente ser de um jeito e depois em produção descobrir que em outra muda algo importante.

Como ficaria uma verificação semelhante no evento QuandoFinalizarOperacao?

Link to comment
Share on other sites

  • Fundadores

o mesmo código.. você também recebe o RespostaTEF por lá... dentro dele, tem todo o Log do TEF, necessário para você fazer as suas verificações

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 comment
Share on other sites

  • Membros Pro
3 minutos atrás, Daniel Simoes disse:

o mesmo código.. você também recebe o RespostaTEF por lá... dentro dele, tem todo o Log do TEF, necessário para você fazer as suas verificações

Sim, eu testei... Mas por algum motivo o RespostaTEF.NSUTransacaoCancelada sempre retorna igual a vazio. Não sei se é outra limitação da adquirente Demo.

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.