Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Factura Electronica México (https://www.clubdelphi.com/foros/showthread.php?t=66807)

odrack 10-06-2010 02:01:20

Gracias DADO por la respuesta estaba buscando algo asi que me orientara por donde comenzar, si tengo problemas te enviare un correo o preguntare en el foro que tanto me a ayudado, gracias a una gran parte de este foro he logrado formar un ERP.

mesquivelh 11-06-2010 00:57:53

Cita:

Empezado por dado (Mensaje 366788)
Basicamente lo que te dice la validacion es que no esta bien formada la Addenda.

Yo tengo la "Addenda AMIS", es la que usan las empresas de Seguros como Mapfre, Zurich, Qualitas, etc etc

Para que empresa estas tratando de implementar la Addenda?, hay decenas, Chedraui, Soriana, Chrysler, AMECE, Liverpool, etc etc y mas etc

Es para PEMEX

dado 11-06-2010 05:46:56

Cita:

Empezado por mesquivelh (Mensaje 366929)
Es para PEMEX

Buscando la definicion de la addenda para PEMEX me encontre este documento

Y lo que alcanzo a ver es que esta Addenda, ES LA MAS FACIL que haya visto jamas (bueno, no he visto muchas, pero esta si es facil)

Hay un ejemplo de la addenda :

<Addenda>0047|2009|90309|T|137|GTT-0047|2009</Addenda>

Asi que lo que estas haciendo es correcto :

Código Delphi [-]
CFD.Addenda.Text := '0047|2009|90309|T|137|GTT-0047|2009'

Despues de todo los datos en el XML aparecen como deben ser y en la posicion que debe ser.

Entonces mi teoria es que el validador del SAT "no sabe" interpretar esta Addenda y por eso marca error.

Es mas, me atrevo a decir que el validador del SAT NO DEBERIA marcar error en NINGUNA ADDENDA, la misma ley dice que los datos de la addenda no son regulados por el SAT y son de formato libre.

Lo que creo que esta pasando es que necesitas agregar el "namespace" de la Addenda Pemex.

El namespace es la direccion donde se supone deberia estar la definicion de la addenda.

Por ejemplo el namespace de la factura digital es : xmlns="http://www.sat.gob.mx/cfd/2" junto con otras dos que por ahi aparecen.

Alguien del foro tendra una factura "real" de Pemex que haya pasado la validacion?

Por cierto !!! www.validacfd.com.mx ya valio!!!! :(

mesquivelh 11-06-2010 22:35:45

Muchas gracias dado, espero que tu suposición sea correcta.

dado 14-06-2010 00:03:17

Si, parece que el validador de Hacienda falla al validar las Addendas, estoy trabajando en una Addenda para Mapfre y un colega me proporciono una factura hecha por el prestigiado programa de Aspel.

Recalco lo de "prestigiado" ya que aunque no son una autoridad considero que emplearon muchos recursos para desarrollar un buen producto.

Al tratar de validar dicha factura me muestra los siguientes datos:

Código:

El sello del comprobante es válido:
Se presentaron los siguientes errores al validar la estructura del comprobante C:\Users\Desktop\Addenda_Amis (Aspel).xml
Error: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'ECFD'.

Realizando validación del sello con un certificado interno
Certificado usado : 00001000000001924752
El comprobante incluye un certificado codificado
Cadena original:
||blah|blah||
Digestión MD5 de cadena como HEX:
c876a849de4b1a6cfe4d9becd5f6970e
El sello del comprobante es válido

Asi que aunque no es una prueba "de fuego" si es una muestra de que el validador de hacienda se hace bolas con las addendas

nejamube 18-06-2010 23:06:42

Las reglas cambian [big brother]
 
Pues como en big brother, las reglas cambian para factura electronica.

http://elempresario.mx/centro-soluci...ra-electronica

jourdan 21-06-2010 18:36:49

Señores vengo saliendo de una junta y según me dicen para el 2011 va a haber cambios para los contribuyentes que quiran expedir sus propios comprobantes electronicas ya que estos van a tener que ser autentificados en tiempo real por un Proveedor Certificador Autorizado (van a ser empresas autorizadas por el SAT para autenfificar los CFE), con esto, los que desarrollamos algun sistema vamos a tener que contratar de todas maneras a un tercero autorizado por el SAT para que válide los comprobantes emitidos por nuestros sistemas.
Alguien sabe más de esto?
Gracias y saludos

nejamube 21-06-2010 18:51:22

Creo que no es en una junta donde lo escuchaste, lo leiste en el link que puse anteriormente.

Saludos !.
;)

AzidRain 21-06-2010 19:34:03

Una pregunta para todos, tengo un cliente al cual le desarrollé un software de facturación hace ya algunos años, factura un promedio de 200 documentos diarios. Hace como 3 meses le comenté sobre esta nueva disposición y que habría que tener en cuenta porque no es algo que se pueda echar a andar en poco tiempo, pero le pareció que no tendría problema (él) cuando llegara el momento.

Mi pregunta es de acuerdo con su experiencia, ¿Que tiempo en promedio se requeriría para adaptar un software a esta nueva disposición?. Les comento que mi software trabaja vía internet y el software de contabilidad de mi cliente lo hace de la misma forma además de permitir el registro al momento de facturar, la pega sería nada más todo el rollo de los sellos y demás.

Más que nada porque le quiero dejar claro a mi cliente que si no se decide en x tiempo yo ya no me puedo hacer responsable por hacer esa adaptación precisamente por falta de tiempo.

jourdan 21-06-2010 20:52:04

Cita:

Empezado por nejamube (Mensaje 367894)
Creo que no es en una junta donde lo escuchaste, lo leiste en el link que puse anteriormente.
;)

