Página 2 de 2
Re: VALIDADOR EN PHP
Publicado: Lun Feb 14, 2011 11:59 am
por Dado
alberto850822 escribió:Sigo con el tema del validador en php, pero me he topado con una duda...alguien sabe si existe alguna forma de obtener la cadena original a partir del sello del xml?.
Se que se puede obtener la cadena original a partir del xml y su respectivo xslt, pero quisiera saber si existe una forma de obtener la cadena original a partir del sello del mismo xml.
Saludos
Nop, eso es imposible, el esquema es de un solo sentido :
Cadena --> Hash --> Sello
Re: VALIDADOR EN PHP
Publicado: Mié Feb 23, 2011 8:48 am
por fortiz
Hola,
Ya estoy un poco mas contento con los resultados de mi validador en PHP.
Todavia no llega ni a los tobillos del validacfd de
dado pero les mando la liga
http://www.lacorona.com.mx/fortiz/sat/cfdcvali.php
Como siempre, estoy abierto a cualquier sugerencia para mejorar el programa.
Saludos
Re: VALIDADOR EN PHP
Publicado: Mié Feb 23, 2011 4:18 pm
por webapps
hola fortiz, probe tu validador con la factura firmada con Java que esta en otro hilo y no la toma como valida, es un detalle de como esta estructurado el certificado es cuestion de un salto de linea "\n" al final... asi lo solucione en el que desarrolle.
Re: VALIDADOR EN PHP
Publicado: Mié Mar 02, 2011 10:43 am
por ferckham
webapps escribió:hola fortiz, probe tu validador con la factura firmada con Java que esta en otro hilo y no la toma como valida, es un detalle de como esta estructurado el certificado es cuestion de un salto de linea "\n" al final... asi lo solucione en el que desarrolle.
Puedes subir el xml del cual no se valida bien con el validador de fortiz porfavor, quiero hacer pruebas con un validador que estamos desarrollando , que por cierto pronto publicare la liga para que todos los usuarios de validacfd puedan testear. Por otro lado alguien sabe donde se puede conseguir los arxhivos xsd de impuestos locales desde la pagina dle sat?
Saludos.
Re: VALIDADOR EN PHP
Publicado: Lun Mar 14, 2011 6:58 am
por webapps
Disculpa la tardanza pero no habia revisado el foro, en este hilo esta:
http://www.validacfd.com/phpbb3/viewtop ... +java#p111
No he vuelto a probar el validador de fortiz tal vez ya realizo los cambios.
Re: VALIDADOR EN PHP
Publicado: Lun Mar 14, 2011 4:18 pm
por ferckham
Gracias vamos a checarlo en nuestro validador y ver que tal responde XD.
Por cierto pronto vamos a publicar la primera version beta del validador, espero que la gente pueda ayudar a depurarlo con sus aportes.
Saludos.
Re: VALIDADOR EN PHP
Publicado: Mié Mar 16, 2011 11:13 am
por alberto850822
fortiz escribió:Hola,
Ya estoy un poco mas contento con los resultados de mi validador en PHP.
Todavia no llega ni a los tobillos del validacfd de
dado pero les mando la liga
http://www.lacorona.com.mx/fortiz/sat/cfdcvali.php
Como siempre, estoy abierto a cualquier sugerencia para mejorar el programa.
Saludos
Buen dia, fortiz, me he tomado la libertad de probar tu validador y he visto que si te arroja sello valido en los xmls firmados con java y open ssl, he probado tu codigo en una implementacion de validador que tambien he estado desarrollando, pero he visto que en el mio me dice que el sello no es valido (utilizando el codigo que publicaste) y he visto que hay un post que habla de un salto de linea al final del certificado, es acaso por esta razon que mi validador me arroja sello invalido.
Saludos
Re: VALIDADOR EN PHP
Publicado: Jue Mar 17, 2011 11:36 am
por ferckham
alberto850822 escribió:fortiz escribió:Hola,
Ya estoy un poco mas contento con los resultados de mi validador en PHP.
Todavia no llega ni a los tobillos del validacfd de
dado pero les mando la liga
http://www.lacorona.com.mx/fortiz/sat/cfdcvali.php
Como siempre, estoy abierto a cualquier sugerencia para mejorar el programa.
Saludos
Buen dia, fortiz, me he tomado la libertad de probar tu validador y he visto que si te arroja sello valido en los xmls firmados con java y open ssl, he probado tu codigo en una implementacion de validador que tambien he estado desarrollando, pero he visto que en el mio me dice que el sello no es valido (utilizando el codigo que publicaste) y he visto que hay un post que habla de un salto de linea al final del certificado, es acaso por esta razon que mi validador me arroja sello invalido.
Saludos
Hola alberto850822, efectivamente ese es el detalle, tienes que eliminar todos los espacion y saltos de linea para que se valide correctamente el sello. Eso era un error que ia corregimos en nuestro validador

