none
Assinatura Digital RRS feed

  • Pergunta

  • Estou desenvolvendo um programa para gerar o arquivo xml e enviar para Santos.

    Estou no ambiente de teste e ao enviar o arquivo gera o erro : 

    o E303 - documento XML difere da assinatura. O documento XML não pode conter alterações após a assinatura.

    Ao testar a assinatura no site da receita   ( https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATBHE/Assinadoc/ValidadorAssinaturas.app/valida.asp) 

    o site diz : A assinatura digital do documento fornecido não é válida. 
    Motivo: A assinatura digital do documento não é válida.

    Analisei o xml para verificar se existem caracteres especiais mas não tem nenhum...

    Alguem pode me ajudar? 

    Segue o xml c/ a assinatura:

    <?xml version="1.0" encoding="UTF-8"  standalone="yes"?>
    <EnviarLoteRpsEnvio xmlns="http://www.ginfes.com.br/servico_enviar_lote_rps_envio_v03.xsd"
     xmlns:tipos="http://www.ginfes.com.br/tipos_v03.xsd">
      <LoteRps Id="91915-91916">
        <tipos:NumeroLote>3188</tipos:NumeroLote>
        <tipos:Cnpj>60526977002201</tipos:Cnpj>
        <tipos:InscricaoMunicipal>0477028</tipos:InscricaoMunicipal>
        <tipos:QuantidadeRps>2</tipos:QuantidadeRps>
        <tipos:ListaRps>
          <tipos:Rps>
            <tipos:InfRps Id="91915">
              <tipos:IdentificacaoRps>
                <tipos:Numero>91915</tipos:Numero>
                <tipos:Serie>F</tipos:Serie>
                <tipos:Tipo>1</tipos:Tipo>
              </tipos:IdentificacaoRps>
              <tipos:DataEmissao>2012-08-01T17:20:03</tipos:DataEmissao>
              <tipos:NaturezaOperacao>1</tipos:NaturezaOperacao>
              <tipos:OptanteSimplesNacional>2</tipos:OptanteSimplesNacional>
              <tipos:IncentivadorCultural>1</tipos:IncentivadorCultural>
              <tipos:Status>1</tipos:Status>
                <tipos:Servico>
                  <tipos:Valores>
                    <tipos:ValorServicos>3023.38</tipos:ValorServicos>
                    <tipos:ValorDeducoes>0.00</tipos:ValorDeducoes>
                    <tipos:IssRetido>2</tipos:IssRetido>
                    <tipos:ValorIss>90.70</tipos:ValorIss>
                    <tipos:OutrasRetencoes>0</tipos:OutrasRetencoes>
                    <tipos:BaseCalculo>3023.38</tipos:BaseCalculo>
                    <tipos:Aliquota>0.03</tipos:Aliquota>
                    <tipos:ValorLiquidoNfse>3023.38</tipos:ValorLiquidoNfse>
                  </tipos:Valores>
                  <tipos:ItemListaServico>11.04</tipos:ItemListaServico>
                  <tipos:Discriminacao>

    ARMAZENAGEM (1,00) : R$ 2400,00
    HANDLING 20 (1,00) : R$ 200,00
    ISS/PIS/COFINS - CLIA (1,00) : R$ 370,36
    GER. RISCO (1,00) : R$ 53,02
    </tipos:Discriminacao>
                  <tipos:CodigoMunicipio>3548500</tipos:CodigoMunicipio>
                </tipos:Servico>
                <tipos:Prestador>
                  <tipos:Cnpj>60526977002201</tipos:Cnpj>
                  <tipos:InscricaoMunicipal>0477028</tipos:InscricaoMunicipal>
                </tipos:Prestador>
                <tipos:Tomador>
                  <tipos:IdentificacaoTomador>
                    <tipos:CpfCnpj>
                      <tipos:Cnpj>56505464000104</tipos:Cnpj>
                    </tipos:CpfCnpj>
                  </tipos:IdentificacaoTomador>
                  <tipos:RazaoSocial>INDUSTRIA BRASILEIRA DE BEBEDOUROS LTDA.</tipos:RazaoSocial>
                  <tipos:Endereco>
                    <tipos:Endereco>AVENIDA AVENIDA TIRADENTES</tipos:Endereco>
                    <tipos:Numero>1364</tipos:Numero>
                    <tipos:Bairro>PARQUE DAS INDUSTRIA</tipos:Bairro>
                    <tipos:CodigoMunicipio>352390</tipos:CodigoMunicipio>
                    <tipos:Uf>SP</tipos:Uf>
                    <tipos:Cep>13309640</tipos:Cep>
                  </tipos:Endereco>
                  <tipos:Contato>
                    <tipos:Email>teste@gmail.com</tipos:Email>
                  </tipos:Contato>
                </tipos:Tomador>
            </tipos:InfRps>
          </tipos:Rps>
          <tipos:Rps>
            <tipos:InfRps Id="91916">
              <tipos:IdentificacaoRps>
                <tipos:Numero>91916</tipos:Numero>
                <tipos:Serie>F</tipos:Serie>
                <tipos:Tipo>1</tipos:Tipo>
              </tipos:IdentificacaoRps>
              <tipos:DataEmissao>2012-08-01T17:20:03</tipos:DataEmissao>
              <tipos:NaturezaOperacao>1</tipos:NaturezaOperacao>
              <tipos:OptanteSimplesNacional>2</tipos:OptanteSimplesNacional>
              <tipos:IncentivadorCultural>1</tipos:IncentivadorCultural>
              <tipos:Status>1</tipos:Status>
                <tipos:Servico>
                  <tipos:Valores>
                    <tipos:ValorServicos>1239.00</tipos:ValorServicos>
                    <tipos:ValorDeducoes>0.00</tipos:ValorDeducoes>
                    <tipos:IssRetido>2</tipos:IssRetido>
                    <tipos:ValorIss>37.17</tipos:ValorIss>
                    <tipos:OutrasRetencoes>0</tipos:OutrasRetencoes>
                    <tipos:BaseCalculo>1239.00</tipos:BaseCalculo>
                    <tipos:Aliquota>0.03</tipos:Aliquota>
                    <tipos:ValorLiquidoNfse>1239.00</tipos:ValorLiquidoNfse>
                  </tipos:Valores>
                  <tipos:ItemListaServico>11.04</tipos:ItemListaServico>
                  <tipos:Discriminacao>

    ARMAZENAGEM (1,00) : R$ 1239,00
    </tipos:Discriminacao>
                  <tipos:CodigoMunicipio>3548500</tipos:CodigoMunicipio>
                </tipos:Servico>
                <tipos:Prestador>
                  <tipos:Cnpj>60526977002201</tipos:Cnpj>
                  <tipos:InscricaoMunicipal>0477028</tipos:InscricaoMunicipal>
                </tipos:Prestador>
                <tipos:Tomador>
                  <tipos:IdentificacaoTomador>
                    <tipos:CpfCnpj>
                      <tipos:Cnpj>56505464000104</tipos:Cnpj>
                    </tipos:CpfCnpj>
                  </tipos:IdentificacaoTomador>
                  <tipos:RazaoSocial>INDUSTRIA BRASILEIRA DE BEBEDOUROS LTDA.</tipos:RazaoSocial>
                  <tipos:Endereco>
                    <tipos:Endereco>AVENIDA AVENIDA TIRADENTES</tipos:Endereco>
                    <tipos:Numero>1364</tipos:Numero>
                    <tipos:Bairro>PARQUE DAS INDUSTRIA</tipos:Bairro>
                    <tipos:CodigoMunicipio>352390</tipos:CodigoMunicipio>
                    <tipos:Uf>SP</tipos:Uf>
                    <tipos:Cep>13309640</tipos:Cep>
                  </tipos:Endereco>
                  <tipos:Contato>
                    <tipos:Email>teste@gmail.com</tipos:Email>
                  </tipos:Contato>
                </tipos:Tomador>
            </tipos:InfRps>
          </tipos:Rps>
    </tipos:ListaRps></LoteRps><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>trbu4rzdZtBm40Pn57WrTFQciqE=</DigestValue></Reference></SignedInfo><SignatureValue>LFJ9CtV/gq3F/qERUlzUWeMyty+4dAQqJ2JjExTfpmQ/tlS8JZhdA17D/Ewg6HHWHytw9HeuEw9KIIKoL1772YEZ1YIxKaylEFR+VtbyCizCv639WFB93MaRxc/SxKNlVf7D4MTuNEL4qGfWPUY2DS6ZcilXKxW6w4N5YHCeYn6LqV+E5bQoMXA2KFYxkGV6FDxnb9dAOu6eymv2fxSPXRu9thLxZMWg/4KrA4UFxrVKGcGXyZ8XglJBktvyPiXGg4lM5EoEELOWwiYgtvjXNyBmE4g3n8zuI1MkNyxVx89WJkbmvkOBJhcL0xj+OUss8p607sTahcugWvhIx3Z+aQ==</SignatureValue><KeyInfo><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature></EnviarLoteRpsEnvio>

    Obrigada.

    quinta-feira, 8 de novembro de 2012 11:06

