Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Bom dia pessoal!
Tivemos um caso que aconteceu no cliente. Ocorre o seguinte: Foi realizado o pagamento via VERO, porém, o cliente usou um cartão indevido e deseja cancelar esse e pagar com outro cartão por exemplo, então resolveram fazer o cancelamento desse pagamento. Mas aparece a caixa de diálogo em tela solicitando o EC. Eis que começa o problema, pois o EC só temos ao finalizar a venda, e emitir o comprovante, até a impressão do mesmo, não temos o código do EC, sendo assim, não é possível cancelar o pagamento.

Obs1: Utilizando a DEMO, em teste local, não solicita o EC.
Obs2: No log de componente temos a informação PWINFO_VIRTMERCH que guarda o EC, porém, onde devo alimentar essa informação para não solicitar em tela.
Obs3: Tentei conversar com o pessoal do Discord, mas sem sucesso, pois confundiram desfazimento com cancelamento, ou que solicita o EC para não haver cancelamento indevido, mas creio que não deveria ficar  a cargo de nossos clientes informar esse código e sim o sistema alimentar isso no cancelamento do pagamento.

Agradeço a ajuda.

 

EC tef.png

comms_250812.log log componente.log

Postado
3 minutos atrás, Daniel Simoes disse:

Se sua empresa tem Contrato de Distribuição TEF com o ACBr,

Por favor crie um Ticket em 

https://suporte.projetoacbr.com.br

 

Logs de Clientes finais não devem ser compartilhados publicamente devido a LGPD

Bem, sao logs locais de homologacao, mas concordo, entao como deleto esse post por favor?

Postado
6 minutos atrás, Daniel Simoes disse:

Se nao forem Logs Homologação, podemos manter...

Logo o @Pedro Frayman, nos ajuda na análise 

Eu estava conversando com o Pedro também, pois o Luan solicitou os logs mas nao conseguiu dar continuidade.
Achei interessante abri um forum alem do discord, para que se outros tiverem esse problema, possam ver a solucao. Caso encontrarmos.

  • Curtir 1
  • Consultores
Postado
1 hora atrás, Possamai disse:

Bom dia pessoal!
Tivemos um caso que aconteceu no cliente. Ocorre o seguinte: Foi realizado o pagamento via VERO, porém, o cliente usou um cartão indevido e deseja cancelar esse e pagar com outro cartão por exemplo, então resolveram fazer o cancelamento desse pagamento. Mas aparece a caixa de diálogo em tela solicitando o EC. Eis que começa o problema, pois o EC só temos ao finalizar a venda, e emitir o comprovante, até a impressão do mesmo, não temos o código do EC, sendo assim, não é possível cancelar o pagamento.

Obs1: Utilizando a DEMO, em teste local, não solicita o EC.
Obs2: No log de componente temos a informação PWINFO_VIRTMERCH que guarda o EC, porém, onde devo alimentar essa informação para não solicitar em tela.
Obs3: Tentei conversar com o pessoal do Discord, mas sem sucesso, pois confundiram desfazimento com cancelamento, ou que solicita o EC para não haver cancelamento indevido, mas creio que não deveria ficar  a cargo de nossos clientes informar esse código e sim o sistema alimentar isso no cancelamento do pagamento.

Agradeço a ajuda.

 

EC tef.png

comms_250812.logUnavailable log componente.logUnavailable

Bom dia, tudo bem?
 

Você precisa ler a informação retornada na transação em RespostaTEF.LeInformacao(PWINFO_VIRTMERCH,0).AsString ), consistir num buffer temporário por exemplo, e em seguida enviar no seu cancelamento. Podendo seguir a lógica e exemplo (precisa implementar a leitura desse parâmetro do EC antes) abaixo:

function CancelarTransacao(
      const NSU,                    // AResp.NSU                     PWINFO_AUTEXTREF
      CodigoAutorizacaoTransacao: string;        // AResp.CodigoAutorizacaoTransacao         PWINFO_AUTHCODE
      DataHoraTransacao: TDateTime;            // AResp.DataHoraTransacaoLocal            PWINFO_DATETIME
      Valor: Double;                    // AResp.ValorTotal                PWINFO_TOTAMNT
      const CodigoFinalizacao: string = '';        // Parâmetro Opcional, AResp.Finalizacao    PWINFO_AUTLOCREF
      const Rede: string = ''): Boolean;        // Parâmetro Opcional, AResp.Rede        PWINFO_AUTHSYST

