Compañeros, tengo una situacion que no se a ciencia cierta cual es su causa.
Resulta que yo estaba obteniendo la respuesta aceptado por parte de Hacienda para lo XML que enviaba.
Pero ahora, desde hace unos dias, me empezo rechazar los envios indicando que la firma era invalida.
<DetalleMensaje>Este comprobante fue aceptado en el ambiente de pruebas, por lo cual no tiene validez para fines tributarios
La firma del comprobante electrónico no es válida</DetalleMensaje>
Renove el certificado por si acaso fuera eso, pero sigue el mismo error.
Yo estoy utilizando C#, para firmar utilizo como base el codigo que encontre en el sitio de Git de Costa Rica Libre.
El cual copio :
Realmente lo que no se de es los de PolicyIdentifier y PolicyHash.
Sera posible que estos hayan cambiado con respecto a lo que yo coloco.
Realmente no tengo la menor idea de esto. Y de que esta pasando.
Si alguien me puede dar una luz, lo agradecere mucho.
// Firma Archivo
XadesService xadesService = new XadesService();
SignatureParameters parametros = new SignatureParameters
{
// Politica de Firma
SignaturePolicyInfo = new SignaturePolicyInfo
{
PolicyIdentifier = "
https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.1/Resolucion_Comprobantes_Electronicos_DGT-R-48-2016.pdf",
PolicyHash = "Ohixl6upD6av8N7pEvDABhEL6hM=",
// PolicyUri = ""
},
SignatureMethod = SignatureMethod.RSAwithSHA256,
// SigningDate = new DateTime?(DateTime.Now),
DataFormat = new DataFormat(),
SignaturePackaging = SignaturePackaging.ENVELOPED
};
if (InstaladoArchivo == "A")
X509Certificado = new X509Certificate2(RutaNombreCertificado,ClaveCertificado);
else
X509Certificado = MiscelaneasXML.GetCertificateByThumbprint(HuellaDigital);
using (parametros.Signer = new FirmaXadesNet.Crypto.Signer(X509Certificado))
{
using (FileStream filestream = new FileStream(peFicheroFactura, FileMode.Open))
{
var docFirmado = xadesService.Sign(filestream, parametros);
docFirmado.Save(peFicheroFacturaFirmado);
}
}