Nejamube, el articulo del cual pusiste el enlace mencionan que podran coexistir los dos esquemas, es decir el que uno podrá solicitar sus folios y el nuevo en el que hay que verificar los comprobantes en linea atraves de un proveedor autorizado, la información que me mostraron hoy por la mañana menciona que todos tendremos que verificar nuestros comprobantes por un verificador autorizado por el sat. A ver si alguien puede ampliar o validar esta la información
.
Saludos

nejamube 22-06-2010 00:55:06

1. Modelo 2010, antes del 31 de diciembre del 2010.-



Comprobantes Fiscales Digitales CFD (Factura Electrónica) obligatorios para todos los contribuyentes en operaciones mayores a dos mil pesos. En este rubro continuarán vigentes, después de diciembre del 2010, los esquemas actuales de CFD (emisión propios medios y terceros), en donde los requisitos no sufren ninguna modificación. Este esquema coexistirá con el nuevo modelo que tomará vigencia en enero del 2011.


2. Modelo 2011, a partir del 1 de enero del 2011.-



Al utilizar este esquema, se debe remitir el CFD al SAT o al prestador de servicios autorizado por la autoridad para validar los requisitos estipulados en el artículo 29-A del Código Fiscal de la Federación, asignar número de folio e incorporar el Sello Digital del SAT, para después enviar dicho documento validado al receptor.

“Entre los beneficios de este nuevo modelo desaparece el requisito de contabilidad electrónica (sólo se tendrá que registrar en la contabilidad interna de la empresa) y el reporte mensual, además de acelerar las devoluciones de impuestos. El documento se debe resguardar durante 5 años y tiene convivencia con los esquemas actuales”, según la Asociación Mexicana de Estándares para el Comercio Electrónico, AMECE-GS1 México.


:eek::eek::eek::eek::eek::eek::eek::eek::eek:


:rolleyes:


http://elempresario.mx/centro-soluci...ra-electronica

dado 22-06-2010 01:01:43

jourdan

El termino que estan usando es "timbrar" (recuerdan la Ley del Timbre, yo creo que no, muchos de nosotros ni siquiera existiamos).

Aqui hay una presentacion que me parece interesante http://www.slideshare.net/faroviejo/facturas-digitales

Tambien he visto que "estaran conviviendo los dos esquemas", es decir el de Medios Propios como lo hemos desarrollado y mediante el timbrado con el SAT.

Hay un blog interesante donde mencionan 5 (si!! CINCO) esquemas que van a estar vigentes....aqui

AzidRain

Acerca de cuanto tardaras en implementar, te comento que (perdon la vanidad) soy un programador experimentado y me tarde 3 meses en convertir un programita de factura convencional a factura electronica.

Sabes? lo mas dificil de un programador no es la programacion "per se" si no mas bien el contexto....deja me explico con un ejemplo inventado....

Supon que un programador muy fregon de repente le piden hacer el software para que controle un hospital, debe controlar los medicamentos, las salas de operacion (el horario etc), los costos, la entrada y salida de ambulancias, etc etc.

Pareceria simple, pero quien (sin ofender, solo es un ejemplo) de nosotros sabe que fregados pasa dentro de un hospital.....

Entonces lo dificil va a ser, ver como se va a mandar la factura al SAT para el timbrado, mediante ftp? con www? SOAP? POAS? PAS PIS? y si ya tienes experiencia en eso, entonces es pan comido

jourdan 22-06-2010 02:20:51

Cita:

Empezado por dado (Mensaje 367942)
El termino que estan usando es "timbrar" (recuerdan la Ley del Timbre, yo creo que no, muchos de nosotros ni siquiera existiamos).

Dado, exactamente esto es lo que mencionaron hoy por la mañana, parece inclusive que la miscelanea fiscal de esto aún no ha sido publicada y son puros rumores de desarrolladores que tienen contacto con el SAT para hacer el outsourcing del timbrado.
Muchas gracias, voy a revisar la información que publicas.
Saludos

jourdan 22-06-2010 02:49:13

Dado, esta excelente la información del blog que mencionas en tu mensaje anterior, gracias.

JXJ 22-06-2010 03:55:23

Azid Rain,

yo calculo que como 1 mes mas o menos.

pues hay mas que solo los detalles de la generacion de la factura
sino tambien asuntos de la comunicacion con el SAT y el
tramite de los Certificados. y su administracion.

AzidRain 22-06-2010 16:59:09

Gracias jxj, tomaré en cuenta el dato.

Oscar Súchil 02-07-2010 19:18:12

Validador de CFD's
 