Mas isso vai funcionar somente para a adquirente atual, caso o cliente utilize alguma outra adquirente que peça outro dado do comprovante será necessário mapear essa informação, e seguir toda a lógica acima novamente mas com o novo parâmetro de acordo com a necessidade dessa adquirente.

Att.

Postado
8 minutos atrás, Pedro Frayman disse:

Bom dia, tudo bem?
 

Você precisa ler a informação retornada na transação em RespostaTEF.LeInformacao(PWINFO_VIRTMERCH,0).AsString ), consistir num buffer temporário por exemplo, e em seguida enviar no seu cancelamento. Podendo seguir a lógica e exemplo (precisa implementar a leitura desse parâmetro do EC antes) abaixo:

function CancelarTransacao(
      const NSU,                    // AResp.NSU                     PWINFO_AUTEXTREF
      CodigoAutorizacaoTransacao: string;        // AResp.CodigoAutorizacaoTransacao         PWINFO_AUTHCODE
      DataHoraTransacao: TDateTime;            // AResp.DataHoraTransacaoLocal            PWINFO_DATETIME
      Valor: Double;                    // AResp.ValorTotal                PWINFO_TOTAMNT
      const CodigoFinalizacao: string = '';        // Parâmetro Opcional, AResp.Finalizacao    PWINFO_AUTLOCREF
      const Rede: string = ''): Boolean;        // Parâmetro Opcional, AResp.Rede        PWINFO_AUTHSYST

Mas isso vai funcionar somente para a adquirente atual, caso o cliente utilize alguma outra adquirente que peça outro dado do comprovante será necessário mapear essa informação, e seguir toda a lógica acima novamente mas com o novo parâmetro de acordo com a necessidade dessa adquirente.

Att.

Ola Pedro
Certo, realmente, após gravar os logs de componentes(nao estavamos fazendo isso) encontrei a varialvel PWINFO_VIRTMERCH.

Hoje ja utilizo a logica do CancelarTransacao, e esta funcionando ok. Nao entendi onde voce sugere informar o valor de PWINFO_VIRTMERCH, no lugar de PWINFO_AUTEXTREF?
Para a NSU ja estou passando um ID da transacao. Eu achava que teria algo como CODIGOEC := xxx... assim como existe DadosEstabelecimento.CNPJ := xxx.

Postado
4 horas atrás, Daniel Simoes disse:

Veja se esse tópico, ajuda...

 

Agradeço a intenção Daniel, porém conforme cita no post: "Se você usa o novo componente, ACBrTEFAPI, use o método abaixo: CancelarTransacao...".
E estou fazendo isso mesmo:
    FACBrTEFAPI.CancelarTransacao(aPagamento.NSU,
                                  aPagamento.CodigoAutorizacao,
                                  aPagamento.DataHora,
                                  aPagamento.Valor,
                                  aPagamento.CodRef,
                                  aPagamento.Rede);

Minha rotina de cancelamento está funcionando, seria somente para esse caso que não consigo seguir.
Consegui uma solução paliativa, criei na tela de pagamento, um botão para impressão do comprovante, antes somente era impresso ao final da venda, e não ao final do pagamento, mas pelo menos o usuário consegue imprimir, visualizar o código EC no comprovante, e ao cancelar digitar na caixa de dialogo que é apresentada.
Realmente gostaria de poder informar de forma automatizada não deixando a cargo do usuário imprimir, anotar o código e depois informar, mas quem não tem cão...😅

  • Fundadores
Postado

O código "EC", realmente é uma informação que está apenas no comprovante da adquirente...

Então não há como salvar na aplicação, pois não é retornado de forma estruturada, no Log do TEF, no momento da Venda...

A solicitação dessa informação, depende da adquirente... Nem todas devem solicitar isso...

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.

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