Ir para conteúdo
  • Cadastre-se

dev botao

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