Que tal soy nuevo en este foro, he estado siguiendo su foro y me parece bastante enriquecedor y retroactivo; pues bien me encargo de generar una solución de factura electrónica para la empresa que trabajo hasta ahora no he tenido problemas con la generación de mi xml y sello digital.... pero
me pidieron realizar como complemento un validador en forma de servicio para
todas las facturas que lleguen, de lo cual lo único que he podido avanzar es validar los folios y certificados pero el sello digital no tengo ni idea de por donde empezar; tomando en cuenta como genero el sello y tener en cuenta como sería el proceso inverso requiero lo siguiente:

> Archivo .Cer con el certificado referenciado por el no. de serie de las facturas recibidas
> Extraer la clave publica del .cer pasado a .pem
> utilizar la clave pública en otro archivo para desencriptar el sello digital
pasado a bytes y haber quitado la expresión en base 64 bits.


Y listo en teoría debería de obtener el mensaje encriptado ó al menos el MD5

Peeeeeeeero, mi problema es como espera el SAT que hagamos un validador por lote si nos pone solo su validador para hacerlo 1 x 1 en su página

../ValidadorComprobantes/Validador.html(todavia no me dejan poner links)

He querido descargar de esta pagina los certificados de los clientes que
me envian sus facturas, y nada mas no me deja

> Aqui accedo para descargar el .cer

../sitioaplicaciones/verifica_comprobante/
> Aqui debería de poder descargarlo
../tramitesdigitales.sat.gob.mx:9443/certisat/validate.jsp
Entonces aterrizando un poco mi duda, alguien sabe como debería de hacer
esta validación ya que es la más importante para saber si el contenido es ó
no el correcto?

O bien alguien conoce si el SAT ya hizo su chamba y publico algún otro ftp
ó web service?, ó bien alguien sabe como le hizo validacfd.com.mx para validar el sello?, chax de verdad que ando medio frustradon por esto es lo
último que me falta .

Agradezco cualquier info que tengan .

skime 03-07-2010 00:40:04

Hola compañeros.... me acabo de integrar al foro... realmente yo no se mucho object pascal pero si puedo ayudarles en un codigo que tengo en vb.net y funciona bastante bien.... talvez uds lo pueden cambiar al lenguaje que mas les acomode, solo espero que si alguno de uds tiene un metodo con chilkat me lo haga llegar, con todo gusto lo puedo compartir

Oscar Súchil 03-07-2010 02:43:03

Ok
 
Hola skime,

Pues me llevo bien con vb.net no habría problema yo tengo un proyecto
con lo que empece la facturación electrónica en chilkat pero la verdad
ya no lo continue por que teníar restricciones despues de 30 dias de uso
pero te lo puedo compartir esta programado en vb.net.

Ahora te explico no tengo problemas con la emisión si no con la recepción
utilizando openssl básicamente a continuación explico como estoy intentando
hacerlo:

Asi encripto:

open dgst -md5 -sign "claveprivada.pem" -out "md5.txt" "cadena.txt"

claveprivada.pem > clave para encriptar cadena original
md5.txt > resumen hash firmado de la cadena original
cadena.txt > archivo que contiene la cadena original a encriptar

Asi desencripto pero no me sale:

openssl rsautl -in sello.txt -out desencriptado.txt -inkey cer.pem -decrypt

cer.pem > certificado digital .cer convertido a .pem
sello.txt > archivo que contiene el sello digital en .txt


Este último código no funciona pero me gustaría saber si lo estoy haciendo bien el desencriptado?

Agradezco cualquier ayuda de ustedes.

skime 03-07-2010 02:56:32

Cita:

Empezado por Oscar Súchil (Mensaje 369054)
Hola skime,

Pues me llevo bien con vb.net no habría problema yo tengo un proyecto
con lo que empece la facturación electrónica en chilkat pero la verdad
ya no lo continue por que teníar restricciones despues de 30 dias de uso
pero te lo puedo compartir esta programado en vb.net.

Ahora te explico no tengo problemas con la emisión si no con la recepción
utilizando openssl básicamente a continuación explico como estoy intentando
hacerlo:

Asi encripto:

open dgst -md5 -sign "claveprivada.pem" -out "md5.txt" "cadena.txt"

claveprivada.pem > clave para encriptar cadena original
md5.txt > resumen hash firmado de la cadena original
cadena.txt > archivo que contiene la cadena original a encriptar

Asi desencripto pero no me sale:

openssl rsautl -in sello.txt -out desencriptado.txt -inkey cer.pem -decrypt

cer.pem > certificado digital .cer convertido a .pem
sello.txt > archivo que contiene el sello digital en .txt


Este último código no funciona pero me gustaría saber si lo estoy haciendo bien el desencriptado?

Agradezco cualquier ayuda de ustedes.


----------

Que ondas amigo.... no habia leido con atencion el código que pusiste.... yo unicamente utilizo OpenSSL para crear la conversion de la clave privada a PEM, despues de ahi todo lo hago por medio de bouncycastle..... te puedo mandar el codigo pero no se si aqui en el foro se me permita darles mi cuenta de email para que me agreguen y explicarles bien... me encuentro en completa disposicion a aportar este engorroso y fastidioso tema generado por la ignorancia de los informaticos del SAT :)

nuk3zito 03-07-2010 17:22:47

Cita:

