Desenvolvimento NFS-e
Desenvolvimento NFS-e

Site destinado a desenvolvedores de softwares na integração com a NFS-e.
 
InícioInício  CalendárioCalendário  FAQFAQ  BuscarBuscar  GruposGrupos  Registrar-seRegistrar-se  Conectar-se  

Compartilhe | 
 

 Ao assinar:Um contexto XmlDocument é necessário para transformações envelopadas.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
rafawebdev



Mensagens : 29
Data de inscrição : 06/11/2015

MensagemAssunto: Ao assinar:Um contexto XmlDocument é necessário para transformações envelopadas.   Seg Dez 07, 2015 3:33 pm

Olá pessoal,

Estou com problemas ao tentar assinar o xml. Já consegui fazer testes no SoapUI e corrigi vários erros, porém o que falta agora é justamente a assinatura.

A mensagem que está dando é: Erro: Ao assinar o documento - Um contexto XmlDocument é necessário para transformações envelopadas.

Segue arquivo em c# que faz a assinatura:

Código:

static void Main(string[] args)
        {
            //Console.WriteLine("Exemplo de Assinatura Digital XML\r\r");
            //Console.Write("Arquivo xml a ser assinado :");
            //string _arquivo = Console.ReadLine();
            string _arquivo = "E:\\NF NFS Integracao\\NFS\\Ginfes\\xmlsenvio\\xmls\\xmltentativa3.xml";
            if (_arquivo == null)
            {
                Console.WriteLine("\rNome de arquivo não informado...");
            }
            else if (!File.Exists(_arquivo))
            {
                Console.WriteLine("\rArquivo {0} inexistente...", _arquivo);
            }
            else
            {
                //Console.Write("URI a ser assinada (Ex.: infCanc, infNFe, infInut, etc.) :");
                //string _uri = Console.ReadLine();
                string _uri = "EnviarLoteRpsEnvio";
                if (_uri == null)
                {
                    Console.WriteLine("\rURI não informada...");
                }
                else
                {
                    //
                    //   le o arquivo xml
                    //
                    StreamReader SR;
                    string _stringXml;
                    SR = File.OpenText(_arquivo);
                    _stringXml = SR.ReadToEnd();
                    SR.Close();
                    //
                    //  realiza assinatura
                    //
                    AssinaturaDigital AD = new AssinaturaDigital();
                    //
                    //  cria cert
                    //
                    X509Certificate2 cert = new X509Certificate2();
                    //
                    //  seleciona certificado do repositório MY do windows
                    //
                    Certificado certificado = new Certificado();
                    cert = certificado.BuscaNome("");
                    int resultado = AD.Assinar(_stringXml, _uri, cert);
                    if (resultado == 0)
                    {
                        //
                        //  grava arquivo assinado
                        //
                        StreamWriter SW;
                        SW = File.CreateText(_arquivo.Trim() + "_assinado");
                        SW.Write(AD.XMLStringAssinado);
                        SW.Close();

                    }
                    Console.WriteLine(AD.mensagemResultado);
                }
            }

            Console.Read();

        }


E o xml que estou tentando:
Código:

<?xml version="1.0" encoding="UTF-8"?>
<arg1>
 <EnviarLoteRpsEnvio>
 <LoteRps Id="400000013">
 <NumeroLote>13</NumeroLote>
 <Cnpj>18358664000192</Cnpj>
 <InscricaoMunicipal>217880</InscricaoMunicipal>
 <QuantidadeRps>1</QuantidadeRps>
 <ListaRps>
 <Rps>
 <InfRps Id="R1">
 <IdentificacaoRps>
 <Numero>1</Numero>
 <Serie>MAQ01</Serie>
 <Tipo>1</Tipo>
 </IdentificacaoRps>
 <DataEmissao>2015-10-10T16:37:00</DataEmissao>
 <NaturezaOperacao>1</NaturezaOperacao>
 <OptanteSimplesNacional>2</OptanteSimplesNacional>
 <IncentivadorCultural>2</IncentivadorCultural>
 <Status>1</Status>
 <Servico>
 <Valores>
 <ValorServicos>10.00</ValorServicos>
 <IssRetido>2</IssRetido>
 <BaseCalculo>10.00</BaseCalculo>
 <ValorLiquidoNfse>10.00</ValorLiquidoNfse>
 </Valores>
 <ItemListaServico>1.0</ItemListaServico>
 <CodigoTributacaoMunicipio>1.0</CodigoTributacaoMunicipio>
 <Discriminacao>BLA BLA BLA</Discriminacao>
 <CodigoMunicipio>0000</CodigoMunicipio>
 </Servico>
 <Prestador>
 <Cnpj>18358664000192</Cnpj>
 </Prestador>
 <Tomador>
 <IdentificacaoTomador>
 <CpfCnpj>
 <Cnpj>03944784000102</Cnpj>
 </CpfCnpj>
 </IdentificacaoTomador>
 <RazaoSocial>EMPRESA TESTE</RazaoSocial>
 <Endereco>
 <Endereco>RUA TESTE</Endereco>
 <Bairro>TESTE</Bairro>
 <CodigoMunicipio>3550308</CodigoMunicipio>
 <Uf>SP</Uf>
 <Cep>37700000</Cep>
 </Endereco>
 <Contato>
 <Telefone>0000000000</Telefone>
 <Email>algum.teste@teste.com</Email>
 </Contato>
 </Tomador>
 </InfRps>
 </Rps>
 </ListaRps>
 </LoteRps>
 </EnviarLoteRpsEnvio>
</arg1>

Alguma boa alma caridosa, saberia me ajudar?
Muito obrigado desde já.
Voltar ao Topo Ir em baixo
rafawebdev



Mensagens : 29
Data de inscrição : 06/11/2015

MensagemAssunto: Re: Ao assinar:Um contexto XmlDocument é necessário para transformações envelopadas.   Ter Dez 15, 2015 10:22 am

Resolvido! Para quem tiver esse problema, resolvi da seguinte forma:

Estava tentando assinar a tag EnviarLoteRpsEnvio, mas na verdade era preciso assinar a tag LoteRps.
Voltar ao Topo Ir em baixo
 
Ao assinar:Um contexto XmlDocument é necessário para transformações envelopadas.
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Campeonato Regional de Enduro
» [Resolvido] Atividade necessária para ter um domínio personalizado grátis
» Respostas rápidas fora do contexto
» Av2 - Gestão e Organização da Escola - A Função da Escola no Contexto da Diversidade
» prova de fundamentos do processo educativo no contexto histórico filosófico

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Desenvolvimento NFS-e  :: Erros e Alertas-
Ir para: