Usuario
Firmar archivo xml para sunat

Pregunta
-
Hola, buen día a todos, espero puedan ayudarme, ya tengo casi todo listo con el archivo xml para sunat, el problema es que al generar la firma digital todo el elemento <signature> se coloca al final del archivo xml, es decir, la firma se situa siempre al final justo antes del elemento </invoice> y la sunat quiere que la firma esté despues o seguido del elemento <ext:ExtensionContent>
Gracias de antemano por el apoyo.
Esta sería la estructura y el orden correcto
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>S6tPY0M3c0rCnYQu966b23tifCM=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>Z+neH/zv7pg6gtyjoopJBaCCdnGnJt/eyMvVQZH2pl5lN2g01saQUkdTWn9j
wDFV6VdKZiIqNlMAxMjEBc0fzdADUttSg8sysbBiBNuw7GxCgX7phQ1hWK24
Pnc/LvjcHWTYOZnG9xcsWUyrYGBJngBAAaoCPeED/J8wsMOBx+i4NjFGrQdj
GCQhoHeippCJnYrRXwlnD5dW7JTCSwhvuYwNhu3Z2gU1Ip9c8IPAiBNtl2yQ
5NFqZvNP3wA7Ja6uIr3AmieupkHLb6Utj4MqUIbSLNu13xpCT4esajwG9AMa
Pk/9bbuS6/+zMxDlkxbQXJJmuNIGgzTL/g+9dRbyog==</ds:SignatureValue>
Todas las respuestas
-
Hola creo que quedaría así:
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent><ds:SignatureValue>Z+neH/zv7pg6gtyjoopJBaCCdnGnJt/eyMvVQZH2pl5lN2g01saQUkdTWn9j
wDFV6VdKZiIqNlMAxMjEBc0fzdADUttSg8sysbBiBNuw7GxCgX7phQ1hWK24
Pnc/LvjcHWTYOZnG9xcsWUyrYGBJngBAAaoCPeED/J8wsMOBx+i4NjFGrQdj
GCQhoHeippCJnYrRXwlnD5dW7JTCSwhvuYwNhu3Z2gU1Ip9c8IPAiBNtl2yQ
5NFqZvNP3wA7Ja6uIr3AmieupkHLb6Utj4MqUIbSLNu13xpCT4esajwG9AMa
Pk/9bbuS6/+zMxDlkxbQXJJmuNIGgzTL/g+9dRbyog==</ds:SignatureValue><ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>S6tPY0M3c0rCnYQu966b23tifCM=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo> -
-
Hola Juan Carlos, tu inconveniente está en tu función con la que firmas, ahí debes estar agregando la firma al final, en vez de agregarlo en la primera etiqueta que corresponde.
Puedes compartirnos su función de firma, para guiarte en donde está el inconviente, si es que no lo encuentras.