Empezado por AzidRain (Mensaje 367907)
Una pregunta para todos, tengo un cliente al cual le desarrollé un software de facturación hace ya algunos años, factura un promedio de 200 documentos diarios. Hace como 3 meses le comenté sobre esta nueva disposición y que habría que tener en cuenta porque no es algo que se pueda echar a andar en poco tiempo, pero le pareció que no tendría problema (él) cuando llegara el momento.

Mi pregunta es de acuerdo con su experiencia, ¿Que tiempo en promedio se requeriría para adaptar un software a esta nueva disposición?. Les comento que mi software trabaja vía internet y el software de contabilidad de mi cliente lo hace de la misma forma además de permitir el registro al momento de facturar, la pega sería nada más todo el rollo de los sellos y demás.

Más que nada porque le quiero dejar claro a mi cliente que si no se decide en x tiempo yo ya no me puedo hacer responsable por hacer esa adaptación precisamente por falta de tiempo.


Un mes aproximadamente Azid. El trámite del certificado te lleva solo unos minutos; el trámite de los folios te lleva otros minutos pero desde el momento en que se te asignan los folios debes empezar a utlizarlos, es decir, la empresa no puede seguir imprimiendo facturas como tradicionalmente lo hace si el SAT ya te asignó los folios, así que considera en tus planeaciones un buen tiempo para pruebas.
Las tareas son básicamente las siguientes:
1) Construcción del XML, con sello digital y Addendas (cuando sean requeridas).
a) Te recomiendo usar tablas en donde guardes todos los campos necesarios para utilizarlos en el formato de impresión nuevo. Yo usé las tablas como las propone el esquema .XSD que libera el sat.
2) Construcción de un nuevo formato de impresión (no todo es XML)
3) Modificación de tus sistemas en las funciones que marcan las facturas como impresas. Es en esta parte es donde se mandan llamar las funciones de generación de CFD.
4) Construcción de los módulos que permiten la captura de el(los) certificado(s) y rangos de folios.
5) Generación del reporte de Comprobantes Fiscales Mensuales Emitidos
6) Pruebas exhaustivas

Un mes le calculo yo como máximo, pero si usas alguna librería de apoyo (yo usé firmaSAT de www.cryptosys.net) te llevará una semana menos mínimo.

Saludos.

dado 03-07-2010 19:51:26

Validador, En Fase Beta
 
Hola,

Estoy solicitando personas interesadas en probar un validador de CFD's

Les invito a entrar a www.validacfd.com para ver de que se trata.

nuk3zito 03-07-2010 19:52:50

Cita:

Empezado por dado (Mensaje 369089)
Hola,

Estoy solicitando personas interesadas en probar un validador de CFD's

Les invito a entrar a www.validacfd.com para ver de que se trata.

¿Y ese lo hiciste tu o que onda?

Yo me anoto, nomás por apoyar pues gracias a Dios tengo todo en orden.

dado 03-07-2010 20:13:14

Cita:

¿Y ese lo hiciste tu o que onda?

Yo me anoto, nomás por apoyar pues gracias a Dios tengo todo en orden.
Si, lo estoy desarrollando yo personalmente, no quiero ponerlo (todavia) para descargarlo abiertamente ya que tiene muchas fallas y le voy a poner mas.....:p.....perdon, quise decir que todavia le voy a meter mas funciones, pero lo basico ya esta listo.

Por favor, a los interesados en ayudar a probarlo mandenme un mail a cubo@validacfd.com para poder llevar un control.

NOTA: Ahorita llevo como un 35% del desarrollo, NO ES FUNCIONAL, asi que si lo solicitas solo "por curiosidad" mejor espera para Agosto-Septiembre cuando este bien terminado y probado.

nuk3zito 03-07-2010 20:17:38

Cita:

Empezado por dado (Mensaje 369091)
Si, lo estoy desarrollando yo personalmente, no quiero ponerlo (todavia) para descargarlo abiertamente ya que tiene muchas fallas y le voy a poner mas.....:p.....perdon, quise decir que todavia le voy a meter mas funciones, pero lo basico ya esta listo.

Por favor, a los interesados en ayudar a probarlo mandenme un mail a cubo@validacfd.com para poder llevar un control.

NOTA: Ahorita llevo como un 35% del desarrollo, NO ES FUNCIONAL, asi que si lo solicitas solo "por curiosidad" mejor espera para Agosto-Septiembre cuando este bien terminado y probado.

Bueno, el gran problema es que afortunadamente todos mis CFD's son válidos. Va a estar aburrido estar probando el software. Lo que me llegó a dar dolores de cabeza eran los .XSD que tenía que hacer para las addendas.
Mejor me espero que oficialmente lo liberes para no quitarte tiempo.

Saludos y suerte.

Oscar Súchil 05-07-2010 18:17:16

Ups no se ocupar Bouncy castle
 
Hola que tal, pues no se si puedas publicar tu email pero mira el mio
es el de gil2285 esta en hotmail, si puedes enviarme algo de lo que
hiciste me sería de mucha ayuda, te aviso que solo necesito validar
el sello digital que esta contenido en el xml lo demàs del certificado
y los folios ya lo tengo (espero completo).

Gracias, estamos en contacto.

Oscar Súchil 05-07-2010 18:27:01

Hola que tal dado
 
