Página 1 de 1
Sello Invalido en ValidaCFD y sello Valido en el SAT.
Publicado: Mar Jun 05, 2012 9:14 am
por Esther
Hola Buen dia.
Espero me puedan ayudar... tengo un problema con un xml de un cliente ya que en el validacfd me marca sello invalido al igual que en el programa que yo hice... pero en el validador del SAT me marca sello valido, reviso el xml y no le encuentro ninguna anormalidad. ademas de que comparo la cadena del validacfd con la del sat y son iguales, no se que pueda estar pasando, otro detalle que vi es que en el sello al final trae dos signos =.
Adjunto xml a validar.
Gracias.
Re: Sello Invalido en ValidaCFD y sello Valido en el SAT.
Publicado: Mié Jun 06, 2012 12:43 pm
por cesarmtassinari
Esther buenas tardes, se te están insertando caracteres adicionales dentro del atributo "certificado".
Desconozco el funcionamiento interno del validador del SAT (lo importante es que te indica que el sello es valido) tal vez quite esos caracteres o descargue el certificado para hacer todo el proceso de validacion.
De cualquier forma creo deberías verificar como grabas ese atributo porque igual con un pequeño validador que uso (Visual Basic 2008 con y sin OpenSSL) me indica que el sello es Inválido pero es porque no puede extraer correctamente ese atributo.
Saludos
César
Re: Sello Invalido en ValidaCFD y sello Valido en el SAT.
Publicado: Jue Jun 07, 2012 10:06 am
por naringas
REsulta que efectivamente, como dice César, están insertando unos caracteres extra en el certificado... Sin embargo ESO ES VALIDO DE ACUERDO AL ESTÁNDAR XML.
El problema es que cada 64 de caracteres, el certificado inserta un salto de linea codificado como una entidad HTML (o XML):
Esto lo hacen por que el certificado para ser "entendido" tiene que tener este salto de linea cada 64 caracteres.
Esta secuencia "
" es equivalente a "\n" en algunos lenguajes.
Para quitar esto lo que hago es usar una funcion que decodifica estas "html entities" y luego aplico una substitución en base a una expresión regular. Ejemplo en PHP:
Código: Seleccionar todo
preg_replace('/\s+/', '', html_entity_decode($certificado->item(0)->value, ENT_QUOTES, 'UTF-8'));
Aunque esta manera sea un tanto más complicada que simplemente sustituir esta secuencia "
", esta manera me garantiza que también se quitan otras entidades como "
" (que si no me equivoco equivale a \r) y cualquier otra que sea espacio en blanco (tabuladores, , etc).
Más información en inglés:
Re: Sello Invalido en ValidaCFD y sello Valido en el SAT.
Publicado: Vie Jun 08, 2012 8:49 am
por Esther
Hola buen día.
Gracias por sus comentarios si ya habia notado eso de los caracteres especiales que trae el certificado, pero le quite el certificado y aun así al validarlo en el valida cfd o en mi programa que descarga el certificado si no lo trae, dice sello invalido, ya no encuentro porque mas sea....
Saludos y gracias
Re: Sello Invalido en ValidaCFD y sello Valido en el SAT.
Publicado: Sab Jun 09, 2012 10:05 am
por naringas
Tiene razón, no es por las "html entities"... Baje el certificado del SAT y lo compare con el que viene incluido, son idénticos.
Tampoco encontré por dónde al examinar la cadena original.
Esto es sumamente extraño, no doy...
