Ir para conteúdo
  • Cadastre-se

dev botao

Transação VERO, retorna fica Pendente


Ver Solução Respondido por Renato Rubinho,
  • Este tópico foi criado há 495 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Realizo a transação através do DEMO_ACBR, Componente ACBrTEFD, com a propriedade de gerar o comprovante apos autorizado, mesmo assim permanece a situação como Pendente, porem gera o comprovante. Isso ocorre na VERO, em produção. Durante os testes em homologação está tudo ok.

image.png.abb22bb4530869f7c2bdab86ceb10dd9.png

Imagem

 

  • Fundadores
Postado

@valter_kettner,

Não consegui reproduzir o problema, pode por favor passar um passo a passo, de qual a sequencia para chegar até o problema ?

Lembrando que só temos PDCs de homologação para testes...

Mas o fato de mudar a adquirente, não muda em nada a lógica da aplicação...

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.

  • Fundadores
Postado

Eu realente preciso do Log, gerado pelo ACBrTEFAPI e pela PayGoWeb...

O Log nos dirá o que a aplicação enviou para a TEF House

13 minutos atrás, valter_kettner disse:

Olha na imagem acima, do exemplo, no status que retorna. Nos meus testes fica como Confirmada e no cliente fica Pendente. Entendeu?

Não compreendi plenamente...

Você diz que fica pendente, no Portal do Cliente da Vero ??

Se nos Logs estiver claro que a aplicação está enviando a Confirmação, então provavelmente o problema é na Adquirente...

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.

Postado

Na vero realiza a transação tudo ok. No exemplo do ACBR, nas primeiras imagens que mandei.. ali no grid quando insere o retorno como NSU... Status.. CNPJ.. operadora, fica como PENDENTE.

Log.rar

Na imagem, assinalei onde fica a pendencia. Nos teste de homologação, sempre fica aprovado, só lá muitas vezes fica assim PENDENTE, mas a transação ocorre certa.

Sem título.png

  • Moderadores
Postado
Em 14/07/2023 at 17:10, valter_kettner disse:

Na vero realiza a transação tudo ok. No exemplo do ACBR, nas primeiras imagens que mandei.. ali no grid quando insere o retorno como NSU... Status.. CNPJ.. operadora, fica como PENDENTE.

Log.rar 93.8 kB · 1 download

Na imagem, assinalei onde fica a pendencia. Nos teste de homologação, sempre fica aprovado, só lá muitas vezes fica assim PENDENTE, mas a transação ocorre certa.

Sem título.png

mas isso dai é o exemplo do componente

como está na sua aplicação tu manda a confirmação?

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Postado

Eu me baseei no exemplo para fazer minha aplicação e nela também retorna como pendente no retorno do componente. O mais estranho que em modo de homologação não ocorre, fica Confirmado. O que será que poderia ser?

Em 14/07/2023 at 17:00, Daniel Simoes disse:

Eu realente preciso do Log, gerado pelo ACBrTEFAPI e pela PayGoWeb...

O Log nos dirá o que a aplicação enviou para a TEF House

Não compreendi plenamente...

Você diz que fica pendente, no Portal do Cliente da Vero ??

Se nos Logs estiver claro que a aplicação está enviando a Confirmação, então provavelmente o problema é na Adquirente...

Recebeu os logs? Chegou a verificar 

  • Fundadores
Postado

@valter_kettner,

Analisando nos Fontes, ela só ficaria Pendente, se ela não tivesse sido confirmada...

procedure TFormPrincipal.AtualizarPagamentosVendaNaInterface;
var
  i, ARow: Integer;
  AResp: TACBrTEFResp;
begin
  sgPagamentos.RowCount := 1;
  for i := 0 to Venda.Pagamentos.Count-1 do
  begin
    ARow := sgPagamentos.RowCount;
    sgPagamentos.RowCount := sgPagamentos.RowCount + 1;

    with Venda.Pagamentos[i] do
    begin
      if not Cancelada then
      begin
        AResp := AcharTransacaoTEFPendente(i);
        if Assigned(AResp) then
          Confirmada := AResp.CNFEnviado;   // <------------- AQUI -------------
      end;

      sgPagamentos.Cells[0, ARow] := FormatFloat('000', ARow);
      sgPagamentos.Cells[1, ARow] := TipoPagamento + ' - ' + DescricaoTipoPagamento(TipoPagamento);
      sgPagamentos.Cells[2, ARow] := FormatFloatBr(ValorPago);
      sgPagamentos.Cells[3, ARow] := NSU;
      sgPagamentos.Cells[4, ARow] := Rede;
      sgPagamentos.Cells[5, ARow] := ifthen(Cancelada, 'Cancelada', ifthen(Confirmada, 'Confirmada', 'Pendente'));
      sgPagamentos.Cells[6, ARow] := RedeCNPJ;
    end;
  end;

  AtualizarTotaisVendaNaInterface;
end;

 

Mas no seu Log, temos o envio do CNF...

Citar

-- 14/07 14:45:28:570 - 000-000 = CNF
001-000 = 53045
010-000 = BANRISUL
012-000 = 00822493
027-000 = 14072023144500822493
999-999 = 0

 

Consegue ir com o Debug e verificar se ele entra nesse IF

      if not Cancelada then
      begin
        AResp := AcharTransacaoTEFPendente(i);
        if Assigned(AResp) then
          Confirmada := AResp.CNFEnviado;
      end;   

- Se AResp retornar Nulo de AcharTransacaoTEFPendente, pode ser o problema...

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.

Postado

Entra sim. O mais estranho que só ocorre em Produção na Vero, em algumas vezes retornou como Confirmado, mas 90% das vezes não, ficando pendente. N seria algum tratamento no retorno, algo específico da Vero ou um código de confirmação diferente?

E a transação é confirmada Sim, tanto que consultei extrato do cartão e consta o pagamento 

  • Fundadores
Postado

Minha teoria, é que o NSU possa estar diferente (sem zeros a esquerda, por exemplo).. e esse IF, falhe

    if (ACBrTEFD1.RespostasPendentes[i].Rede = Venda.Pagamentos[IndicePagto].Rede) and
       (ACBrTEFD1.RespostasPendentes[i].NSU = Venda.Pagamentos[IndicePagto].NSU) and
       (ACBrTEFD1.RespostasPendentes[i].ValorTotal = Venda.Pagamentos[IndicePagto].ValorPago) then
      Result := ACBrTEFD1.RespostasPendentes[i];      

 

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

  • Consultores
Postado
18 minutos atrás, Daniel Simoes disse:
(ACBrTEFD1.RespostasPendentes[i].ValorTotal = Venda.Pagamentos[IndicePagto].ValorPago)

Essa condição com Double também é "perigosa", pois algum valor irrisório mas casas decimais pode estar gerando uma diferença.

Talvez um RoundABNT aí seria interessante.

  • Curtir 1
  • Consultores
  • Solution
Postado
if (ACBrTEFD1.RespostasPendentes[i].Rede = Venda.Pagamentos[IndicePagto].Rede) and
       (ACBrTEFD1.RespostasPendentes[i].NSU = Venda.Pagamentos[IndicePagto].NSU) and
       (RoundABNT(ACBrTEFD1.RespostasPendentes[i].ValorTotal,2) = RoundABNT(Venda.Pagamentos[IndicePagto].ValorPago,2)) then
      Result := ACBrTEFD1.RespostasPendentes[i];      

Teste novamente este mesmo valor e confirme se ele sempre apresenta o problema.

Depois teste colocando o RoundABNT()

Confirme também a sugestão do Daniel, verificando se o NSU está vindo com a mesma máscara.

  • Obrigado 1
  • Fundadores
Postado
6 minutos atrás, valter_kettner disse:

Vou testar no cliente. Algumas funcionaram normalmente. Em qual .pas tenho que fazer essa alteração?

No caso do Demo, está na Unit Principal, método TFormPrincipal.AcharTransacaoTEFPendente

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.

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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