Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Bom dia,

Tenho um módulo no sistema Distribuição DFe, temos a versão Desktop e a versão Unigui.

Temos uma procedure que pega o certificado digital e grava o mesmo em uma tabela do banco de dados, no desktop não temos problemas.

Ocorre que no UNIGUI ao tentar ler o certificado para salvar no banco de dados o erro acontece:

Obs: Na maquina de desenvolvimento o erro não acontece, somente acontece no servidor após publicar o módulo.

image.png.2332699754b57c31952c5d17e5b610a6.png

a procedure:

  TRY
    MS := TMemoryStream.Create;
    MS.CopyFrom(AStream, AStream.Size);
    MS.SaveToFile(UniServerModule.LocalCachePath + 'cert.pfx');

    ACBrNFe1.SSL.SSLCryptLib := cryWinCrypt;
    ACBrNFe1.Configuracoes.Certificados.ArquivoPFX := UniServerModule.LocalCachePath + 'cert.pfx';
    ACBrNFe1.Configuracoes.Certificados.Senha := vSenhaCertificado;
    ACBrNFe1.SSL.CarregarCertificado;
    IF (ACBrNFe1.SSL.CertificadoLido) THEN
    BEGIN
      edCertificado.Text:= ACBrNFe1.SSL.DadosCertificado.NumeroSerie;
      edSenha.Text      := vSenhaCertificado;

      try
        FDQuery:= TFDQuery.Create(Self);
        FDQuery.Connection:= DtmDistribuicaoDFe.FDConnection1;
        FDQuery.SQL.Text:= 'UPDATE OR INSERT INTO CERTIFICADOS_DFE (EMPRESA, CERT_ARQUIVO, CERT_ID,      '+
        'CERT_CERTIFICADORA, CERT_VENCIMENTO, CERT_SERIAL, CERT_RAZAOSOCIAL, CERT_CNPJ, CERT_SENHA)      '+
        'VALUES (:EMPRESA, :CERT_ARQUIVO, :CERT_ID, :CERT_CERTIFICADORA, :CERT_VENCIMENTO, :CERT_SERIAL, '+
        ':CERT_RAZAOSOCIAL, :CERT_CNPJ, :CERT_SENHA )';

        FDQuery.ParamByName('EMPRESA').AsString:= vIDEmpresa;
        FDQuery.ParamByName('CERT_ARQUIVO').LoadFromFile(UniServerModule.LocalCachePath + 'cert.pfx', ftblob );
        FDQuery.ParamByName('CERT_ID').AsString            := ACBrNFe1.SSL.DadosCertificado.ThumbPrint;
        FDQuery.ParamByName('CERT_CERTIFICADORA').AsString := ACBrNFe1.SSL.DadosCertificado.Certificadora;
        FDQuery.ParamByName('CERT_VENCIMENTO').AsDateTime  := ACBrNFe1.SSL.DadosCertificado.DataVenc;
        FDQuery.ParamByName('CERT_SERIAL').AsString        := ACBrNFe1.SSL.DadosCertificado.NumeroSerie;
        FDQuery.ParamByName('CERT_RAZAOSOCIAL').AsString   := ACBrNFe1.SSL.DadosCertificado.RazaoSocial;
        FDQuery.ParamByName('CERT_CNPJ').AsString          := FormatarCNPJ(ACBrNFe1.SSL.DadosCertificado.CNPJ);
        FDQuery.ParamByName('CERT_SENHA').AsString         := dm.Crip.TextToCriptoHex(vSenhaCertificado);
        FDQuery.ExecSQL;
      finally
        FDQuery.Free;
      end;
    END
    ELSE
      uniMENSAGEM('Arquivo do certificado está inválido ou a senha não está correta, tente novamente.', mtError);
  FINALLY
    MS.Free;
  END;
 

 

Alguém já passou por isso, alguma dica?

Agradeço!! 

  • Fundadores
Postado

pode ser algo relacionado a versão do Windows instalado no Server... como você usa A1... recomendo usar OpenSSL... pois assim, você não fica dependente de correções e atualizações do Windows

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
4 horas atrás, Juliomar Marchetti disse:

Mude o que está fazendo acima

veja

 

Obrigado Juliomar, mesmo assim não funcionou, mudei para "ACBrNFe1.Configuracoes.Geral.SSLLib          := TSSLLib.libOpenSSL;" e deu certo.

Obrigado!

2 horas atrás, Daniel Simoes disse:

pode ser algo relacionado a versão do Windows instalado no Server... como você usa A1... recomendo usar OpenSSL... pois assim, você não fica dependente de correções e atualizações do Windows

Obrigado Daniel, sim, fiz e deu certo, Obrigado!

  • Curtir 3
  • Este tópico foi criado há 1633 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...
The popup will be closed in 10 segundos...