Desenvolvimento NFS-e
Desenvolvimento NFS-e
Desenvolvimento NFS-e
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Desenvolvimento NFS-e

Site destinado a desenvolvedores de softwares na integração com a NFS-e.
 
InícioInício  Últimas imagensÚltimas imagens  ProcurarProcurar  RegistrarRegistrar  Entrar  

 

 Assinatura do xml ConsultarLoteRpsEnvio Fortaleza

Ir para baixo 
AutorMensagem
abotelho




Mensagens : 9
Data de inscrição : 15/06/2015

Assinatura do xml ConsultarLoteRpsEnvio Fortaleza Empty
MensagemAssunto: Assinatura do xml ConsultarLoteRpsEnvio Fortaleza   Assinatura do xml ConsultarLoteRpsEnvio Fortaleza EmptyTer Jun 23, 2015 11:52 am

Estou implementando o envio de notas de serviço para a cidade de Fortaleza e estou esbarrando em um problema com o XML de consulta de envio de lote.

A prefeitura de Fortaleza exige que o xml de consulta seja assinado (a do Rio que foi a primeira que eu implementei não exige), mas na hora de assinar qual dado eu devo usar como referência para a assinatura? No envio de lote por exemplo uso Id do LoteRps.

Alguém tem algum exemplo de xml de consulta de envio de lote para Fortaleza e pode me dizer como fez para fazer a assinatura? Estou usando C#, abaixo tem o metodo de assinatura que eu uso.

public static void AssinaXML(XmlDocument xml, X509Certificate2 certificate, string signedNodeName, string parentNode, string idnode)
{
XmlNodeList SignedNode = xml.GetElementsByTagName(signedNodeName);

SignedXml signedXml;

foreach (XmlElement node in SignedNode)
{
string id = node.Attributes.GetNamedItem(idnode) != null ? node.Attributes.GetNamedItem(idnode).InnerText : string.Empty;
signedXml = new SignedXml(node);
signedXml.SigningKey = certificate.PrivateKey;

Reference reference = new Reference("#" + id);
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
reference.AddTransform(new XmlDsigC14NTransform());
signedXml.AddReference(reference);

KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(certificate));

signedXml.KeyInfo = keyInfo;

signedXml.ComputeSignature();

XmlElement xmlSignature = xml.CreateElement("Signature", "http://www.w3.org/2000/09/xmldsig#");
XmlElement xmlSignedInfo = signedXml.SignedInfo.GetXml();
XmlElement xmlKeyInfo = signedXml.KeyInfo.GetXml();

XmlElement xmlSignatureValue = xml.CreateElement("SignatureValue", xmlSignature.NamespaceURI);
string signBase64 = Convert.ToBase64String(signedXml.Signature.SignatureValue);
XmlText text = xml.CreateTextNode(signBase64);
xmlSignatureValue.AppendChild(text);

xmlSignature.AppendChild(xml.ImportNode(xmlSignedInfo, true));
xmlSignature.AppendChild(xmlSignatureValue);
xmlSignature.AppendChild(xml.ImportNode(xmlKeyInfo, true));

var evento = xml.GetElementsByTagName(parentNode);
evento[0].AppendChild(xmlSignature);
}
}
Ir para o topo Ir para baixo
abotelho




Mensagens : 9
Data de inscrição : 15/06/2015

Assinatura do xml ConsultarLoteRpsEnvio Fortaleza Empty
MensagemAssunto: Re: Assinatura do xml ConsultarLoteRpsEnvio Fortaleza   Assinatura do xml ConsultarLoteRpsEnvio Fortaleza EmptyQui Jun 25, 2015 9:48 am

Acabei descobrindo... é só passar o reference vazio e ele assina assim mesmo e funciona.
Ir para o topo Ir para baixo
 
Assinatura do xml ConsultarLoteRpsEnvio Fortaleza
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» E302-Assinatura inválida. (Informar assinatura correta no documento XML.)
» (RESOLVIDO)ERRO O documento XML difere da assinatura. - O documento XML não pode conter alterações após a assinatura.
» E303 - O documento XML difere da assinatura. O documento XML não pode conter alterações após a assinatura.
» Assinatura XML
» [E303] CancelarNfseEnviar (Fortaleza - CE)

Permissões neste sub-fórumNão podes responder a tópicos
Desenvolvimento NFS-e  :: Arquivo XML-
Ir para: