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á 295 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores

Como assim?

tu está usando o exemplo de uso do componente para efetuar transações TEF em seu cliente?

primeiro que o exemplo não foi feito com essa finalidade.

e não deve estar enviando o CNF pra confirmar a transação

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

  • Fundadores

@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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Por favor anexe o Log, dessa transação...

Quando você fala "fica pendente"... onde você visualiza essa informaçã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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

  • Moderadores
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_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

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 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

@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.

Link para o comentário
Compartilhar em outros sites

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 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

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.

Link para o comentário
Compartilhar em outros sites

  • Consultores
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
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution
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
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 295 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...