Re: VALIDADOR EN PHP
Publicado: Jue Mar 17, 2011 4:24 pm
por alberto850822
Ok muchas gracias ferckham, he hecho la modificacion pertinente para eliminar los caracteres invalidos y efectivamente, el sello ya me lo marca como valido.
Sigo verificando...
Saludos, gracias
Re: VALIDADOR EN PHP
Publicado: Sab Abr 16, 2011 1:02 pm
por nyxweb
fortiz escribió:Hola,
Ya estoy un poco mas contento con los resultados de mi validador en PHP.
Todavia no llega ni a los tobillos del validacfd de
dado pero les mando la liga
http://www.lacorona.com.mx/fortiz/sat/cfdcvali.php
Como siempre, estoy abierto a cualquier sugerencia para mejorar el programa.
Saludos
Que tal fortiz, tu siempre con tus excelentes aportes. Yo desarrollé un validador para una empresa, pero me anticipé a los problemas de validación cuando un sello es generado con un certificado erroneo. Hoy precisamente me tocó descubrir que uno de los proveedores de esta empresa se encuentra en este caso. Me tomo casi una semana darme cuenta de ello. Y he aqui el resultado:
NO UTILIZEN EL CERTIFICADO QUE VIENE EN EL CFD!!!!!
La caldera esta por explotar, ya que esta empresa no le ha pagado a su proveedor desde Enero por que no pasan los CFD la validación en el software que desarrollé, pero si en el validador del SAT. El problema es que no se seleccionó la opción de descargar CSD. Cuando se selecciona esta opción, el validador oficial la marca como inválida. El veredicto fué que el proveedor está usando un CSD incorrecto.
En el caso del validador de fortiz, si utiliza el certificado que viene en el CFD, por eso si pasaba la validación ahi. Pero realmente era inválido.
Dejo a continuación mi granito de arena con el código para descarga del CSD del FTP de hacienda:
Código: Seleccionar todo
<?php
$noCertificado = '00001000000112345678'; // Este deben reemplazarlo con el valor del atributo noCertificado del nodo Comprobante
$rutaFtp = '/Certificados/FEA/' . substr($noCertificado, 0, 6) . '/' . substr($noCertificado, 6, 6) . '/' . substr($noCertificado, 12, 2) . '/' . substr($noCertificado, 14, 2) . '/' . substr($noCertificado, 16, 2) . '/' . $noCertificado . '.cer';
$conn = ftp_connect('ftp2.sat.gob.mx');
ftp_login($conn, 'anonymous', 'test@ejemplo.com');
ftp_get($conn, "/tmp/{$noCertificado}.cer", $rutaFtp, FTP_BINARY); // Aqui estamos descargando el certificado en una ruta temporal, ya que viene en formato DER
ftp_close($conn);
$publica = array();
exec("openssl x509 -inform DER -outform PEM -in /tmp/{$noCertificado}.cer -pubkey", $publica); // Hay que convertir el certificado de formato DER a PEM para poder ser usado en PHP. En este caso, esto se ejecuta en un servidor Linux.
$certificado = implode("\n", $publica);
$pubkeyid = openssl_get_publickey($certificado); // Y aqui ya tienen su llave publica lista para iniciar a validar CFD
Espero sea de ayuda para quien esté haciendo esta clase de implementaciones.
Saludos!!