Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao carregar certificado digital guardado no banco


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

Recommended Posts

Olá a todos!   seguindo alguns exemplos aqui do fórun guardei meu certificado digital no banco de dados em um campo blob

###### RESUMO GERAL ANTES DE LER TODO O POST:    acbrNfce.SelecionarCertificado qual é o comando para ler o numero do certificado depois de especificado para o componente o SSLib conforme fonte abaixo, visando que fiz busca no demo por: SelecionarCertificado e não encontrei, desde já agradeço a todos.

    try
      QConfiguracaoNfeCertificadoArquivoPFX.Clear;
      QConfiguracaoNfeCertificadoArquivoPFX.LoadFromFile(Dialogo.FileName);
    except
      MessageBox(handle, 'Erro ao gravar o certificado no banco de dados !', 'Mensagem de aviso', mb_IconInformation + 0 + mb_DefButton4);
      QConfiguracaoNfeCertificadoArquivoPFX.Clear;
      Exit;
    end;

o aquivo é carregado e guardado no banco,  para ler utilizo:

    acbrNfce.Configuracoes.Certificados.DadosPFX := LConfiguracaoNfeCertificadoArquivoPFX.Value;    //campo no banco com o certificado armazenado
    acbrNfce.Configuracoes.Certificados.Senha         := LConfiguracaoNfeCERTIFICADO_DIGITAL_SENHA.Value;

configoro com as demais configuracoes que utilizo quando é informado o numero do certificado normalmente ( onde com o certificado instalado no windows e buscando pelo numero funciona corretamente )

porém quando informo: ACBrNFe1.Configuracoes.Certificados.DadosPFX := dm5.LConfiguracaoNfeCertificadoArquivoPFX.Value;      Me retorna este Erro aqui:

DadosPFX, ArquivoPFX, URLPFX ou NumeroSerie não especificados !

codigo fonte:

################################

    dm7.acbrNfce.SSL.SSLType                               := TSSLType(dm5.LConfiguracaoNfeSSLType.AsInteger);
    dm7.acbrNfce.Configuracoes.Geral.SSLLib                := TSSLLib(dm5.LConfiguracaoNfeSSLLib.AsInteger);
    dm7.acbrNfce.Configuracoes.Geral.SSLCryptLib           := TSSLCryptLib(dm5.LConfiguracaoNfeCryptoLib.AsInteger);
    dm7.acbrNfce.Configuracoes.Geral.SSLHttpLib            := TSSLHttpLib(dm5.LConfiguracaoNfeHttpLib.AsInteger);
    dm7.acbrNfce.Configuracoes.Geral.SSLXmlSignLib         := TSSLXmlSignLib(dm5.LConfiguracaoNfeXMLSignLib.AsInteger);
    dm7.acbrNfce.Configuracoes.Geral.AtualizarXMLCancelado := (dm5.LConfiguracaoNfeAtualizarXML.AsString = 'S');
    dm7.acbrNfce.Configuracoes.Geral.ExibirErroSchema      := (dm5.LConfiguracaoNfeExibirErroSchema.AsString = 'S');
    dm7.acbrNfce.Configuracoes.Geral.Salvar                := (dm5.LConfiguracaoNfeSalvarArquivoEnvioResposta.AsString = 'S');
    dm7.acbrNfce.Configuracoes.Geral.FormatoAlerta         := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.';

    if (Trim(dm5.LConfiguracaoNfeCERTIFICADO_DIGITAL_CAMINHO.Value) <> '') and (dm5.LConfiguracaoNfeSSLLib.Value = '1') and (Trim(dm5.LConfiguracaoNfeUsarCertificadoDoBanco.AsString) <> 'True') then
    begin
      dm7.acbrNfce.Configuracoes.Certificados.ArquivoPFX := dm5.LConfiguracaoNfeCERTIFICADO_DIGITAL_CAMINHO.Value;
      dm7.acbrNfce.Configuracoes.Certificados.Senha      := dm5.LConfiguracaoNfeCERTIFICADO_DIGITAL_SENHA.Value;
    end
    else
      if (Trim(dm5.LConfiguracaoNfeCERTIFICADO_DIGITAL_SERIE.Value) <> '') and (Trim(dm5.LConfiguracaoNfeUsarCertificadoDoBanco.AsString) <> 'True') then
        dm7.acbrNfce.Configuracoes.Certificados.NumeroSerie := dm5.LConfiguracaoNfeCERTIFICADO_DIGITAL_SERIE.Value
      else
        if (Trim(dm5.LConfiguracaoNfeCertificadoArquivoPFX.Value) <> '') and (Trim(dm5.LConfiguracaoNfeUsarCertificadoDoBanco.AsString) = 'True') then
          begin
            dm7.acbrNfce.Configuracoes.Certificados.DadosPFX := dm5.LConfiguracaoNfeCertificadoArquivoPFX.Value;
            dm7.acbrNfce.Configuracoes.Certificados.Senha    := dm5.LConfiguracaoNfeCERTIFICADO_DIGITAL_SENHA.Value;
          end
          else
            begin
              MessageBox(0, 'Não existe certificado configurado para está empresa! NÃO será possivel Emitir/Consultar NFe!', 'Mensagem de aviso', mb_IconInformation + 0 + mb_DefButton4);
              Exit;
            end;