Respostas

Todas as Respostas

  • Olá.

    Desculpe mas fica difícil definir um erro deste tipo, porque depende do certificado e etc.

    Vou te enviar a classe que utilizo para assinar minhas NF Serviço.

        public class meuformulario
    	{
    	...
    		    
                // Assina o loterps
                _stringXml = this.AssinaXml(_stringXml, _tcLoteRps.Id, "LoteRps", certX509);
    
    
            private string AssinaXml(string _stringXML, string _uri, string _Node, X509Certificate2 cert)
            {
                AssinaturaDigital AD = new AssinaturaDigital();
    
                XmlDocument xmlDoc = AD.Assinar(_stringXML, _uri, _Node, cert);
                _stringXML = xmlDoc.OuterXml;
                return _stringXML;
            }
    	}
    
    
    
    	public class AssinaturaDigital
        {
            public XmlDocument Assinar(string mensagemXML, string _uri, string _Node, System.Security.Cryptography.X509Certificates.X509Certificate2 certificado)
            {
                msgResultado = "Assinatura realizada com sucesso";
    
                System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
                System.Security.Cryptography.RSACryptoServiceProvider Key = new System.Security.Cryptography.RSACryptoServiceProvider();
                System.Security.Cryptography.Xml.SignedXml SignedDocument = default(System.Security.Cryptography.Xml.SignedXml);
                System.Security.Cryptography.Xml.KeyInfo keyInfo = new System.Security.Cryptography.Xml.KeyInfo();
                xmlDoc.LoadXml(mensagemXML);
                //Retira chave privada ligada ao certificado
                Key = (System.Security.Cryptography.RSACryptoServiceProvider)certificado.PrivateKey;
                //Adiciona Certificado ao Key Info
                keyInfo.AddClause(new System.Security.Cryptography.Xml.KeyInfoX509Data(certificado));
                SignedDocument = new System.Security.Cryptography.Xml.SignedXml(xmlDoc);
                //Seta chaves
                SignedDocument.SigningKey = Key;
                SignedDocument.KeyInfo = keyInfo;
                // Cria referencia
                System.Security.Cryptography.Xml.Reference reference = new System.Security.Cryptography.Xml.Reference();
                reference.Uri = "#" + _uri;//string.Empty;
                // Adiciona transformacao a referencia
                reference.AddTransform(new System.Security.Cryptography.Xml.XmlDsigEnvelopedSignatureTransform());
                reference.AddTransform(new System.Security.Cryptography.Xml.XmlDsigC14NTransform(false));
                // Adiciona referencia ao xml
                SignedDocument.AddReference(reference);
                // Calcula Assinatura
                SignedDocument.ComputeSignature();
                // Pega representação da assinatura
                System.Xml.XmlElement xmlDigitalSignature = SignedDocument.GetXml();
                // Adiciona ao doc XML
    
                XmlElement xmlElement = xmlDoc.GetElementsByTagName(_Node)[0] as XmlElement;
                xmlElement.ParentNode.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true)); 
    
                //xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));
                return xmlDoc;
            }
    	}
    

    Espero que isso te ajude.

    terça-feira, 27 de novembro de 2012 12:15
  • terça-feira, 27 de novembro de 2012 12:22