Ir para conteúdo
  • Cadastre-se

antonio.carlos

Consultores
  • Total de ítens

    2.206
  • Registro em

  • Última visita

  • Days Won

    2

Tudo que antonio.carlos postou

  1. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
  2. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  3. @syspan bom dia ! Veja se este tópico pode te ajudar:
  4. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  5. log você precisa configurar também: https://acbr.sourceforge.io/ACBrLib/Geral.html Provavelmente você esta utilizando ACBrLib na versão DEMO, ela só permite emissão de DFe para ambiente de homologação.
  6. @leandroalves.desenvolvedor pode por favor anexar log ACBrLib.. Veja se não esta configurado ambiente homologação https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html
  7. @AG Sistemas boa tarde ! O exemplo ainda esta sendo implementado, logo terá versão para Delphi, mas por enquanto sem previsão.
  8. você consultar documentação e implementar: https://acbr.sourceforge.io/ACBrLib/SobreaACBrLibNFe.html Por enquanto só temos exemplo PosPrinter, logo terá para outros DFe's
  9. Obrigado pela contribuição, em breve será validada para possível inclusão ao svn - #TK-2369
  10. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
  11. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
  12. como foi falado no vídeo este retorno não vem do TEF e sim dos fontes ACBr, o mesmo foi implementado no POSTEF e demonstrado no vídeo, você pode implementar na sua aplicação estudando e consultando o exemplo.
  13. @netsoftclaudio bom dia !! Chegou a ver este vídeo em nosso canal ?
  14. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  15. @Heliomar Alves boa tarde ! você não baixou o exemplo do SVN por completo.. Veja este tópico: tópico fala sobre a biblioteca ACBrLib e como configurar para o VB6.
  16. Olá pessoal, estou criando este tópico para orientar como utilizar as Bandeiras Vouchers no TEF Dedicado (PayGo Web). Cartão do tipo benefícios (alimentação, refeição, pass), são conhecidos como Vouchers. Antes de qualquer tentativa de transacionar um voucher no estabelecimento, precisamos validar algumas informações: 1 - Estabelecimento precisa ter contrato com a empresa de voucher que deseja utilizar, isso é uma exigência do próprio fornecedor de voucher, para que o estabelecimento possa aceitar a bandeira em sua região. Note que existem modalidades até em casos de Voucher, ramos de negócios são separados por tipos, ALIMENTAÇÃO, REFEIÇÃO, PASS, PRESENTE, CAR, SALÁRIO, NATAL, CULTURA, etc. Seu cliente escolhe a modalidade que encaixa no negócio que ele atua: 2 - A partir disso, o estabelecimento precisa habilitar a compatibilidade com a(s) adquirente (s). Lembrando a Regra de negócio: a adquirente decide se a bandeira tem compatibilidade no TEF, a negociação parte dela, não pela Integradora PayGo. Quando o estabelecimento habilitar a compatibilidade do voucher tem que informar que vai transacionar pelo TEF Dedicado PayGoWeb. Exemplo: Adquirente CIELO aceita o voucher Alelo Alimentação pelo TEF Dedicado PayGoWeb. Observação: Isso é um contrato entre Voucher e Adquirente, então pode ocorrer mudanças , como por exemplo, VR Refeição não passa mais na REDE pois houve encerramento de contrato entre elas , mas pode ser aceito por outra(s) adquirente(s), como a CIELO. 3 - Se o estabelecimento estiver com o cadastro correto no voucher e habilitado na adquirente, precisamos informar a forma de pagamento correta, no TEF Dedicado (PayGoWeb) para pagamentos com voucher informar PWINFO_CARDTYPE = 04. Veja exemplo no componente ACBrTEFAPI: procedure TFormPrincipal.AdicionarPagamento(const Indice: String; AValor: Double ); var Ok, TemTEF: Boolean; Modalidade: TACBrTEFModalidadePagamento; CartoesAceitos: TACBrTEFTiposCartao; ReajusteValor: Double; IndicePagto: LongInt; begin Ok := False; TemTEF := False; IndicePagto := StrToIntDef(Indice, 0); try // ** NOTA ** // Usa '01' como Indice de Forma de Pagamento de ECF, para todas as operações TEF, // para evitar que o ACBrTEFD tente separar os Comprovantes por Forma de Pagamento Modalidade := tefmpNaoDefinido; CartoesAceitos := []; TemTEF := (IndicePagto >= 2) and (IndicePagto <= 5); case IndicePagto of 2: Modalidade := tefmpCheque; 3: begin Modalidade := tefmpCartao; CartoesAceitos := [teftcCredito] end; 4: begin Modalidade := tefmpCartao; CartoesAceitos := [teftcDebito] end; 5: Modalidade := tefmpCarteiraVirtual; 6: begin Modalidade := tefmpCartao; CartoesAceitos := [teftcVoucher] <--------------------- AQUI end; end; if TemTEF then begin // -- Exemplo, usando TypeCast, para inserir Propriedades direto na Classe de TEF -- // if ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb then begin with TACBrTEFAPIClassPayGoWeb(ACBrTEFAPI1.TEF) do begin //TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_AUTHSYST] := 'DEMO'; // Autorizador //TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_FINTYPE] := '2'; // 01: à vista, 2: parcelado //TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_INSTALLMENTS] := '3'; // Parcelas end; end; Ok := ACBrTEFAPI1.EfetuarPagamento( IntToStr(Venda.NumOperacao), AValor, Modalidade, CartoesAceitos, tefmfAVista ); Ok := Ok and ACBrTEFAPI1.UltimaRespostaTEF.Sucesso and ACBrTEFAPI1.UltimaRespostaTEF.TransacaoAprovada; end else Ok := True; finally StatusVenda := stsEmPagamento; end; // -- Exemplo de como capturar os Erros retornados pela API do TEF PayGoWeb -- // (* if not OK then begin if (ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb) then begin CodErro := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(PWINFO_RET).AsInteger; MsgErro := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(PWINFO_RESULTMSG).AsBinary; ShowMessage('Erro: '+IntToStr(CodErro)+' - '+Trim(MsgErro)); end; end; *) if Ok then begin with Venda.Pagamentos.New do begin TipoPagamento := Indice; ValorPago := AValor; if TemTEF then begin NSU := ACBrTEFAPI1.UltimaRespostaTEF.NSU; Rede := ACBrTEFAPI1.UltimaRespostaTEF.Rede; RedeCNPJ := ACBrTEFAPI1.UltimaRespostaTEF.NFCeSAT.CNPJCredenciadora; // Calcula a Diferença do Valor Retornado pela Operação TEF do Valor que // Informamos no CRT/CHQ ReajusteValor := RoundTo(Double(ACBrTEFAPI1.UltimaRespostaTEF.ValorTotal - ValorPago), -2); Saque := ACBrTEFAPI1.UltimaRespostaTEF.Saque; if (Saque > 0) then begin // Se houve Saque na operação TEF, devemos adicionar no ValorPago, // para que o Saque conste como Troco ValorPago := ValorPago + Saque end else if (ReajusteValor > 0) then begin // Se não é Saque, mas houve acréscimo no valor Retornado, devemos lançar // o Reajuste como Acréscimo na venda Venda.TotalAcrescimo := Venda.TotalAcrescimo + ReajusteValor; end; Desconto := ACBrTEFAPI1.UltimaRespostaTEF.Desconto; if (Desconto > 0) then begin // Se houve Desconto na Operação TEF, devemos subtrair do ValorPago // e lançar um Desconto no Total da Transacao ValorPago := ValorPago - Desconto; Venda.TotalDesconto := Venda.TotalDesconto + Desconto; end else if (ReajusteValor < 0) then begin // Se não é Desconto, mas houve redução no Valor Retornado, devemos // considerar a redução no ValorPago, pois a Adquirente limitou o // valor da Operação, a um máximo permitido... Deverá fechar o cupom, // com outra forma de Pagamento ValorPago := ValorPago + ReajusteValor; end; end else Confirmada := True; end; AtualizarPagamentosVendaNaInterface; if (Venda.TotalPago >= Venda.TotalVenda) then FinalizarVenda; end; end; Veja exemplo no componente ACBrTEFD: procedure TFormPrincipal.AdicionarPagamento(const Indice: String; AValor: Double ); var Ok, TemTEF: Boolean; ReajusteValor: Double; UltResp: TACBrTEFResp; procedure InformarParametrosVoucher; begin if (ACBrTEFD1.GPAtual = gpPayGoWeb) then begin ACBrTEFD1.TEFPayGoWeb.ParametrosAdicionais.ValueInfo[PWINFO_PAYMNTTYPE]:='1'; ACBrTEFD1.TEFPayGoWeb.ParametrosAdicionais.ValueInfo[PWINFO_CARDTYPE]:='04'; <----------------------- AQUI end; end; begin Ok := False; TemTEF := False; FIndicePagto := Indice; if (ACBrTEFD1.GPAtual = gpPayGoWeb) then ACBrTEFD1.TEFPayGoWeb.ParametrosAdicionais.Clear else if (ACBrTEFD1.GPAtual = gpCliSiTef) then ACBrTEFD1.TEFCliSiTef.OperacaoCRT := 0; try // ** NOTA ** // Usa '01' como Indice de Forma de Pagamento de ECF, para todas as operações TEF, // para evitar que o ACBrTEFD tente separar os Comprovantes por Forma de Pagamento else if (Indice = '06') then // 05-VALE REFEICAO begin InformarParametrosVoucher; <--------------------------- AQUI Ok := ACBrTEFD1.CRT(AValor, '01'); TemTEF := True; end else Ok := True; // Pagamentos não TEF finally StatusVenda := stsEmPagamento; end; if Ok then begin with Venda.Pagamentos.New do begin TipoPagamento := Indice; ValorPago := AValor; if TemTEF then begin UltResp := ACBrTEFD1.RespostasPendentes[ACBrTEFD1.RespostasPendentes.Count-1]; NSU := UltResp.NSU; Rede := UltResp.Rede; RedeCNPJ := UltResp.NFCeSAT.CNPJCredenciadora; // Calcula a Diferença do Valor Retornado pela Operação TEF do Valor que // Informamos no CRT/CHQ ReajusteValor := RoundTo(Double(UltResp.ValorTotal - ValorPago), -2); Saque := UltResp.Saque; if (Saque > 0) then begin // Se houve Saque na operação TEF, devemos adicionar no ValorPago, // para que o Saque conste como Troco ValorPago := ValorPago + Saque end else if ReajusteValor > 0 then begin // Se não é Saque, mas houve acréscimo no valor Retornado, devemos lançar // o Reajuste como Acréscimo na venda Venda.TotalAcrescimo := Venda.TotalAcrescimo + ReajusteValor; end; Desconto := UltResp.Desconto; if Desconto > 0 then begin // Se houve Desconto na Operação TEF, devemos subtrair do ValorPago // e lançar um Desconto no Total da Transacao ValorPago := ValorPago - Desconto; Venda.TotalDesconto := Venda.TotalDesconto + Desconto; end else if (ReajusteValor < 0) then begin // Se não é Desconto, mas houve redução no Valor Retornado, devemos // considerar a redução no ValorPago, pois a Adquirente limitou o // valor da Operação, a um máximo permitido... Deverá fechar o cupom, // com outra forma de Pagamento ValorPago := ValorPago + ReajusteValor; end; end else Confirmada := True; end; AtualizarPagamentosVendaNaInterface; if (Venda.TotalPago >= Venda.TotalVenda) then FinalizarVenda; end; end; 4 - Se continuar recusando ou dando erros durante a venda... Faça uma carga de tabelas no Muxx manualmente na PayGo, contate a Central de suporte do TEF PayGo, podem receber atendimento gratuito e funciona 24 horas por dia e 7 dias por semana! Contato PayGo Ligação: 3003-9968 (não é necessário DDD). Ou via WhatsApp: (11) 3003-6615 Importante sempre informar o *CNPJ do estabelecimento*, sem pontos ou traços. Ex: 12345678000100 , e o tipo do TEF ativado na automação: TEF Dedicado PayGo Web . Se você já parceiro TEF do Projeto ACBr pode esclarecer suas dúvidas nos canais exclusivos ACBR TEF #tefproducao em nosso Discord. https://www.projetoacbr.com.br/discord E se ainda não é, O Projeto ACBr é Distribuidor do TEF PayGo.. Seja nosso parceiro, preencha este formulário, https://projetoacbr.com.br/tef/ por favor, com algumas perguntas rapidinhas, que nosso Consultor comercial entrara em contato explicar a parceria.
  17. Exemplo do SVN é uma coisa, download da biblioteca ACBrLib é outra.. você faz download da biblioteca.. feito isso você vai precisar copiar a biblioteca para o exemplo conforme o tópico de configuração .. pronto Qual linguagem de programação você vai utilizar para ACBrLibBoleto ?
  18. exato, ai estão os exemplos em C#, Java, VB6 e etc. para utilizar a biblioteca você tem que fazer download dela no link que postei acima e ai usar o tópico de como configurar a biblioteca conforme sua linguagem de programação.
  19. Veja este tópico: https://www.projetoacbr.com.br/forum/topic/64887-bem-vindo-a-acbrlib/
  20. Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-2338
  21. respondido no discord: https://discord.com/channels/798697718800318484/798966420243349527/938529885826191400
  22. Acabei de testar exemplo do svn, AnyCPU. Seu computador é 32 ou 64 ? se for 32 e rodar em anycpu, você precisa utilizar ACBrLibNFe32. se seu computador for 64 você tem que usar ACBrLibNFe64.
  23. Você tem que fazer download da versão pro do acbrlib, neste link: e substituir a dll demo pela pro no exemplo.
×
×
  • 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.