Mas que entrar como tester, me gustaría saber si ya has podido realizar la validación del sello digital, me explico mejor, estoy realizando un validador de
cfd para mi empresa como receptor de facturas xml, ya llevo lo siguiente:

> Validar que el certificado este vigente
> Validar que el certificado este a nombre del Emisor
> Validar que los folios pertenezcan a una serie valida
> Validar que los folios pertenezcan al Emisor
> Validar que los folios no han sobrepasado sus máximos

Lo que me falta:

> Validar el sello digital con la clave pùblica (esta no encuentro como extraerla, bajarla del sat, crearla, no tengo ni idea como obtenerla)
> En teoría con un archivo tipo publickey.key debería de poder desencriptar
el sellodigital, pero hasta ahora no encontrado que sentencia utilizar para
openssl.


> Desencriptar sello digital
> Obtener cadena original y reencriptarla con la clave pùblica
> Comparar el sello digital generado con el que se encuentra en el CFD recibido.


Actualmente estoy trabajando en modo servicio local, utilizando openssl.

Que estes bien , saludos.

dado 05-07-2010 19:10:53

Oscar ::::

Si, de hecho la idea principal de mi ValidaCFD es que pueda ser usado por todo el publico PARA RECIBIR FACTURAS, exactamente lo que tu estas haciendo.

Para validar el sello.....es un proceso largo pero sencillo (especialmente sencillo cuando sabes como hacerlo je je je).

Te doy "la punta de la madeja", te toca desentrañar todo el desarrollo.

1. Tomas la cadena "Certificado" de tu XML, la DIVIDES en lineas de 64 caracteres cada una, despues le agregas el encabezado -----BEGIN CERTIFICATE----- y el pie -----END CERTIFICATE----- (el numero de guiones y la frase debe ser EXACTA)

2. Grabas ese certificado en un archivo, digamos "certificado.PEM" (no voy a explicar muchos detalles, pero donde veas negrillas es porque hay informacion que debes estudiar si quieres saber que esta pasando)

3. Toma la cadena "Sello" de tu XML, la DIVIDES en lineas de 64 caracteres y la grabas en archivo con nombre digamos "sello.txt"

4. Generas la cadena original (esta te la tienes que aventar "a mano", es decir, no esta en el XML) y la grabas en un archivo, digamos "cadena.txt" IMPORTANTE no se te olvide grabarla codificada con UTF8 (ver UTF8ENCODE de Delphi)

5. Ejecutas lo siguiente :

openssl x509 -in "cert.PEM" -pubkey -noout >pubkey.txt
(para obtener la llave publica)

openssl enc -base64 -d -in "sello.txt" >sellobin.txt
(para pasar el sello de base64 a binario)

openssl dgst -md5 -verify "pubkey.txt" -signature "sellobin.txt" "cadoriginal.txt" >resultado.txt
(aqui esta toda la magia, en el archivo "resultado.txt" tienes......el resultado)

Oscar Súchil 07-07-2010 17:03:50

Ya casi queda
 
Cita:

Empezado por dado (Mensaje 369244)
Oscar ::::

Si, de hecho la idea principal de mi ValidaCFD es que pueda ser usado por todo el publico PARA RECIBIR FACTURAS, exactamente lo que tu estas haciendo.

Para validar el sello.....es un proceso largo pero sencillo (especialmente sencillo cuando sabes como hacerlo je je je).

Te doy "la punta de la madeja", te toca desentrañar todo el desarrollo.

1. Tomas la cadena "Certificado" de tu XML, la DIVIDES en lineas de 64 caracteres cada una, despues le agregas el encabezado -----BEGIN CERTIFICATE----- y el pie -----END CERTIFICATE----- (el numero de guiones y la frase debe ser EXACTA)

2. Grabas ese certificado en un archivo, digamos "certificado.PEM" (no voy a explicar muchos detalles, pero donde veas negrillas es porque hay informacion que debes estudiar si quieres saber que esta pasando)

3. Toma la cadena "Sello" de tu XML, la DIVIDES en lineas de 64 caracteres y la grabas en archivo con nombre digamos "sello.txt"

4. Generas la cadena original (esta te la tienes que aventar "a mano", es decir, no esta en el XML) y la grabas en un archivo, digamos "cadena.txt" IMPORTANTE no se te olvide grabarla codificada con UTF8 (ver UTF8ENCODE de Delphi)

5. Ejecutas lo siguiente :

openssl x509 -in "cert.PEM" -pubkey -noout >pubkey.txt
(para obtener la llave publica)

openssl enc -base64 -d -in "sello.txt" >sellobin.txt
(para pasar el sello de base64 a binario)

openssl dgst -md5 -verify "pubkey.txt" -signature "sellobin.txt" "cadoriginal.txt" >resultado.txt
(aqui esta toda la magia, en el archivo "resultado.txt" tienes......el resultado)

Que tal Dado, antes que nada te quiero agradecer por la ayuda no tienes una idea cuanto haz facilitado mi comprensión del validador, ya pude acabar todo el proceso, y ya estuve probando contra el validador del sat y nada mas no puedo hacer que sea valido mi resultado siempre aparece

"Verification Failure"

Mira este es mi cadena original en el archivo

utf8.txt

