/// <summary> /// Constrói um objeto passando um certificado X509Certificate2 (A1 ou A3) /// </summary> /// <param name="certificado">Certificado</param> /// <param name="ambiente">Ambiente de produção ou homologação</param> /// <param name="endPointNFeDistribuicaoDFe">Endereço do serviço de distribuição de NFe e eventos</param> /// <param name="endPointCTeDistribuicaoDFe">Endereço do serviço de distribuição de CTe e eventos</param> /// <param name="endPointNFeRecepcaoEvento">Endereço do serviço de recepção de eventos</param> /// <param name="cUFManifesto">Código IBGE do orgão que irá recepcionar eventos de manifesto do destinatário (91 = Ambiente Nacional)</param> /// <param name="disposeCertificado">Indica se ao fazer o dispose desse objeto o dispose do certificado deve ser feito automáticamente</param> public Sefaz(X509Certificate2 certificado, Models.NFe.TAmb ambiente = Models.NFe.TAmb.Producao, string endPointNFeDistribuicaoDFe = ENDPOINTNFEDISTRIBUICAODFE, string endPointCTeDistribuicaoDFe = ENDPOINTCTEDISTRIBUICAODFE, string endPointNFeRecepcaoEvento = ENDPOINTNFERECEPCAOEVENTO, string cUFManifesto = CUFMANIFESTOAN, bool disposeCertificado = false) { _EndPointNFeDistribuicaoDFe = endPointNFeDistribuicaoDFe; _EndPointCTeDistribuicaoDFe = endPointCTeDistribuicaoDFe; _EndPointNFeRecepcaoEvento = endPointNFeRecepcaoEvento; _Ambiente = ambiente; Models.NFe.TCOrgaoIBGE cUF; if (!Models.NFe.TCOrgaoIBGE.TryParse("Item" + cUFManifesto, out cUF)) { throw new ArgumentException("Código IBGE inválido para recepção de manifestos do destinatário!", nameof(cUFManifesto)); } OrgaoManifesto = cUF; this._Certificado = certificado; _DisposeCertificado = disposeCertificado; }
/// <summary> /// Constrói um objeto pasando o caminho e a senha de um certificado (A1) /// </summary> /// <param name="certificado">Caminho do certificado</param> /// <param name="senha">Senha do certificado</param> /// <param name="ambiente">Ambiente de produção ou homologação</param> /// <param name="endPointNFeDistribuicaoDFe">Endereço do serviço de distribuição de NFe e eventos</param> /// <param name="endPointCTeDistribuicaoDFe">Endereço do serviço de distribuição de CTe e eventos</param> /// <param name="endPointNFeRecepcaoEvento">Endereço do serviço de recepção de eventos NFe</param> /// <param name="cUFManifesto">Código IBGE do orgão que irá recepcionar eventos de manifesto do destinatário (91 = Ambiente Nacional)</param> public Sefaz(string certificado, string senha = null, Models.NFe.TAmb ambiente = Models.NFe.TAmb.Producao, string endPointNFeDistribuicaoDFe = ENDPOINTNFEDISTRIBUICAODFE, string endPointCTeDistribuicaoDFe = ENDPOINTCTEDISTRIBUICAODFE, string endPointNFeRecepcaoEvento = ENDPOINTNFERECEPCAOEVENTO, string cUFManifesto = CUFMANIFESTOAN) { _EndPointNFeDistribuicaoDFe = endPointNFeDistribuicaoDFe; _EndPointCTeDistribuicaoDFe = endPointCTeDistribuicaoDFe; _EndPointNFeRecepcaoEvento = endPointNFeRecepcaoEvento; _Ambiente = ambiente; Models.NFe.TCOrgaoIBGE cUF; if (!Models.NFe.TCOrgaoIBGE.TryParse("Item" + cUFManifesto, out cUF)) { throw new ArgumentException("Código IBGE inválido para recepção de manifestos do destinatário!", nameof(cUFManifesto)); } OrgaoManifesto = cUF; this._Certificado = new X509Certificate2(certificado, senha, X509KeyStorageFlags.MachineKeySet); _DisposeCertificado = true; }