################################

em outro post vi que era necessário ler o numero do certificado digital mesmo pegando o arquivo guardando no campo blob porém não estou encontrando exemplo de como fazer isto usando diretamente o meu componente: acbrNfce no projeto, verifiquei no demo e tentei encontrar: acbrNfce.SelecionarCertificado

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vamos lá .

creio que está tendo confusões.

Se tu guardar o certificado no banco tu vai carregar ele no campo DadosPFX e a senha.

então não vai informar numero de serie

e se precisa dos dados vai acessar ACBrNFe1.SSL.CertNumeroSerie

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

11 minutos atrás, Juliomar Marchetti disse:

Vamos lá .

creio que está tendo confusões.

Se tu guardar o certificado no banco tu vai carregar ele no campo DadosPFX e a senha.

então não vai informar numero de serie

e se precisa dos dados vai acessar ACBrNFe1.SSL.CertNumeroSerie

18 minutos atrás, Daniel Simoes disse:

o método "SelecionarCertificado" só faz sentido para certificados que foram previamente instalados no Windows

 

na verdade PRECISAR eu especificamente não preciso para nada mas quando carrego os dados do certificado para o banco de dados:

QConfiguracaoNfeCertificadoArquivoPFX.LoadFromFile(Dialogo.FileName);   //DIRETO NA LEITURA DO CAMPO BLOB PARA O BANCO
 

eu informo o certificado e a senha, guardei os dados em um campo blob fazendo a leitura direta do arquivo ( sem nenhum tipo de converção ), faço a leitura:

   acbrNfce.Configuracoes.Certificados.DadosPFX := LConfiguracaoNfeCertificadoArquivoPFX.Value;    //campo no banco com o certificado armazenado
    acbrNfce.Configuracoes.Certificados.Senha         := LConfiguracaoNfeCERTIFICADO_DIGITAL_SENHA.Value;

então depois de ler desta forma eu não precisaria informar o numero do certificado? seria isto? se caso nao precisar é exatamente da forma que faço hoje ou seja, se é aruquivo PFX eu informo no dadosPFX do acbr, porém me retona o erro que não tenho um arquivoPFX informado ou certificado digital... 

erro: DadosPFX, ArquivoPFX, URLPFX ou NumeroSerie não especificados !

será que o arquivo PFX carregado para o banco de dados precisa de alguma formatação ou converção?  a forma como utilizei encontrei aqui no fórum mesmo indicado por outro colega em um post.

o certificado que estou utilizando é válido e estava instalado no windows funcionando corretamente, como ainda até hoje não trabalhei com o arquivo em banco estou levando uma surra em fazer sua utilizacao direta.

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
14 minutos atrás, AlexBecker disse:

então depois de ler desta forma eu não precisaria informar o numero do certificado? seria isto? se caso nao precisar é exatamente da forma que faço hoje ou seja, se é aruquivo PFX eu informo no dadosPFX do acbr, porém me retona o erro que não tenho um arquivoPFX informado ou certificado digital... 

Exatamente

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

19 minutos atrás, Juliomar Marchetti disse:

Exatamente

então, não sei explicar mas... sem alterar nenhuma linha de código agora, do mesmo jeito que postei acima, sem pegar o número do certificado só informando o arquivo agora funcionou, sai para almoço, voltei e rodei o mesmo código e não retornou mais o erro passou normalmente com o dadosPFX pegando direto do banco de dados, até o momento tudo beleza e funcionando corretamente com o fonte que eu citei no topico do post sem alterar nada, Juliomar e Daniel... MUITO OBRIGADO pela atenção pessoal! 

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...