||2.0|A|7306|2010-05-25T10:25:46|44616|2009|ingreso|PAGO EN UNA SOLA EXHIBICION|MONEDA: MXN, TC: 1.0000|700.00|0.00|812.00|DAA020218JY1|DSV AIR & SEA, S.A. de C.V.|Indiana|260|Piso 11 Desp.1107|Ciudad de los Deportes|TEL: (55) 6515-6525|BENITO JUAREZ|Distrito Federal|M?xico|03710|GPU030429I10|
GESTAMP PUEBLA SA DE CV|AUTOMOCION 8 SAN LORENZO|ALMECATLA CUAUTLANCINGO PUEBLA C.P. 72710|MEXICO|1|PZA|392|TRANSFERENCIA ELECTRONICA MANIFIESTO|700.00|700.00|IVA|16.00|112.00|112.00||


Esta es la que aparece en el validador del sat en el recuadro de cadena original.

||2.0|A|7306|2010-05-25T10:25:46|44616|2009|ingreso|PAGO EN UNA SOLA EXHIBICION|MONEDA: MXN, TC: 1.0000|700.00|0.00|812.00|DAA020218JY1|DSV AIR & SEA, S.A. de C.V.|Indiana|260|Piso 11 Desp.1107|Ciudad de los Deportes|TEL: (55) 6515-6525|BENITO JUAREZ|Distrito Federal|México|03710|GPU030429I10|
GESTAMP PUEBLA SA DE CV|AUTOMOCION 8 SAN LORENZO|ALMECATLA CUAUTLANCINGO PUEBLA C.P. 72710|MEXICO|1|PZA|392|TRANSFERENCIA ELECTRONICA MANIFIESTO|700.00|700.00|IVA|16.00|112.00|112.00||

La única diferencia apreciable es el acento en México por M?xico (ojo esto ya lo modifique a pata para ver si eso era y no sigue dando error); como lo
expresa en mi programa pero según yo ya lo exprese en UTF8 y genere
el sello, pero no logro hacer que se valide el sello, no se cual sea el error
ya estuve cambiando la cadena a UTF8 a mano sin mi programa y nop no me
deja, el sello lo dividí en 64 caracteres asi como lo pase a binario mira aqui
te dejo los demas datos:

sello.txt:

aSBXOlIeM6HG1Iqaj8vpBNR29It1PmDdkgGOkeslzV13M1pxDNfxeU1CybvlU5TO
StXmiFLFnWBmfasg3BnJVqDlruDhMyfne3TyjXZ8Ng9q8EyFkO/1IElIaGCO8fig
8gIru30smNsi3iXj9NKOqgwjRHq2Alyss3DAx0goLR8=

sellobin.txt:

i W:R3¡ÆÔŠšËéÔvô‹u>`Ý’Ž‘ë%Í]w3Zq ×ñyMBÉ»åS”ÎJÕæˆRÅ`f}« ÜÉV å®àá3'ç{tòv|6jðL…ïõ IHh`Žñø ò+»},˜Û"Þ%ãôÒŽª #Dz¶\¬³pÀÇH(-

pubkey.txt:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqJBY3wC8c/90lDXbs5ua2n2aJ
ueaeUbo3U4kTUQ0mMfrChnEbbpNllbZoGeMl1dwxTj4IQD71iYiLU3sZQIYQdaVK
sQiL3B6Dy31cJWPuHECfPXIFZ4Nvy0c9s8SY5DrQfgtySzdXFk6Z4kgLU5RDXeej
LkxXQtQAFp9qC68n5wIDAQAB
-----END PUBLIC KEY-----

cert.pem:

-----BEGIN CERTIFICATE-----
MIIEIjCCAwqgAwIBAgIUMDAwMDEwMDAwMDAxMDA3MjgwNjMwDQYJKoZIhvcNAQEF
BQAwggE2MTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJh
Y2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3Ry
YWNpw7NuIFRyaWJ1dGFyaWExHzAdBgkqhkiG9w0BCQEWEGFjb2RzQHNhdC5nb2Iu
bXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYD
VQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVy
YWwxEzARBgNVBAcMCkN1YXVodGVtb2MxMzAxBgkqhkiG9w0BCQIMJFJlc3BvbnNh
YmxlOiBGZXJuYW5kbyBNYXJ0w61uZXogQ29zczAeFw0wOTA2MjUxNzU5MjNaFw0x
MTA2MjUxNzU5MjNaMIHCMR8wHQYDVQQDFBZEU1YgQUlSICYgU0VBIFNBIERFIENW
MR8wHQYDVQQpFBZEU1YgQUlSICYgU0VBIFNBIERFIENWMR8wHQYDVQQKFBZEU1Yg
QUlSICYgU0VBIFNBIERFIENWMSUwIwYDVQQtExxEQUEwMjAyMThKWTEgLyBWQUdU
NzAxMTI0UkEzMR4wHAYDVQQFExUgLyBWQUdUNzAxMTI0TURGTE5SMDMxFjAUBgNV
BAsTDUNFTlRSTyBERUwgREYwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOok
FjfALxz/3SUNduzm5rafZom55p5RujdTiRNRDSYx+sKGcRtuk2WVtmgZ4yXV3DFO
PghAPvWJiItTexlAhhB1pUqxCIvcHoPLfVwlY+4cQJ89cgVng2/LRz2zxJjkOtB+
C3JLN1cWTpniSAtTlENd56MuTFdC1AAWn2oLryfnAgMBAAGjHTAbMAwGA1UdEwEB
/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBBQUAA4IBAQDSAqh45oVZhK9Q
En605MctBanZqUF967LV5uLY1zRhaAf1IVnOVK2fcp/icvb2jm4vua7odjPBgkfs
OhE8gOvgo6pmUlq2a2zakBTQpWSjK4hhvGyMqFi5J/OW5EXazWaQCh2fSlTcBo0v
7t2hsJd63TvnSNXAY7JiT7/i1rnhMUXa0deUapiPUAhQwo/kSb6cGM5nArbCaAjR
8oxXMd0EEXsekJBJHrj1txjzGJhfgaa5oy6ia19ubXsFONCjhoTF6yXTM1jFxtEy
wFtpmIRHAiC43U525K9dkSB1Ql88GUSwtS9Is7AeFZ07b/W131MJ9zdJb00iYi13
x3QX9LIO
-----END CERTIFICATE-----

