コード例 #1
0
        private string GerarQRCode(XmlDocument nfce)
        {
            QRCode qr = new QRCode();

            if (string.IsNullOrWhiteSpace(IDToken))
            {
                throw new Exception("Informe um ID Tokem");
            }

            if (string.IsNullOrWhiteSpace(CSC))
            {
                throw new Exception("Informe um CSC");
            }

            DataSet   ds        = new DataSet();
            XmlReader xmlReader = new XmlNodeReader(nfce);

            ds.ReadXml(xmlReader);

            qr.ChNfe   = ds.Tables["infNFe"].Rows[0]["Id"].ToString().Replace("NFe", "");
            qr.NVersao = "2";
            qr.TpAmb   = ds.Tables["ide"].Rows[0]["tpAmb"].ToString();
            qr.DhEmi   = ds.Tables["ide"].Rows[0]["dhEmi"].ToString();
            qr.VNF     = ds.Tables["ICMSTot"].Rows[0]["vNF"].ToString();

            if (ds.Tables["dest"] != null)
            {
                if (ds.Tables["dest"].Columns["CNPJ"] != null)
                {
                    qr.CDest = ds.Tables["dest"].Rows[0]["CNPJ"].ToString();
                }
                else if (ds.Tables["dest"].Columns["CPF"] != null)
                {
                    qr.CDest = ds.Tables["dest"].Rows[0]["CPF"].ToString();
                }
            }

            qr.VICMS        = ds.Tables["ICMSTot"].Rows[0]["vICMS"].ToString();
            qr.DigVal       = ds.Tables["Reference"].Rows[0]["DigestValue"].ToString();
            qr.CIdToken     = IDToken.Replace(" ", "");
            qr.Csc          = CSC;
            qr.URL          = WebServiceNFCe.URLQRCode;
            qr.VersaoXML    = ds.Tables["infNFe"].Rows[0]["versao"].ToString();
            qr.Contingencia = ds.Tables["ide"].Rows[0]["tpEmis"].ToString() == "9";
            qr.GerarURLQRCode();

            return($"<![CDATA[{qr.TextQRCode}]]>");
        }