Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Facturacion electronica en México (http://www.forosdelweb.com/f18/facturacion-electronica-mexico-638882/)

Edg_LB 16/12/2009 16:03

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por dumysoft (Mensaje 3207500)
Gracias por tu amabilidad.
Te comento que probando el codigo me marca un error aqui AsymmetricKeyParameter pk = Cert.GetPublicKey();

Referencia a objeto no establecida

a que namespace pertenece esa funcion?

o que puede ser?


Es esta la referencia:
Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey();

Con eso obtiene la clave publica del certificado, y con esa desencriptas, y ahi mismo obtienes el numero de certificado que te piden en al xml, incluso cuando lees la clave privada, ahi mismo puedes obtner la clave publica, y es la misma que si la lees del certificado, solo que tienes que leer el certificado por que obtienes el numero de serie, con el codigo que e pase antes ya te trael la el numeor de certificado, pk no se en k formato te lo dan y si lo checas en el validador es el mismo el k lees del certificado y el que te da el validador.

Cuando enciptas ahi mismo puedes verificar si tu sello es correcto, tiene una opcion para validar tu sello con la clave publica.

surte, espero no haberte enrredado con mi choro...

Edg_LB 16/12/2009 16:15

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por Interruptor (Mensaje 3207637)
Gracias amigo, por lo que entiendo en la misma setencia estas firmando y haciendo el digest pero lo que no entiendo es que representa el archivo utf8.txt ¿acaso es el archivo donde esta formateado a utf8 o algo asi? porque mi problema principal es que yo parto desde la cadena original en el archivo pero no logro que me de la cadena despues de la simple digestión con md5. No se si me estoy explicando bien.

Ola amigo, el probelma yo tambien lo tuve, almacenaba mi cadenorignal en un txt encoding utf8 y nucna lo pude hacer con openssl, y si leia el archivo desde java o c# y le aplicaba el md5 me daba el md5 que te ponen de ejemplo o el que te da el validador, el proble que vi al leer el archivo esque tiene incio y fin de linea, y ese inicio y ese hace a k te de un diges distinto,esta es mi humilde opinion.

dumysoft 16/12/2009 16:20

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por Edg_LB (Mensaje 3208032)
Es esta la referencia:
Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey();

Con eso obtiene la clave publica del certificado, y con esa desencriptas, y ahi mismo obtienes el numero de certificado que te piden en al xml, incluso cuando lees la clave privada, ahi mismo puedes obtner la clave publica, y es la misma que si la lees del certificado, solo que tienes que leer el certificado por que obtienes el numero de serie, con el codigo que e pase antes ya te trael la el numeor de certificado, pk no se en k formato te lo dan y si lo checas en el validador es el mismo el k lees del certificado y el que te da el validador.

Cuando enciptas ahi mismo puedes verificar si tu sello es correcto, tiene una opcion para validar tu sello con la clave publica.

surte, espero no haberte enrredado con mi choro...

Gracias, si te entiendo.
y cual seria la referencia de esta funcion GetPublicKey() pque. parece ser que es la que no me esta funcionando.

Estuve buscando en el examinador de objetos para ver a cual pertenece pero son muchos namespaces que lo contienen.


en espera de sus comentarios. Saludos.

Interruptor 17/12/2009 11:07

Respuesta: Facturacion electronica en México
 
Muchisimas gracias a los camaradas dumysoft y Edg_LB por su aclaración a mis dudas, a través del tiempo en esto del desarrollo me he dado cuenta que esto es como el karma cuando uno se detiene unos minutos en apoyar las dudas que otros compañeros tienen y por las cuales ya hemos pasado, esta acción siempre es revertida. Asi que muchas gracias.

En efecto como bien lo dices Edg_LB el grabar la cadena desde el archivo de texto como UTF-8 lo graba con ciertas marcas que contaminan el resumen en MD5. Sucede que estoy haciendo una aplicación de facturación electronica en visual Fox 9 de forma que intentaba el enconding del archivo por fuera, pero al darme cuenta de que no me daba por la razón explicada, busque una función en el mismo fox para convertir al formato correcto además de que buscando por ahi encontré una clase que realiza el digest desde fox sin necesidad de utilizar el openssl (por cierto esta clase quedá a disposición para quien se encuentre en la misma situación que yo y desee hacerlo de VFox). Aunque finalmente debo recurrir a openssl mediante un comando externo para realizar el sellado y lo demás, estoy ahora en esto y veremos como nos va.

Un saludo a toda la comunidad y gracias de nuevo camaradas.

Edg_LB 17/12/2009 13:10

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por dumysoft (Mensaje 3208045)
Gracias, si te entiendo.
y cual seria la referencia de esta funcion GetPublicKey() pque. parece ser que es la que no me esta funcionando.

Estuve buscando en el examinador de objetos para ver a cual pertenece pero son muchos namespaces que lo contienen.


en espera de sus comentarios. Saludos.

T pongo el codigo de como lo tengo.

using System;
using System.Collections.Generic;
using System.Text;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Utilities.Encoders;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Security;
using System.IO;
using Org.BouncyCastle.X509;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Utilities.Collections;
using Org.BouncyCastle.Crypto.Parameters;
using System.Security.Cryptography;






//Read Public Key
TextReader trCer = new StreamReader(@PublicKey);
PemReader rdCer = new PemReader(trCer);
X509Certificate Cert = (X509Certificate)rdCer.ReadObject();

Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey();
byte[] nSerie = Cert.SerialNumber.ToByteArray();
string nCertificado = Encoding.ASCII.GetString(nSerie);


saludos...

jjasso_barba 26/12/2009 12:30

Hola, a todos pues yo soy nuevo en este ambito de la facturacion electronica al igual que en este foro, hasta ahorita he hecho la generacion de la cadena asi como su digestion md5, ahora viene lo bonito que es firmar la digestion con la llave privada y la cual he convertido a formato PEM, pero esto lo estoy haciendo en asp.net con c# alguien que me pueda ayudar a firmar la cadena por favor?? al igual yo puedo ayudar con lo que llevo hasta ahorita, muchas gracias de antemano

Pues ahora he encontrado un [URL="http://www.jensign.com/opensslkey/index.html"]programa[/URL] que me genera un xml de mi llave privada, y me da la opcion de generarme un .p12 el cual ese ya me sirve para firmar mi cadena ya que esto lo hace con las librerias normales de c#, espero me puedan ayudar, o si pueden decirme como firmar con las librerias de BouncyCastle estaria genial, gracias por su ayuda

Pues les agradezco a todos la ayuda, ya lo resolvi en c#

Saludos

Edicion: Ya es valido el sello que genera mi programa, si alguien necesita ayuda estoy dispuesto a ayudar...

Saludos

netovs 08/01/2010 10:23

Hola, sin duda es un excelente compendio de informacion pero yo me atore en donde tengo que convertir de .key a .key.pem me regresa el error:

Error decrypting key
6661:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:461:
6661:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:97:
6661:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:123:

Según se el password que tengo es el correcto pero sigo teniendo el mismo error.

:'(

Cita:

Iniciado por netovs (Mensaje 3232170)
Hola, sin duda es un excelente compendio de informacion pero yo me atore en donde tengo que convertir de .key a .key.pem me regresa el error:

Error decrypting key
6661:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:461:
6661:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:97:
6661:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:123:

Según se el password que tengo es el correcto pero sigo teniendo el mismo error.

:'(

Saludos y gracias a todos los que leyeron este mensaje, como experiencia personal les podre decir que nunca confien en el contador que solicito al SAT los archivos, seguramente puso mal el password el error mencionado es por COLOCAR MAL LA CONTRASEÑA.

Edg_LB 11/01/2010 17:41

Respuesta: Facturacion electronica en México
 
Hoola colegas, buena tarde, y Feliz Año.

Aqui nuevamente, quisera saber si alguien sabe como se le hace para que mis facturas, se las envie al SAT y me las valide, me comentaron de una certificacion, pero no se que onda con eso, espero sus respuestas. Gracias

jjasso_barba 12/01/2010 14:35

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por Edg_LB (Mensaje 3235597)
Hoola colegas, buena tarde, y Feliz Año.

Aqui nuevamente, quisera saber si alguien sabe como se le hace para que mis facturas, se las envie al SAT y me las valide, me comentaron de una certificacion, pero no se que onda con eso, espero sus respuestas. Gracias

Hola que tal, fijate que eso es lo que yo he andado investigando y supongo que el asunto va por [URL="http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_8769.html"]Aqui[/URL], aprovechando quisiera saber tu como manejaste tu archivo .key yo lo convierto a .pem pero mediante ssl, hay manera de convertirlo directo en c# con asp???

Saludos

Edg_LB 13/01/2010 10:47

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por jjasso_barba (Mensaje 3236765)
Hola que tal, fijate que eso es lo que yo he andado investigando y supongo que el asunto va por [URL="http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_8769.html"]Aqui[/URL], aprovechando quisiera saber tu como manejaste tu archivo .key yo lo convierto a .pem pero mediante ssl, hay manera de convertirlo directo en c# con asp???

Saludos



Ola k tal,

Si hay forma de hacerlo con la libreria de BouncyCastle, no se cuales sean las referencias, lo hare y si lo tengo lo publico, por ahi puse codigo de como generar el sello utilizando BouncyCastle.

Saludos

dumysoft 14/01/2010 11:31

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por Edg_LB (Mensaje 3235597)
Hoola colegas, buena tarde, y Feliz Año.

Aqui nuevamente, quisera saber si alguien sabe como se le hace para que mis facturas, se las envie al SAT y me las valide, me comentaron de una certificacion, pero no se que onda con eso, espero sus respuestas. Gracias

Hola Edg_LB:

Toda la informacion necesaria para el reporte mensual esta aqui [URL="http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6534.html"]http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6534.html[/URL]

Cuando tengas lista la informacion mensual aqui te indican como enviarla [URL="http://www.sat.gob.mx/sitio_internet/informacion_fiscal/tramites_fiscales/registro_t/101_11761.html"]http://www.sat.gob.mx/sitio_internet/informacion_fiscal/tramites_fiscales/registro_t/101_11761.html[/URL]

Saludos

huicho116 08/02/2010 22:00

Respuesta: Facturacion electronica en México
 
Buena noches,

Antes que nada gracias a todos los colaboradores por aportar sus conocimientos y buena disposición a la comunidad.

Empiezo con mi pregunta, esto de la facturación electrónica es un rollo. En base a los post de este sección he construido algo pero tengo algunas dudas:

Ya obtuve mis claves a través de

C:\OpenSSL\bin\openssl.exe pkcs8 -inform DER -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out C:\OpenSSL\Keys\aaa010101aaa.key.pem

C:\OpenSSL\bin\openssl.exe x509 -inform DER -outform PEM -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.cer -pubkey -out C:\OpenSSL\Keys\aaa010101aaa.cer.pem

Ya aplique el algoritmo MD5 a la cadena original que presenta el SAT .

Genere el sello digital con mis claves obtenidas en el punto uno

StreamReader readFile = new StreamReader(@"H:\Proyectos\Facturacion_electronic a\sello_digital\aaa010101aaa.key.pem");
//StreamReader readFile = new StreamReader(PublicKey);
PemReader Ocert = new PemReader(readFile);

//Dim o As AsymmetricCipherKeyPair = TryCast(Ocert.ReadObject(), AsymmetricCipherKeyPair)
AsymmetricCipherKeyPair o = Ocert.ReadObject() as AsymmetricCipherKeyPair;
ISigner sig = SignerUtilities.GetSigner("MD5WithRSAEncryption");
//sig.Init(True, o.[Private])
sig.Init(true, o.Private);
byte[] signature = sig.GenerateSignature();
string signatureHeader = Convert.ToBase64String(signature);

readFile.Close();
readFile = null;

El certificado
//*****************************certificado
//Read Public Key
TextReader trCer = new StreamReader(PublicKey);
PemReader rdCer = new PemReader(trCer);
X509Certificate Cert = (X509Certificate)rdCer.ReadObject();

Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey();
//AsymmetricKeyParameter pk = Cert.GetPublicKey();
byte[] nSerie = Cert.SerialNumber.ToByteArray();
string nCertificado = Encoding.ASCII.GetString(nSerie);

Mi duda es, cómo relaciono la cadena obtenida de la aplicación del algoritmo MD5, el certificado o el sello.
En los requirimientos de hacienda dice que a la cadena obbtenida aplico el algoritmo RSA, con el sello y la clave privada, como junto estos procesos y luego convertirlo a base 64.

Por su ayuda muchas gracias!

dumysoft 11/02/2010 08:41

Respuesta: Facturacion electronica en México
 
Hola que tal.

De hecho, en el codigo que muestras ya estas aplicando esos requerimientos.

Saludos.

huicho116 12/02/2010 12:57

Respuesta: Facturacion electronica en México
 
Gracias por la respuesta,

Lo que no veo es donde incluyo mi cadena original aplicado ya el MD5, acaso tengo que hacerlo a través de openssl?

openssl dgst -md5 -sign pkey.key.pem -out md5.txt utf8.txt

De antemano muchas gracias!

dumysoft 12/02/2010 13:30

Respuesta: Facturacion electronica en México
 
ok, osease que te falta

Dim plaintext As [Byte]() = ASCII.GetBytes(CadenaOriginal) ' Es una propiedad de la clase.
.
.
.
sig.Init(True, o.Private)
sig.BlockUpdate(plaintext, 0, plaintext.Length)

huicho116 12/02/2010 13:54

Respuesta: Facturacion electronica en México
 
Muchas gracias!

mduarte 11/03/2010 14:27

Respuesta: Facturacion electronica en México
 
Hola,
Les agradezco a todos sus aportaciones. Estoy por finalizar el proceso para generar CFDs, utilizando openssl.

El unico problema que tengo es que al validar mi xml en la pagina del SAT me dice que "El sello del comprobante no es válido".

¿ Alguien tiene un ejemplo completo que cumpla con el anexo 20 version 2.0 y que sea aceptado por el validador de la pagina del SAT para poder encontrar el error ?

Para poder hacer la revision paso a paso necesito :
Archivo de Llave Privada de muestra (.key)
Archivo de Llave Publica de muestra (.cer)
Cadena Original armada de acuerdo con el anexo 20 version 2.0
MD5 obtenido
Sello obtenido
Serie de llave Publica obtenido

Gracias.

mduarte 11/03/2010 14:39

Respuesta: Facturacion electronica en México
 
Hola,
Les agradezco a todos sus aportaciones. Estoy por finalizar el proceso para generar CFDs, utilizando openssl.

El unico problema que tengo es que al validar mi xml en la pagina del SAT me dice que "El sello del comprobante no es válido".

¿ Alguien tiene un ejemplo completo que cumpla con el anexo 20 version 2.0 y que sea aceptado por el validador de la pagina del SAT para poder encontrar el error ?

Para poder hacer la revision paso a paso necesito :
Archivo de Llave Privada de muestra (.key)
Archivo de Llave Publica de muestra (.cer)
Cadena Original armada de acuerdo con el anexo 20 version 2.0
MD5 obtenido
Sello obtenido
Serie de llave Publica obtenido

Gracias.

Sergio_V 17/03/2010 09:09

Respuesta: Facturacion electronica en México
 
buen día...

ya pude generar el MD5 y el sello.... además de extrael el no. de folio del certificado para ingresarlo al .xls.. pero aún así el validador del SAT me dice que el sello no es válido...

les copio el .xml para ver si tienen algún comentario al respecto... será que hay algo mal con el validador del SAT o con el ejemplo que proporciona SAT de Muestra.xml??

Gracias por sus comentarios.


Saludos!!

P.D. Utilicé el ejemplo Muestra.xml con la cadena original y el certificado 2 proporcionado por el SAT.

<?xml version="1.0" encoding="UTF-8"?>
<Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="10001200000000022515" sello="GEyGSaq21uiMk3sEJmsiLA22SLKeAtwl3rJ+jO8XB5G 8aoMgqgWwW10Hg8Rc/TDFcyRsloC32OBNV7lrQQ4DiLopu4XEYQ5ye+UvJAx3TzXyBa0 ZpjM4yzg5S2PO09nviv4Z4C2ByQQEiqmu1Z3ZzOAYffay+6/fBU2/Alb2bpE=" serie="A" version="1.0">
<Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88">
<DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"/>
<ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"/>
</Emisor>
<Receptor nombre="Rosa MarÃ*a Calderón Uriegas" rfc="CAUR390312S87">
<Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"/>
</Receptor>
<Conceptos>
<Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20"/>
<Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150"/>
</Conceptos>
<Impuestos>
<Traslados>
<Traslado importe="52.5" impuesto="IVA"/>
</Traslados>
</Impuestos>
</Comprobante>

Sergio_V 17/03/2010 19:44

Respuesta: Facturacion electronica en México
 
phpnewbie.... obtengo el mismo resultado que tú.. ya pudiste encontrar cuál es la razón por la cual el validador de sat no acepta el sello?


Gracias y saludos!

JorgeCasas 25/03/2010 17:17

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por Interruptor (Mensaje 3209001)
Muchisimas gracias a los camaradas dumysoft y Edg_LB por su aclaración a mis dudas, a través del tiempo en esto del desarrollo me he dado cuenta que esto es como el karma cuando uno se detiene unos minutos en apoyar las dudas que otros compañeros tienen y por las cuales ya hemos pasado, esta acción siempre es revertida. Asi que muchas gracias.

En efecto como bien lo dices Edg_LB el grabar la cadena desde el archivo de texto como UTF-8 lo graba con ciertas marcas que contaminan el resumen en MD5. Sucede que estoy haciendo una aplicación de facturación electronica en visual Fox 9 de forma que intentaba el enconding del archivo por fuera, pero al darme cuenta de que no me daba por la razón explicada, busque una función en el mismo fox para convertir al formato correcto además de que buscando por ahi encontré una clase que realiza el digest desde fox sin necesidad de utilizar el openssl (por cierto esta clase quedá a disposición para quien se encuentre en la misma situación que yo y desee hacerlo de VFox). Aunque finalmente debo recurrir a openssl mediante un comando externo para realizar el sellado y lo demás, estoy ahora en esto y veremos como nos va.

Un saludo a toda la comunidad y gracias de nuevo camaradas.

Hola
¿que tal te fue con la facturacion electronica desde VFP?, estoy iniciando en esto y quisiera saber si no es tan complicado con FOX por que veo que la mayoría de la gente se esta llendo por PHP, C# o Java

saludos

hcchavez 30/03/2010 22:52

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por JorgeCasas (Mensaje 3339250)
Hola
¿que tal te fue con la facturacion electronica desde VFP?, estoy iniciando en esto y quisiera saber si no es tan complicado con FOX por que veo que la mayoría de la gente se esta llendo por PHP, C# o Java

saludos

Con Fox.

Existe un API llamado FirmaSat. (Con Costo).
http://www.cryptosys.net/fsa/

ejemp. (Mandar la cadena original a un archivo de texto)

RUN /N C:\FS\FirmaSAT PIPESTRING FacyuraEl_01.xml > CadenaOriginal.txt

(Clear el sello)

RUN /N C:\FS\FirmaSAT \FirmaSAT MAKESIG -k aaa010101aaa_csd_01.key -p a0123456789 FacyuraEl_01.xml



y tambien se puede usar OpenSSS(Gratis ???)

RUN /N C:\SSL\OpenSsl dgst -MD5 cadenaOriginal.txt > Md5Reult

Saludos.

JorgeCasas 31/03/2010 19:22

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por hcchavez (Mensaje 3345651)
Con Fox.

Existe un API llamado FirmaSat. (Con Costo).
http://www.cryptosys.net/fsa/

ejemp. (Mandar la cadena original a un archivo de texto)

RUN /N C:\FS\FirmaSAT PIPESTRING FacyuraEl_01.xml > CadenaOriginal.txt

(Clear el sello)

RUN /N C:\FS\FirmaSAT \FirmaSAT MAKESIG -k aaa010101aaa_csd_01.key -p a0123456789 FacyuraEl_01.xml



y tambien se puede usar OpenSSS(Gratis ???)

RUN /N C:\SSL\OpenSsl dgst -MD5 cadenaOriginal.txt > Md5Reult

Saludos.

Muchas Gracias por tu respuesta, ya tenia visualizado un ActiveX que hace esto pero me mandaron por la "LIBRE" (OpenSSL), con los post de este foro he avanzado algo pero no he terminado por falta de tiempo.

Saludos

hcchavez 31/03/2010 20:17

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por JorgeCasas (Mensaje 3346907)
Muchas Gracias por tu respuesta, ya tenia visualizado un ActiveX que hace esto pero me mandaron por la "LIBRE" (OpenSSL), con los post de este foro he avanzado algo pero no he terminado por falta de tiempo.

Saludos

Puedo comentar que con OpenSsl estoy teniendo problemas con la
"digestion MD5" de la cadenaOriginal, no da el mismo resultado que el
validador de SAT. Sera que ellos usan Linux(Unix) ?.

Que lioooooooo.

Saludos y Suerte.

P. D.
Con FirmaSat todo de maravilla.

uamero 01/04/2010 21:27

Respuesta: Facturacion electronica en México
 
Para los que ya pudieron generar el Sello pero aparentemente no esta correcto:

ES MUUUUY IMPORTANTE que al generar el archivo, cadena, etc que almacena la Cadena Original, esta NO TENGA NINGUN caracter extraño.

A mi me estaba pasando que al final de mi archivo binario mi rutina le estaba agregando un CR+LF (o sea un caracter #13 + #10), que ES INVISIBLE, pero esta ahi!!!

Tampoco debe tener Tabuladores (caracter #8) ni doble espacio, ni "espacio + pipe" ni "pipe + espacio"

es decir, lo siguiente es una PESIMA cadena original

||2.0| aqui hay un espacio de mas |Mi empresa| aqui hay dos espacios juntos|
aqui (implicitamente) hay un retorno de carro CR+LF|y debe terminar con doble pipe||

Les recomiendo que revisen el tamaño de su variable, archivo o en general del "contenedor" de su cadena, que esta termine EXACTAMENTE en un "doble pipe" (esto es en "||")

En lenguaje "C" asegurense que esta termine en NULL

Los archivos NO DEBEN tener el caracter EOF (End Of File, o CTRL-Z)

Aqui les dejo una liga donde explico como resolvi esto en Delphi

www.clubdelphi.com/foros/showthread.php?p=359037

Saludos,

hcchavez 05/04/2010 11:57

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por uamero (Mensaje 3347979)
Para los que ya pudieron generar el Sello pero aparentemente no esta correcto:

ES MUUUUY IMPORTANTE que al generar el archivo, cadena, etc que almacena la Cadena Original, esta NO TENGA NINGUN caracter extraño.

A mi me estaba pasando que al final de mi archivo binario mi rutina le estaba agregando un CR+LF (o sea un caracter #13 + #10), que ES INVISIBLE, pero esta ahi!!!

Tampoco debe tener Tabuladores (caracter #8) ni doble espacio, ni "espacio + pipe" ni "pipe + espacio"

es decir, lo siguiente es una PESIMA cadena original

||2.0| aqui hay un espacio de mas |Mi empresa| aqui hay dos espacios juntos|
aqui (implicitamente) hay un retorno de carro CR+LF|y debe terminar con doble pipe||

Les recomiendo que revisen el tamaño de su variable, archivo o en general del "contenedor" de su cadena, que esta termine EXACTAMENTE en un "doble pipe" (esto es en "||")

En lenguaje "C" asegurense que esta termine en NULL

Los archivos NO DEBEN tener el caracter EOF (End Of File, o CTRL-Z)

Aqui les dejo una liga donde explico como resolvi esto en Delphi

www.clubdelphi.com/foros/showthread.php?p=359037

Saludos,

Excelente aportación, Gracias.
Mi problema era que la cadena se guardaba con EOF (End Of File, o CTRL-Z).

Saludos.

Charfac 06/04/2010 11:49

Respuesta: Facturacion electronica en México
 
Que tal phpnewbie necesito de tu ayuda para lo de la facturación electrónica, tengo el mismo caso que se te presentó acerca del sello digital no válido pero ya igualo la cadena que me da el validador.

sALUDOS.

JorgeCasas 06/04/2010 16:29

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por hcchavez (Mensaje 3346952)
Puedo comentar que con OpenSsl estoy teniendo problemas con la
"digestion MD5" de la cadenaOriginal, no da el mismo resultado que el
validador de SAT. Sera que ellos usan Linux(Unix) ?.

Que lioooooooo.

Saludos y Suerte.

P. D.
Con FirmaSat todo de maravilla.

con el siguiente codigo desde VFP la digestion me sale tal cual la del SAT, obviamente bajo windows, bajo linux me da el mismo resultado si genero el archivo de texto con la cadena original desde fox y corriendo el openssl en Linux

TEXT TO cadenao noshow
||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||
ENDTEXT
cadenao=ALLTRIM(cadenao)
cadena2=Strconv(cadenao, 9)
arch_des = Fcreate('md5.txt')
=Fwrite(arch_des ,cadena2)
=Fclose(arch_des)
!c:\openssl\bin\openssl dgst -md5 md5.txt >md51.txt

saludos

hcchavez 07/04/2010 16:16

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por JorgeCasas (Mensaje 3353051)
con el siguiente codigo desde VFP la digestion me sale tal cual la del SAT, obviamente bajo windows, bajo linux me da el mismo resultado si genero el archivo de texto con la cadena original desde fox y corriendo el openssl en Linux

TEXT TO cadenao noshow
||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||
ENDTEXT
cadenao=ALLTRIM(cadenao)
cadena2=Strconv(cadenao, 9)
arch_des = Fcreate('md5.txt')
=Fwrite(arch_des ,cadena2)
=Fclose(arch_des)
!c:\openssl\bin\openssl dgst -md5 md5.txt >md51.txt

saludos

Ok,
Ya logre pasar ese paso.

Ahora el problema es que el sello me lo marca como no valido :

run c:\OpenSSL\Bin\openssl dgst -sign abcd123456xxx_9999999999.key.pem md5Result.txt | c:\OpenSSL\Bin\openssl enc -base64 -A > SelloBase64.txt

Me genera esto : (No Pasa la validación)

cOc86p97x5/cnu6ZbGTmh7dPHDQyepA/aYqN670Eu6WuyxXPhGnMkSsxD23vAkyxwKkCNX7CJuSP7yOvRM bxKwxz19Yql8Ry1yeMHiseg5vOF501QGlfdcLWvhVLaMjBjfqY DS6ckd8/SCHVOr2ySc+9MCLc62pho1RoLowlDoQ=

y con la lbreria de firmaSat me
genera esto : (Si pasa la validación)

dnm+G0ttduIe389g/K4HJbzlsdGTeJdUsGYd+Lot5ycgr6BJeu4Ewqi/gx5F9asd6BOd8R4oFnd5NOigYPKiAcby7AGe9QvWWKkPtW62Es XHqOcO8+P3JF8C5aitox1t/1meNWV1KDnIdGCTn0sFldRS8jjgXday8BdCpZgyFMk=

Los dos generan la misma digestión MD5 (d640bb467225d3e3e784ca14d68f2524)

Saludos y Suerte.


La zona horaria es GMT -6. Ahora son las 10:03.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.