Mis sentencias de openssl utilizadas son:
openssl x509 -in C:\DesencriptarSelloSAT\Config\PubKey\gencer.pem -pubkey -noout >C:\DesencriptarSelloSAT\Config\PubKey\pubkey.txt
openssl enc -base64 -d -in C:\DesencriptarSelloSAT\Config\PubKey\sello.txt >C:\DesencriptarSelloSAT\Config\PubKey\sellobin.txt
openssl dgst -md5 -verify C:\DesencriptarSelloSAT\Config\PubKey\pubkey.txt -signature C:\DesencriptarSelloSAT\Config\PubKey\sellobin.txt C:\DesencriptarSelloSAT\Config\PubKey\utf8.txt >C:\DesencriptarSelloSAT\Config\PubKey\resultado.txt


Cualquier asesoría que me puedas proporcionar te la agradeceré, yo mientras le sigo buscando haber que encuentro, de antemano gracias.

dado 07-07-2010 17:46:16

Verificar el sello
 
OSCAR ::

Hice una copia de mi comentario de como verificar el sello en este foro en la categoria "OpenSSL en general"

Tambien ahi acabo de redactar otra entrada que puede ayudarte un poco.

Oscar Súchil 08-07-2010 16:58:59

Mil gracias y ya valide el sello!!
 
Cita:

Empezado por dado (Mensaje 369564)
OSCAR ::

Hice una copia de mi comentario de como verificar el sello en este foro en la categoria "OpenSSL en general"

Tambien ahi acabo de redactar otra entrada que puede ayudarte un poco.


Que tal dado, nuevamente grraaaaaaaaaaaaaaaaaaaaaaciaaaaaaaaaaaaass
por tu ayuda, you are the man!! jajaja, pues bien solucioné mi problema y ya puedo validar sellos en mi servicio, te explico cual era mi error, de hecho era
bastante básico.

Como sabes todos los xml recibidos se encuentran codificados con el head
encoding="utf-8"?
Pues bien yo al momento de leerlos, no me había dado cuenta que les convertía a ASCII,por que buscaba leerlos como ASCII no como UTF8
por lo tanto hacía esta conversión extraña de la que te comentaba, en la cual me cambíaba los acentos por símbolos como " ó ? una vez encontrado
donde leía mi xml como ascii y cambiándolo para utf8, el problema quedó
resuelto, por ende se generó la cadena original de manera correcta y dío un resultado de "Verified OK" para los que se marcan con esta codificación.

Lo que hice para delimitar excepciones es un filtro previo de la estructura del xml, en el me sercioro primero que el archivo se encuentre codificado en utf-8 de lo contrario no entra a las demás validaciones, es bastante práctico ahora me encuentro validando otros puntos de la estructura del XML.

Como son:

> Namespaces bien referenciados
> La referencia al xsd que seá correcta


Etc, etc.

No sabes en verdad como te puedo agradecer tu asesoría, que estes muy bien y pues voy a seguir agregando condiciones a mi validador, y manteniendote informado así puede que yo valide aspectos que a ti se te pasen ó viceversa, que estes muy bien amigo.

Saludos.

LordRiper 09-07-2010 00:22:46

AccesViolation
 
Saludos gente.. primero que nada muchisimas gracias por compartir sus conocimientos. Stoy muuuy cerca, pero aun tengo la bronca con Sello.pas, estoy usando Delphi6 y siempre truena, nomas no he podido encontrar el porque, ¿alguien tendra alguna pista? y otra: alguien tendra el sello correcto para los certificados de prueba y la cadena de prueba (la que el emisor es CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS o Industrias del Sur Poniente, S.A. de C.V.)

dado 10-07-2010 23:48:23

Validador de Facturas Electronicas
 
Ya esta listo !!

En www.validacfd.com publique la version 0.1 del ValidaCFD, programa para validar Comprobantes Fiscales.

Los invito (y hasta los reto) a que verifiquen sus CFD tanto los que han programado como los que reciben "dia a dia" de sus compras habituales.

Otra noticia, debido al gran numero de preguntas que me han hecho por correo electronico he decidido crear ahi mismo (en www.validacfd.com ) un foro dedicado exclusivamente para factura electronica.

