Ir para conteúdo
  • Cadastre-se

dev botao

"Tópico Bye Bye CAPICOM" - Valor default das novas propriedades


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

Recommended Posts

Bom dia.

 

Estou tendo problemas com alguns clientes depois da última atualização referente à comunicação com os certificados digitais. Gostaria de saber como ajustar as propriedades para que os componentes trabalhem da mesma forma utilizada anteriormente ao refactoring. Reparei que o valor defaul para as propriedades é 'none':

 

constructor TGeralConf.Create(AConfiguracoes: TConfiguracoes);
begin
...
  FSSLLib := libNone;
  FSSLCryptLib := cryNone;
  FSSLHttpLib := httpNone;
...
end;

Dependendo do sistema operacional do cliente, estão sendo apresentados os seguintes erros:

 

  • Método "Enviar" não implementado em: TDFeSSLHttpClass;
  • Parâmetro incorreto;
  • Falha em obter Provedor de Cripotografia do Certificado. Erro: 80090016.

 

Como proceder? Obrigado.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Deixando de lado a questão de definir o valor da propriedade de forma explícita ou não, alguém sabe dizer quais os pré-requisitos para utilizar cada um dos métodos de comunicação com os certificados digitais?

 

Já tentei todas as opções: libOpenSSL, libCapicom, libCapicomDelphiSoap e libWinCrypt. A opção 'libCapicom' não deveria ser a "tradicional", que sempre funcionou?

 

Obrigado pela atenção.

Link para o comentário
Compartilhar em outros sites

eu também estou passando pelos 3 erros que vc mencionou, o caso do parâmetro incorreto resolvi colocando a seguinte config (imagem anexo) agora o resto to batalhando, cada cliente ta dando um erro diferente.

Capturar.JPG

 

Lembrando que já tem uma atualização no SVN para o caso do parâmetro.

Editado por Daniel Carus
  • Curtir 1

Daniel Carus

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Mantenham os fontes atualizados...

E por favor lembrem-se, para reportar Bugs a equipe de desenvolvimento do ACBr, é necessário demonstrar um passo a passo detalhado, desde a configuração usando o Demo do ACBrNFe

  • 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

23 horas atrás, Daniel Simoes disse:

Mantenham os fontes atualizados...

E por favor lembrem-se, para reportar Bugs a equipe de desenvolvimento do ACBr, é necessário demonstrar um passo a passo detalhado, desde a configuração usando o Demo do ACBrNFe

Obrigado pela atenção pessoal. Daniel, qual opção devo utilizar para que o componente se comporte da forma "tradicional"? libCapicomDelphiSoap?

Abraço!

Link para o comentário
Compartilhar em outros sites

  • Moderadores
36 minutos atrás, Gabriel Bonzanini disse:

Obrigado pela atenção pessoal. Daniel, qual opção devo utilizar para que o componente se comporte da forma "tradicional"? libCapicomDelphiSoap?

Abraço!

Se você não alterava o valor da propriedade SSLLib do componente, sim, essa era a configuração default.

Agora é libNone.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Boa tarde ,  

   Estou colocando o meu pedido de ajuda aqui, pois, acredito que o assunto é semelhante .  Estou caindo nesta situação: 

function TDFeSSLHttpClass.Enviar(const ConteudoXML: String; const AURL: String;
  const ASoapAction: String; AMimeType: String): String;
begin
  {$IFDEF FPC}
  Result := '';
  {$ENDIF}
  raise EACBrDFeException.Create('Método "Enviar" não implementado em: '+ClassName);   __________<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 

   Por razões que independem da minha vontade , tenho feito merge e tem dado certo. 

   Segue um arquivo com mais informações .  Uso o ACBR por mais de 4 anos . Com bastante sucesso . Estou tentando migrar para 4.0

    Obrigado !

   Demóstenes 

  

ErroConsultaStatus.txt

Link para o comentário
Compartilhar em outros sites

  • Moderadores
10 minutos atrás, Demostenes Damasio B Jr disse:

   Estou colocando o meu pedido de ajuda aqui, pois, acredito que o assunto é semelhante .  Estou caindo nesta situação: 

Isso indica falta de configuração das propriedades do componente. O código que destacou é uma classe abstrata, por isso o erro.

Já leu o tópico "Bye Bye CAPICOM"?

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
7 minutos atrás, Daniel Simoes disse:

Acho que é melhor você ler o post indicado...

Li no post indicado:

"Com o intuito de acabar com a dependência da CAPICOM,"   No meu entendimento, o objetivo é dar uma solução para não depender mais do Capicom, mas ainda será possível usa-lo  (Depender dele).

Me desculpe, mas para mim não ficou claro que se o Capicom será banido do ACBR ou se apenas terá uma outra opção para usar no lugar dele.

 

Link para o comentário
Compartilhar em outros sites

@Dércio Luis Zanatta

No tópico explica isso com detalhes, mas tudo bem.

Você pode continuar usando a Capicom conforme o exemplo da demo que o Daniel postou.

Mas caso queira excluir totalmente a Capicom do componente, basta alterar o ACBr.ini, conforme o tópico :

 

Como remover completamente, as Units da CAPICOM dos meus fontes ?

Abra o arquivo \ACBr\Fontes\ACBrComum\ACBr.inc  e altere a seguinte linha:

{.$DEFINE DFE_SEM_CAPICOM}

para:

{$DEFINE DFE_SEM_CAPICOM}

Ou seja, remova o "." do inicio

 

Dercide.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Boa Obrigado,  

    Consegui sair do erro .  Aparentemente já consegui eliminar a Capicom !

at.,

Demóstenes 

   

Boa tarde ,

  Alguém pode ajudar ou passou por isto ?  Estou agora com o seguinte erro :  

         Certificado não permite Exportar Chave Privada.

   Seguem a Unit e as funções que consegui processar :

 

ACBr_WinCrypt;

function CertOpenStore; external Crypt32 name 'CertOpenStore';     <<<<<<<<<<<<<<<<<<<<<<  ok
function CertAddCertificateContextToStore; external Crypt32 name 'CertAddCertificateContextToStore' <<<<<<<<<<<<<<<<<<<<<<  ok
function CertFreeCertificateContext; external Crypt32 name 'CertFreeCertificateContext'; <<<<<<<<<<<<<<<<<<<<<<  ok
function PFXExportCertStoreEx; external Crypt32 name 'PFXExportCertStoreEx';  <<<<<<<<<<<<<<<<<<<<<<  Erro 


    if not PFXExportCertStoreEx( AStore, PFXBlob,
                                 LPCWSTR(WideString( APass )),
                                 Nil, dwFlags) then
      raise EACBrDFeExceptionNoPrivateKey.Create('Certificado não permite Exportar Chave Privada.');

 

obrigado !

Demóstenes 

        

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Moderadores
2 minutos atrás, JFFonseca disse:

Daniel, boa tarde! Ao deixar de utilizar CAPICOM e passar a utilizar WinCrypt, poderemos utilizar tanto o Certificado A1 quanto o A3?

Sim 

em tese você vai usar a mesma situação do Capicom mas tratando diretamente via api do windows sem necessidade da dll do capicom que fazia o meio de campo e estava desatualizada.

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

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