예제 #1
0
        public static infMDFeSupl QrCode(this MDFEletronico mdfe, X509Certificate2 certificadoDigital,
                                         Encoding encoding = null)
        {
            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }

            var qrCode = new StringBuilder(@"https://dfe-portal.svrs.rs.gov.br/mdfe/qrCode");

            qrCode.Append("?");
            qrCode.Append("chMDFe=").Append(mdfe.Chave());
            qrCode.Append("&");
            qrCode.Append("tpAmb=").Append(mdfe.AmbienteSefazInt());

            switch (mdfe.InfMDFe.Ide.TpEmis)
            {
            case MDFeTipoEmissao.Contingencia:
                var assinatura = Convert.ToBase64String(CreateSignaturePkcs1(certificadoDigital, encoding.GetBytes(mdfe.Chave())));
                qrCode.Append("&sign=");
                qrCode.Append(assinatura);
                break;
            }

            return(new infMDFeSupl
            {
                qrCodMDFe = qrCode.ToString()
            });
        }
예제 #2
0
        public static void SalvarXmlEmDisco(this MDFEletronico mdfe, string nomeArquivo = null)
        {
            if (MDFeConfiguracao.NaoSalvarXml())
            {
                return;
            }

            if (string.IsNullOrEmpty(nomeArquivo))
            {
                nomeArquivo = Path.Combine(MDFeConfiguracao.CaminhoSalvarXml, mdfe.Chave() + "-mdfe.xml");
            }

            FuncoesXml.ClasseParaArquivoXml(mdfe, nomeArquivo);
        }