Se que en este foro de Club Delphi se pueden encontrar muchas respuestas, pero como saben este es un foro de PROGRAMACION y muchas veces me preguntan cosas como ¿como tramito los folios? que no tiene nada que ver con Delphi.

Asi que por alla los espero..Saludos.

LordRiper 15-07-2010 22:46:52

Saludos...

Pues ya quedo, mi CFD pasa la validacion, bueno, la de dado si me marca algunos errores, pero la del SAT sale perdecta. Ahora solo resta la integracion al ERP que debera ser painless :D:D:D.

Solo comentarles que estaba intentando sacar la cadena original como debe ser, haciendo una transformacion con el xslt que proporciona el SAT, y nomas no me daba bien el sello. tube que sacar la cadena original a manita, y ya comparando ambas cadenas me di cuenta que faltaba al principio un pipe y al final el pipe doble, CREO que eso es un error del XSLT que da el SAT ¿no?

muchas gracias a todos ustedes (y a Fernando Ortiz por supuesto) por los aportes, sin los cuales hubiera sido imposible lograrlo... GRACIAS

dado 15-07-2010 23:03:48

Cita:

Empezado por LordRiper (Mensaje 370571)
Saludos...

Pues ya quedo, mi CFD pasa la validacion, bueno, la de dado si me marca algunos errores, pero la del SAT sale perdecta. Ahora solo resta la integracion al ERP que debera ser painless :D:D:D.

Solo comentarles que estaba intentando sacar la cadena original como debe ser, haciendo una transformacion con el xslt que proporciona el SAT, y nomas no me daba bien el sello. tube que sacar la cadena original a manita, y ya comparando ambas cadenas me di cuenta que faltaba al principio un pipe y al final el pipe doble, CREO que eso es un error del XSLT que da el SAT ¿no?

muchas gracias a todos ustedes (y a Fernando Ortiz por supuesto) por los aportes, sin los cuales hubiera sido imposible lograrlo... GRACIAS

Que bien! me interesaria muchisimo si me pudieras mandar la factura que mencionas, en donde hay diferencia entre mi validador y el del SAT, ya que con una muestra como la que me mandarias es la unica forma de descubrir en donde falla mi validador....

De antemano muchas gracias.

Saludos,
cubo@validacfd.com

LordRiper 15-07-2010 23:26:17

1 Archivos Adjunto(s)
no dado, no hay diferencia creo yo, mas bien solo te falta un if por si es certificado de prueba que no lo busque en el listado del SAT tu validador me marca error en:
  • el folio, que obvio es inventado, el validador no lo encuentra en el archivo que proporciona el SAT y
  • me dice que el RFC AAA010101AAA no aparece en el listado, igual porque es de prueba, supongo
  • el no. de certificado, ay si tengo duda, porque el no. de certificado lo saco del mismo certificado, puede ser que yo lo saque mal, ay si no se (uso el certificado 1 de los que provee el SAT), si me puedes hechar una mando...
Te anexo la factura

dado 16-07-2010 00:48:17

Aaaaaaaaaah! ya me estabas "espantando", je je je

Solo es falta de interpretacion o de como expreso el resultado.

Es correcto, el NoCertificado coincide bien con el numero de serie que extraigo del certificado digital, ahi no hay duda

Ahora cuando mi validador dice
Cita:

No hay relacion entre el RFC del Emisor y el Numero de Certificado
se refiere precisamente a que se esta usando un certificado "que no es del Emisor" es decir es prestado, robado o es el de PRUEBA.

Sabes? el problema surge cuando dices "es valido este numero de certificado?" , bueno, es valido "contra que?" hay varias respuestas:

El numero de certificado (atributo NoCertificado) es valido contra el numero de certificado que se extrae del atributo "Certificado"?

El numero de certificado es valido junto con el RFC, asi en conjunto, como pareja? (es decir si es "su" certificado)

El numero de certificado es valido contra la lista de certificados expedidos?

y otras....

Mi validador hace TODAS las verificaciones y ofrece el resultado en los distintos renglones, en alguno debe caer el error.

Cosa que por cierto NO HACE EL SAT!! ahi no te dice nada acerca del certificado, creo que es un error gravisimo del validador oficial, no verifica si el certificado es valido o no.

LordRiper 19-07-2010 19:30:19

asi es, bastante balin el validador del SAT, pero pues es el oficial, asi que nimodo...

LordRiper 22-07-2010 01:02:06

Aprobacion
 
Saludos...

Una pregunta de parbulos: de donde saco NoAprobacion y AnoAprobacion?? son datos fijos que meto "a mano" o los debo obtenrt del certificado??

dado 22-07-2010 04:15:39

Aqui en este foro puedes consultar que significa noAprobacion y anoAprobacion, si tienes dudas ahi mismo puedes hacer mas preguntas.

Nota para este honorable foro de Club Delphi. Se que puede ser mal visto el tratar de desviar este hilo a otro lado. Pero creo que esta pregunta ya no cae dentro de "como programo en Delphi esto o aquello......".

Como podran ver en la respuesta que ofrezco "alla" es mas bien un tramite administrativo que debemos hacer con la Secretaria de Hacienda.

Estoy abierto a cualquier critica. :o


La franja horaria es GMT +2. Ahora son las 18:12:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi