Post r??pido sobre Nota Fiscal Eletr??nica… Caso esteja desenvolvendo a aplica????o de NFe para um PF e/ou PJ e esteja utilizando certificados do tipo A3 (no A1 deve servir tamb??m, mas ainda n??o testei), utilize a fun????o abaixo para capturar da leitora o certificado. Os dados s??o armazenados no objeto para posterior manipula????o, exemplo, assinatura do XML para envio.
using System.Security.Cryptography.X509Certificates;
X509Certificate2 oX509Cert = new X509Certificate2();
X509Store store = new X509Store(“MY”, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection collection2 = (X509Certificate2Collection)collection.Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, false);
X509Certificate2Collection scollection = (X509Certificate2Collection)collection2.Find(X509FindType.FindBySubjectName, “NOME DA EMPRESA PESSOA”, false);
if (scollection.Count == 0)
oX509Cert = null;
else
oX509Cert = scollection[0];
No objeto oX509Cert ?? o objeto representativo de seu certificado digital no seu sistema. Geralmente esse tipo de certificado fica armazenado temporariamente na pasta Pessoal do Gerenciador de Certificados do Windows. Caso deseje visualizar qual o nome correto do certificado e realizar demais opera????es, v?? em Iniciar, Executar e digite certmgr.msc. Uma tela como essa ir?? surgir:
Se o seu certificado n??o aparecer a??, deve ser que o leitor n??o est?? reconhecendo o cart??o, ou o software de leitura n??o foi corretamente instalado e outros fatores que agora n??o entrar?? em detalhes.
11 respostas em “Obter Certificado Digital para Nota Fiscal Eletr??nica”
Pra que serve a vari??vel collection1?
A collection1 guarde informa????es acerca da validade do certificado.
Muito bom, funcionou sem problemas!
Ol?? Thiago, parab??ns pelo artigo.
Esse exemplo s?? funciona para aplicativos Desktop correto?
F??bio, funciona para web tamb??m contudo o certificado tem que ficar espetado no servidor web.
Ol?? Thiago,
Obrigado pelo retorno, mas a minha situa????o seria necess??rio que o certificado estivesse na m??quina do cliente e fosse acessado via browser.
F??bio, no caso voc?? deve criar um ActiveX, por exemplo, (em C# pode ser feito usando essa fun????o, inclusive) que ir?? acessar o computador cliente fazendo a autentica????o e busca do certificado.
Oi Thiago,
N??o funcionou comigo, o servidor est?? com o token espetado, eu estou acessando-o pelo svn e n??o consigo obter o certificado. Ja tentei buscar pelo serial e pelo IssuerName, se vc tiver alguma dica eu agrade??o
Artur
arturcostta@gmail.com
Artur,
Verifique se o sistema operacional est?? reconhecendo o token. Conforme especifiquei antes, v?? em Iniciar, Executar e digite certmgr.msc. Veja se ?? listado o certificado e qual o nome correto.
Lembre-se que alguns certificados n??o funciona no Windows Server.
Ol?? … Como posso saber quando o certificado n??o funciona no windows server?
Ester, se voc?? j?? adquiriu o certificado realize o processo abaixo:
Em Iniciar, Executar e digite certmgr.msc. Veja se ?? listado o certificado adquirido.
Ou pelo pr??prio software que vem junto com o certificado. H?? um aplicativo que j?? faz leitura…
Se ainda n??o comprou, leia as instru????es do certificado que eles especificam qual o SO ?? suportado por eles.