Ir para conteúdo
  • Cadastre-se

dev botao

Contribuição TEF API - elgin


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

Recommended Posts

Postado

Boa tarde.

Fiz a implementação de um api TEF para ELgin, gostaria de saber como posso contribuir para que 
possa ser inserido no projeto da ACBR. 

Já fiz toda validação junto a ELgin e obtive sucesso!

Criei tudo nos moldes já existentes.

Basicamente o que foi feito : 
 * Um novo tipo de provedor chamado "ACBrTEFAPiElgin" 
 ** Criei units "ACBrTEFAPiElgin.pas" e "ACBrTEFAPiELginComum.pas";  
 ** Fiz os ajuste necessario nas units "ACBrTEFAPi.pas", "ACBrTEFAPiComum.pas" e "ACBrTEFComum"
 ** Adicionei o TEFAPiElgin no ACBr_TEFD.dpk 
 
todos os arquivos anexos  TefApi_Elgin-MURILO.rar

Poderiam me ajudar por favor.

  • Curtir 3
  • Consultores
Postado

Boa tarde,

Criada a TK-4578 para validação.

Obrigado pela contribuição.

  • Curtir 2
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • 1 mês depois ...
Postado
Em 11/10/2023 at 14:20, Alexandre de Paula disse:

Boa tarde,

Criada a TK-4578 para validação.

Obrigado pela contribuição.

bom dia, tem como acompanha o processo de validação ? 

 

  • 3 semanas depois ...
  • 1 mês depois ...
  • Moderadores
Postado
Em 11/10/2023 at 15:00, MuriloS.A disse:

Boa tarde.

Fiz a implementação de um api TEF para ELgin, gostaria de saber como posso contribuir para que 
possa ser inserido no projeto da ACBR. 

Já fiz toda validação junto a ELgin e obtive sucesso!

Criei tudo nos moldes já existentes.

Basicamente o que foi feito : 
 * Um novo tipo de provedor chamado "ACBrTEFAPiElgin" 
 ** Criei units "ACBrTEFAPiElgin.pas" e "ACBrTEFAPiELginComum.pas";  
 ** Fiz os ajuste necessario nas units "ACBrTEFAPi.pas", "ACBrTEFAPiComum.pas" e "ACBrTEFComum"
 ** Adicionei o TEFAPiElgin no ACBr_TEFD.dpk 
 
todos os arquivos anexos  TefApi_Elgin-MURILO.rar

Poderiam me ajudar por favor.

note que tu usou versão mais nova do delphi e esqueceu que suportamos delphi 7 e lazarus

se puder revise seu código

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
 

 

  • Fundadores
Postado

Algumas observações...

  • Em ACBrTEFAPI.pas, nos métodos: TACBrTEFAPI.GetPathDLL e TACBrTEFAPI.SetPathDLL, eles estão comentados para a classe de TEF PayGo... há algum motivo ?

Acho que o "case"  também não é bacana... poderíamos refatorar para criar um método virtual nas classes de TEF, e chamarmos ela, usando o Polimorfismo

 

  • A modificação desse enumerado, incluindo tefmtdPIX.
  TACBrTEFAPIMetodo = (tefmtdNenhuma, tefmtdPagamento, tefmtdCancelamento, tefmtdAdministrativa, tefmtdPIX);

Tenho receio que isso gere problemas nas implementações existentes, pois para todos os demais TEF existentes, o PIX é uma opção de Pagamento, acessível por tefmtdPagamento.

A inclusão desse novo enumerado, poderá gerar confusão e erro nos demais TEFs... As opções são:

- Não incluir o tefmtdPIX e de alguma forma na classe da Elgin, distinguirmos quando o pagamento é PIX (talvez com alguma outra informação ou parâmetro do Pagamento)

- Tratar o tefmtdPIX em todas as demais classes de TEF, para igualar ela a tefmtdPagamento  (isso não é muito bacana)

 

  • O mesmo ocorre com a modificação do enumerado TACBrTEFModalidadePagamento com a inclusão de tefmpPIX
TACBrTEFModalidadePagamento = ( tefmpNaoDefinido,
                                  tefmpCartao,
                                  tefmpDinheiro,
                                  tefmpCheque,
                                  tefmpCarteiraVirtual,
                                  tefmpPIX );

Para todos os demais TEFs, PIX se enquadra em tefmpCarteiraVirtual

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

Bom dia, Daniel, 

   

  • Em ACBrTEFAPI.pas, nos métodos: TACBrTEFAPI.GetPathDLL e TACBrTEFAPI.SetPathDLL, eles estão comentados para a classe de TEF PayGo... há algum motivo ?
    • CliSiTEF estava implementado resolvi não altera nada no PayGo, para evitar conflitos... irei alterar o case para utiliza Polimorfismo que é realmente bem mais adequado. 
  •     Enums  
    • Irie remove TACBrTEFAPIMetodo.tefmpPIX   que realmente não faz sentido; 
    •  @Daniel Simoes sobre gostaria que você traze a sua sugerisse que seria  menos confusso
    • no nosso sistema informamos o meio de pagamento que irá na Nfe/NFCe (tPag) no cadastro forma de pagamento e na hora de gerar venda utilizo essa tag para informar se seria um TEF de cartão debito/ credito, 18- carteira Digital, 17 - Pagamento Instantânio(PIX)  e etc...  (https://documentacao.senior.com.br/exigenciaslegais/materias/erp/2021/2021-03-26-nt-2020-006-versao-1-20-divulgada-tabelas-externas-dos-meios-de-pagamentos-e-cartoes-de-debito-credito.htm)   
      • Eu poderia manter o TACBrTEFModalidadePagamento.tefmpPIX se ajusta os trechos de código abaixo: 
        • function TACBrTEFAPIClassCliSiTef.EfetuarPagamento(...): Boolean;
          begin
            ... 
            case Modalidade of
              tefmpDinheiro:
                Op := 0;    // Pagamento genérico
              tefmpCheque:
                Op := 1;    // Cheque
              tefmpCarteiraVirtual,
              tefmpPIX:
                Op := 122;  // Venda via Carteira Digital
             else
            	...
             end; 
            ...
          end;

           

        • function TACBrTEFAPIClassPayGoWeb.EfetuarPagamento(...)
          begin
          	...
              case Modalidade of
                tefmpCartao: ModalidadeInt := 1;
                tefmpDinheiro: ModalidadeInt := 2;
                tefmpCheque: ModalidadeInt := 4;
                tefmpCarteiraVirtual, 
                tefmpPIX: ModalidadeInt := 8;
              else
                ModalidadeInt := 0;
              end;
              if (ModalidadeInt > 0) then
                PA.ValueInfo[PWINFO_PAYMNTTYPE] := IntToStr(ModalidadeInt);
          	...
          end; 
      • Ou posso remove tefmpPIX  e utilizar tefmpCarteiraVirtual com combinação do  TACBrTEFModalidadeFinanciamento ou TACBrTEFTipoCartao podendo criar : 
        •  TACBrTEFTipoCartao.teftcPIX;
        •  TACBrTEFModalidadeFinanciamento.tefmfPagamentoInstantanio; 
Postado

Boa tarde, corrigido PathDll para usar Polimorfismo;  

Remove o enums

TACBrTEFAPIMetodo.tefmpPIX  e TACBrTEFAPIMetodo.tefmtdPIX 

  • Curtir 1
  • 3 semanas depois ...
Postado

Boa tarde pessoal, @Daniel Simoes @MuriloS.A @Alexandre de Paula @Italo Giurizzato Junior

Estou implementando o TEF com a API elgin modo ativo via dll, encontrei esse tópico, gostaria de verificar com os colegas se vai ficar disponível no repositório oficial.

@MuriloS.A como colaborador da opção está seguro já está utilizando em produção, é possível disponibilizar a ultima versão?

Obrigado pela atenção de todos.

  • Curtir 2
  • Moderadores
Postado
1 hora atrás, Alysson Rengel disse:

Boa tarde pessoal, @Daniel Simoes @MuriloS.A @Alexandre de Paula @Italo Giurizzato Junior

Estou implementando o TEF com a API elgin modo ativo via dll, encontrei esse tópico, gostaria de verificar com os colegas se vai ficar disponível no repositório oficial.

@MuriloS.A como colaborador da opção está seguro já está utilizando em produção, é possível disponibilizar a ultima versão?

Obrigado pela atenção de todos.

tu pode pegar os arquivo e aplicar localmente para testar e verificar se funcionou

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

 

  • 3 semanas depois ...
  • Membros Pro
Postado (editado)

Olá, @MuriloS.A!

Executei o patch que você disponibilizou no último anexo deste tópico. Ao efetuar uma venda, a transação é aprovada.
No entanto, não imprime os comprovantes, pois a resposta, nos campos dos comprovantes, não possui nenhuma informação, embora os logs estejam todos gerados.
Devo fazer algum ajuste naquele código?


Att.

José Filho

Editado por infopointerp
  • Curtir 2
  • 2 semanas depois ...
Postado

Bom dia amigos, o colega @MuriloS.A trabalhava aqui comigo e foi feito para uma necessidade aqui da empresa, porem ele não esta mais trabalhando aqui com a gente e não vai conseguir mexer mais, então vou tentar concluir o processo junto a vocês para chegarmos ao ponto de publicar.
@infopointerp pode fazer ajustes sim e enviar aqui para o pessoal atualizar o projeto aqui para o nosso cenário a impressão meio que e disparada pelo processo que chama o pagamento ao fim dele, então pode ser por isso que não tem a impressão, mas sinta-se livre pra corrigir/melhorar e enviar. Sou de Mato Grosso e estou aqui na correria para a NT dos pagamentos onlines, então não vou conseguir mexer pro agora.

  • Curtir 1
Postado
Em 14/03/2024 at 09:29, infopointerp disse:

Olá, @MuriloS.A!

Executei o patch que você disponibilizou no último anexo deste tópico. Ao efetuar uma venda, a transação é aprovada.
No entanto, não imprime os comprovantes, pois a resposta, nos campos dos comprovantes, não possui nenhuma informação, embora os logs estejam todos gerados.
Devo fazer algum ajuste naquele código?


Att.

José Filho

Boa tarde,  verifica se o patch está  igual ao arquivos.  Está  está imprimindo com essa  na software house em que foi desenvolvido. 

 

  • 4 semanas depois ...
Postado

@Daniel Simoes @Juliomar Marchetti 

Boa tarde.

Executei algumas correções nos arquivos ACBrTEFAPIElgin.pas e ACBrTEFAPIElginComum.pas, executei transacoes de multiplos cartões e operações admisnitrstrativas com exito.

* Corrigido erro na exbição das operações administrativas.

* Corrigido erro no retorno de pagamento, quando efetuado um pagamento de 10,00 o retorno era lido como 1,00, sendo assim a operacao era finalizada na elgin e permanecia em aberto no componente que recebia uma valor errado de pagamento efetuado.

* Corrigido erro na rotina de tratamento de retorno do comprovante. 

 

 

ACBrTEFAPI.rar

  • Curtir 3
  • 2 semanas depois ...
  • Fundadores
Postado

@Fernando Pasqueto e @MuriloS.A

Muito obrigado por sua ótima contribuição...

Apliquei uma ampla revisão nos fontes...
Efetuei algumas otimizações no código, indentação e ajustes para compilação no D7

Poderiam por favor testar com a versão em anexo ?

A quem devo creditar a autoria dos fontes  ?
 

TEFAPIElgin.zip

  • Curtir 3
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á 130 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.