Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia, tenho uma dúvida quanto a questão de certificados, estamos querendo desenvolver no nosso sistema um aviso para informar ao usuário que o certificado está prestes a vencer, para isso estou utilizando o comando ACBrNFe.Configuracoes.Certificados.DataVenc porém o nosso sistema é multi empresa, ou seja teremos mais que um certificado, para alterar o certificado associado ao componente eu somente preciso utilizar o comando ACBrNFe.Configuracoes.Certificados.NumeroSerie? pois depois de alterar o certificado a data de validade q o componente retorna é do certificado anterior, após realizar algumas operações como consultar status do serviço do sefaz é que ele começa a trazer a data de validade do novo certificado, não consegui achar um motivo lógico, alguém teria alguma idéia do que possa estar acontecendo e como poderia resolver essa situação?

vlw

  • 2 semanas depois ...
Postado

Amigo eu criei esta função, talvez te ajude :

Function ExpirarCertificadoDigital( numero_certificado : String) : Boolean;

var i : Integer;

CertStore : IStore3;

CertStoreMem : IStore3;

PrivateKey : IPrivateKey;

Certs : ICertificates2;

Cert : ICertificate2;

numce : String;

dias : Real;

acho : Boolean;

begin

Result := True;

Frm_DM.QR_Config.Open;

numce := numero_certificado;

CertStoreMem := Nil;

If CertStoreMem = NIL then begin

CertStore := CoStore.Create;

CertStore.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

CertStoreMem := CoStore.Create;

CertStoreMem.Open(CAPICOM_MEMORY_STORE, 'Memoria', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

Certs := CertStore.Certificates as ICertificates2;

acho := false;

For I := 1 to Certs.Count do Begin

Cert := IInterface(Certs.Item) as ICertificate2;

if numce = Cert.SerialNumber then begin

dias := Cert.ValidToDate - Date;

acho := True;

Break; end;

end;

if not acho then

Result := True

else

if dias <= 0 then begin

Result := False;

MensagemPerso(' Certificado Dígital Exprirado em '+FormatDateTime('dd/mm/yyyy',Cert.ValidToDate),erro);

end

else

if dias <= 15 then begin

Result := True;

MensagemPerso(' ***** ATENÇÃO ***** '#13'Falta '+FloatToStr(dias)+' dia(s) para expirar o Certificado Dígital !'#13'Data para Expirar : '+FormatDateTime('dd/mm/yyyy',Cert.ValidToDate),exclamacao);

end

else

Result := True;

end;

end;

Postado

quando eu vinculo o nro serie do certificado eu gravo tambem a data de vencimento do certificado e quando entro no sistema ele validade a data com a data do servidor referente aquela empresa

Postado

jonathan-augusto-muito obrigado, funcionou que uma beleza.... ficou perfeito.

mksbraga-obrigado pelo retorno, mas para evitar ter que criar outro campo no banco utilizei a função do jonathan que funcionou muito bem.

Valeu, abraço

Rigotti

Postado

Bom dia, André, muito obrigado, era exatamente isso que estava faltando agora está funcionando que é uma beleza,

mais uma vez, muito obrigado.

Postado

Olá a todos,

Também estou precisando capturar esta informação do certificado.

Pelo que pude ver as funções acima são para ACBrNFe. Como não programo em Delphi, pergunto: Há algo semelhante no ACBrNfeMonitor??

Janio

Postado

Di nada meu amigo, precisando estamos aí.

jonathan-augusto-muito obrigado, funcionou que uma beleza.... ficou perfeito.

mksbraga-obrigado pelo retorno, mas para evitar ter que criar outro campo no banco utilizei a função do jonathan que funcionou muito bem.

Valeu, abraço

Rigotti

  • 4 anos depois...
  • Este tópico foi criado há 3455 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.

The popup will be closed in 10 segundos...