frame

¡Hola amigo!

Pareces nuevo por aquí. Si quieres participar, ¡haz clic aquí!

Acceder Registrarse

¡Hola amigo!

Pareces nuevo por aquí. Si quieres participar, ¡regístrate aquí!

ERROR EN EL FIRMADO DE XML

Buenas tardes con todos...! tengo un problema... estoy tratando de enviar un documento pero SUNAT retorna el siguiente mensaje: Carácter no válido en la codificación proporcionada. línea 50, posición 28. estuve haciendo seguimiento a todo esto y creo es al momento de realizar el firmado... he realizado el mismo procedimiento usando otro certificado de otra empresa y funciona correctamente, pero basta con cambiar el certificado con el que quiero realizar las pruebas y me da error.
Dejo el certificado para que lo puedan descargar y la clave. desde ya muchas gracias.

CLAVE DEL CERTIFICADO: QAZWSXCDE32
https://mega.nz/#!rFB12bAa!BeG_D_K9yv3gQ_e2tB-aSm0Ug_FCr5WUPj4MdWnjBuA

Comentarios

  • Estas probando en hacer este envío con OpenInvoicePeru?

  • Si... el primer envío lo hice con una versión anterior de OpenInvoicePeru... luego lo hice con la versión actual y no se pueden ni siquiera hacer pruebas.. como dije puedes usar el certificado para que pruebes y te darás cuenta que no se puede.

  • @ErickOrlando Otra vez por aquí retomando la pregunta... verás... los datos del certificado tienen letras con tilde y posiblemente por ahí sea el problema del envío del documento firmado con este certificado.. ahora la pregunta es.. se puede agregar con el CDATA[ ]

      < X509SubjectName> E=copegareirl@hotmail.com, CN=MARIO DUBERLY GARCIA PERICHE, OU=Identidad validada por GRAMD, OU=43771641, OU=20530195016, O=CORPORACIÓN PESQUERA GARPER E.I.R.L., L=PIURA, C=PE   

    ... donde dice CORPORACIÓN creo yo que va el problema.. no estoy seguro.. en todo caso crees que se pueda agregar lo que digo del CDATA para caracteres especiales en el firmado y como se haría..?

    aquí dejo la imagen donde muestran los datos del certificado al momento de hacer el firmado del XML
    prnt.sc/dxeeo8

  • Aun no he tenido tiempo de probarlo, pero lo haré.

  • Gracias... te lo agradecería mucho.. mientras tanto seguiré buscando alguna solución.

  • Hola @ErickOrlando he podido solucionar el problema, aunque no es la forma correcta me ayuda a salir del aprieto ya que necesito hacer la homologación.
    veras en una parte del código para hacer el firmado tienes estas líneas

    var keyInfo = new KeyInfo();
    var x509Data = new KeyInfoX509Data(certificate);             
     x509Data.AddSubjectName(certificate.Subject); //Parte donde extrae los datos del certificado             
    

    Parte de los datos que incluye el certificado es la palabra CORPORACIÓN tal como lo mencioné arriba y pues esa Ó tildada estaba generando problemas ya que genera caracteres especiales y pues lo único que se me ocurrió fue reemplazarlo.

    var keyInfo = new KeyInfo();
    var x509Data = new KeyInfoX509Data(certificate);
    x509Data.AddSubjectName(certificate.Subject.Replace("Ó","O")); //Remmplaza la Ó tildada
    

    Llamé a SUNAT y me dijeron que no hay problemas al intentar reemplazar esa letra tildada asi que del momento lo tengo así... puede crearse algún método para reemplazar todas las letras acentuadas, salvo que exista otra manera de solucionarlo. Espero esto le ayude a alguien más y si tienes alguna otra mejor solución pues bienvenida sea. Gracias y Saludos

  • Perfecto! Me alegro, aunque esto es un workaround (solucion temporal), sería ideal que pudieras crear un Issue en GitHub solicitando el desarrollo de una solución que reemplace caracteres especiales dentro de un diccionario (podría estar en una tabla o un archivo de recursos). Y yo trataré de colocarlo para la siguiente versión.
    Saludos.

Accede o Regístrate para comentar.

Foro OpenInvoicePeru

| Foro Técnico OpenInvoicePeru
@ 2016 Erick Orlando, Todos los derechos reservados. Foro Técnico para el proyecto OpenInvoicePeru en GitHub
Powered by VanillaForums, Designed by ThemeSteam

Si crees que el proyecto vale la pena, no dudes en donar.

Donación

Mantente al día