Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        /// <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;
        }