
DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Validacion del sello incorrecta
-
- Mensajes: 5
- Registrado: Mié Sep 26, 2012 10:31 am
Validacion del sello incorrecta
Sello invalido
hola buenos dias a todos vengo solicitando ayudad para poder crear de forma correcta mi sello el problema es que creo el sello pero no me lo creo bien
estra es mi cadena original: ' cadena tambien coincide con el validador del sat
||2.2|FS|46|2012-09-07T13:04:47|123456|2012|ingreso|Pago en una sola exhibición|Condición de pago Contado Plazo 20 Vencimiento 27/09/2012|1000.00|1160.00|Efectivo|CULIACAN, SINALOA|7891|BSY020620MB9|BM SYSTEMS S.C.|Alaba de acosta|1814|Miguel Hidalgo|CULIACAN, SINALOA|Culiacán|Sinaloa|México|80090|Persona moral con fines lucrativos|BTA010519NA9|BOUTIQUE ANDERSON NEW YORK|Alba de acosta|1814|Miguel Hidalgo|Culiacán|Sinaloa|México|1.000|PZA|1|Mantenimiento 2|1000.00|1000.00|IVA|16.0000|160.00|160.00||
este es como deberia ser el sello:
f1zcSDH87GZZ0w0a4vDipr78pfEm8ekjH1Elq4OV4VNfzpnzCdg1v6EsjRtghoaWeiQNWwgcELAAYCT4hj3u3qjO95XL07IMjmbvzRunY78QRyGyxlLZIZGM4wrH36OD
+p5pSG3678YsTVFN0ufqwXgv4O3ZKPew6KdfkKzJUlw=
esta es el sello qe obtengo con mi codigo:
pThHNiRiayMmVL1qKirE0z2O1rZq6XKJbFgOebeARs5KB8pEmt2/Xa7Z2Hmf37j3s4riFOi+4naRQXFe6U/38y2M/On6GAFszfG1c25TTusUoxGTLA6zbcHU/VProjPT
+ZqpMesMw83yvTFVQdwTskj9RHOwSI4YsjxdvDTHn98=
este es el sha1: este concide con el validador del sat
1856ebf60b32efd5a6156844c5ecf4129f08ed93
mi duda es en que me estoy equivocando si es en el sha o en key o si tengo mal hecha mi cadena
igualmente les adjunto mi codigo por si tienen una duda esta realizado en vb.net 2010
Dim filename As String = Path.GetFileName(FileUpload1.FileName)
Dim xmlFile As String = Server.MapPath(filename)
Dim transform As New Xsl.XslCompiledTransform
Dim document As New XmlDocument
Dim navigator As XPath.XPathNavigator
Dim ruta_sat As String = Server.MapPath("~/cadenaoriginal_2_2.xslt")
Dim output As New StringWriter
document.Load(xmlFile)
navigator = document.CreateNavigator()
transform.Load(ruta_sat)
transform.Transform(navigator, Nothing, output)
cadOriginal = output.ToString
System.IO.File.WriteAllText("C:\fepruebas\cadena.txt", cadOriginal)
'CREAMOS EL SHA1
Dim process As New Process
process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process.StartInfo.FileName = "C:\openssl-0.9.8k_WIN32\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process.StartInfo.Arguments = "dgst -SHA1 C:\fepruebas\cadena.txt" 'le madamos solo un parametro. (el nombre del archivo .txt q contiene la cadena original)
process.StartInfo.WorkingDirectory = "C:\openssl-0.9.8k_WIN32\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process.Start() 'iniciamos el proceso
Dim codificado As String 'creamos una varaible q almacenara el resultado encriptado
codificado = process.StandardOutput.ReadToEnd 'el resultado del parametro "dgst -SHA1 d:\cadena.txt" se almacena en esta variable
process.WaitForExit() 'le decimos q se espere el proceso
'ahora, al resultado lo pasamos en un ciclo for para quitarle la
'parte del sha1 y q solo nos quede el resultado
Dim codificado2 As String = ""
For i As Integer = 0 To codificado.Length - 1
If codificado.Chars(i) = "=" Then
codificado2 = Mid(codificado, i + 3) 'seleccionamos desde la psicion en la q se quedo hasta al final de la cadena y eso se lo pasamos a codigificado2
End If
Next
System.IO.File.WriteAllText("C:\fepruebas\codificado.txt", codificado2) 'escribimos el resultado en otro archivo de texto
'CREAMOS EL ARCHIVO .KEY.PEN
Dim process2 As New Process
process2.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process2.StartInfo.FileName = "C:\openssl-0.9.8k_WIN32\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process2.StartInfo.Arguments = "pkcs8 -inform DER -in C:\fepruebas\aaa010101aaa__CSD_01.key -passin pass:********* -out C:\fepruebas\aaa010101aaa_CSD_01.key.pem" 'le madamos solo un parametro.
process2.StartInfo.WorkingDirectory = "C:\openssl-0.9.8k_WIN32\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process2.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process2.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process2.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process2.Start() 'iniciamos el proceso
process2.WaitForExit() 'le decimos q se espere el proceso
'CREAMOS EL SELLO
'C:\OpenSSL\bin>openssl dgst -sign D:\Cer_Sellos\aaa010101aaa_CSD_01.key.pem D:\codificado.txt | openssl enc -base64 -A > D:\sello.txt
Dim process3 As New Process
process3.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process3.StartInfo.FileName = "C:\openssl-0.9.8k_WIN32\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process3.StartInfo.Arguments = "dgst -sign C:\fepruebas\aaa010101aaa_CSD_01.key.pem C:\fepruebas\codificado.txt" 'le madamos solo un parametro.
process3.StartInfo.WorkingDirectory = "C:\openssl-0.9.8k_WIN32\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process3.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process3.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process3.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process3.Start() 'iniciamos el proceso
Dim SelloTxt As String 'creamos una varaible q almacenara el resultado encriptado
SelloTxt = process3.StandardOutput.ReadToEnd
Dim b64 As String = Convert.ToBase64String(Encoding.Default.GetBytes(SelloTxt)) 'decodificamos el resultado en base 64
process3.WaitForExit() 'le decimos q se espere el proceso
System.IO.File.WriteAllText("C:\fepruebas\sello.txt", b64) 'escribimos el resultado en otro archivo de texto
hola buenos dias a todos vengo solicitando ayudad para poder crear de forma correcta mi sello el problema es que creo el sello pero no me lo creo bien
estra es mi cadena original: ' cadena tambien coincide con el validador del sat
||2.2|FS|46|2012-09-07T13:04:47|123456|2012|ingreso|Pago en una sola exhibición|Condición de pago Contado Plazo 20 Vencimiento 27/09/2012|1000.00|1160.00|Efectivo|CULIACAN, SINALOA|7891|BSY020620MB9|BM SYSTEMS S.C.|Alaba de acosta|1814|Miguel Hidalgo|CULIACAN, SINALOA|Culiacán|Sinaloa|México|80090|Persona moral con fines lucrativos|BTA010519NA9|BOUTIQUE ANDERSON NEW YORK|Alba de acosta|1814|Miguel Hidalgo|Culiacán|Sinaloa|México|1.000|PZA|1|Mantenimiento 2|1000.00|1000.00|IVA|16.0000|160.00|160.00||
este es como deberia ser el sello:
f1zcSDH87GZZ0w0a4vDipr78pfEm8ekjH1Elq4OV4VNfzpnzCdg1v6EsjRtghoaWeiQNWwgcELAAYCT4hj3u3qjO95XL07IMjmbvzRunY78QRyGyxlLZIZGM4wrH36OD
+p5pSG3678YsTVFN0ufqwXgv4O3ZKPew6KdfkKzJUlw=
esta es el sello qe obtengo con mi codigo:
pThHNiRiayMmVL1qKirE0z2O1rZq6XKJbFgOebeARs5KB8pEmt2/Xa7Z2Hmf37j3s4riFOi+4naRQXFe6U/38y2M/On6GAFszfG1c25TTusUoxGTLA6zbcHU/VProjPT
+ZqpMesMw83yvTFVQdwTskj9RHOwSI4YsjxdvDTHn98=
este es el sha1: este concide con el validador del sat
1856ebf60b32efd5a6156844c5ecf4129f08ed93
mi duda es en que me estoy equivocando si es en el sha o en key o si tengo mal hecha mi cadena
igualmente les adjunto mi codigo por si tienen una duda esta realizado en vb.net 2010
Dim filename As String = Path.GetFileName(FileUpload1.FileName)
Dim xmlFile As String = Server.MapPath(filename)
Dim transform As New Xsl.XslCompiledTransform
Dim document As New XmlDocument
Dim navigator As XPath.XPathNavigator
Dim ruta_sat As String = Server.MapPath("~/cadenaoriginal_2_2.xslt")
Dim output As New StringWriter
document.Load(xmlFile)
navigator = document.CreateNavigator()
transform.Load(ruta_sat)
transform.Transform(navigator, Nothing, output)
cadOriginal = output.ToString
System.IO.File.WriteAllText("C:\fepruebas\cadena.txt", cadOriginal)
'CREAMOS EL SHA1
Dim process As New Process
process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process.StartInfo.FileName = "C:\openssl-0.9.8k_WIN32\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process.StartInfo.Arguments = "dgst -SHA1 C:\fepruebas\cadena.txt" 'le madamos solo un parametro. (el nombre del archivo .txt q contiene la cadena original)
process.StartInfo.WorkingDirectory = "C:\openssl-0.9.8k_WIN32\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process.Start() 'iniciamos el proceso
Dim codificado As String 'creamos una varaible q almacenara el resultado encriptado
codificado = process.StandardOutput.ReadToEnd 'el resultado del parametro "dgst -SHA1 d:\cadena.txt" se almacena en esta variable
process.WaitForExit() 'le decimos q se espere el proceso
'ahora, al resultado lo pasamos en un ciclo for para quitarle la
'parte del sha1 y q solo nos quede el resultado
Dim codificado2 As String = ""
For i As Integer = 0 To codificado.Length - 1
If codificado.Chars(i) = "=" Then
codificado2 = Mid(codificado, i + 3) 'seleccionamos desde la psicion en la q se quedo hasta al final de la cadena y eso se lo pasamos a codigificado2
End If
Next
System.IO.File.WriteAllText("C:\fepruebas\codificado.txt", codificado2) 'escribimos el resultado en otro archivo de texto
'CREAMOS EL ARCHIVO .KEY.PEN
Dim process2 As New Process
process2.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process2.StartInfo.FileName = "C:\openssl-0.9.8k_WIN32\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process2.StartInfo.Arguments = "pkcs8 -inform DER -in C:\fepruebas\aaa010101aaa__CSD_01.key -passin pass:********* -out C:\fepruebas\aaa010101aaa_CSD_01.key.pem" 'le madamos solo un parametro.
process2.StartInfo.WorkingDirectory = "C:\openssl-0.9.8k_WIN32\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process2.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process2.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process2.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process2.Start() 'iniciamos el proceso
process2.WaitForExit() 'le decimos q se espere el proceso
'CREAMOS EL SELLO
'C:\OpenSSL\bin>openssl dgst -sign D:\Cer_Sellos\aaa010101aaa_CSD_01.key.pem D:\codificado.txt | openssl enc -base64 -A > D:\sello.txt
Dim process3 As New Process
process3.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process3.StartInfo.FileName = "C:\openssl-0.9.8k_WIN32\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process3.StartInfo.Arguments = "dgst -sign C:\fepruebas\aaa010101aaa_CSD_01.key.pem C:\fepruebas\codificado.txt" 'le madamos solo un parametro.
process3.StartInfo.WorkingDirectory = "C:\openssl-0.9.8k_WIN32\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process3.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process3.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process3.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process3.Start() 'iniciamos el proceso
Dim SelloTxt As String 'creamos una varaible q almacenara el resultado encriptado
SelloTxt = process3.StandardOutput.ReadToEnd
Dim b64 As String = Convert.ToBase64String(Encoding.Default.GetBytes(SelloTxt)) 'decodificamos el resultado en base 64
process3.WaitForExit() 'le decimos q se espere el proceso
System.IO.File.WriteAllText("C:\fepruebas\sello.txt", b64) 'escribimos el resultado en otro archivo de texto
Última edición por dears5 el Mié Sep 26, 2012 11:52 am, editado 2 veces en total.
-
- Mensajes: 5
- Registrado: Mié Sep 26, 2012 10:31 am
Re: Validacion del sello incorrecta
gracias por avisar lo de la la llave aunqe era de la prueba no volvera a pasar
-
- Mensajes: 1
- Registrado: Mié Nov 07, 2012 8:51 am
Re: Validacion del sello incorrecta
que tal dears5 lograste solucionar tu problema?
Yo tengo el mismo detalle, me marca que el sello no es válido...
cambiaste el certificado o algo así?
Yo tengo el mismo detalle, me marca que el sello no es válido...
cambiaste el certificado o algo así?
-
- Mensajes: 25
- Registrado: Dom Dic 16, 2012 6:24 pm
- Ubicación: edgar.vargas@gmail.com
Re: Validacion del sello incorrecta
VAlido mi xml en el https://www.consulta.sat.gob.mx/sicofi_ ... 0cfdi.html Y me sale:
Los 2 errores que detecta estan en el timbre pues lo copie/invente para pruebas.
En una observacion dice:
certificado TUlJRWZ6Q0NBMmVnQXdJQkFnS... Si Problemas al leer el certificado (Bad Base64 certificate encoding.)
certificado (copia) MIIEfzCCA2egAwIBAgIUMDAwM... Si Se descargo una copia del SAT
Por culpa de este certificado no me lo acepta en el sat ? o confio nadamas en el validacfd ?
- Comprobante expresado en UTF-8
Validación de estructura: Válido
El sello no pudo ser verificado
El sello de certificación es válido
- Se detectaron 2 errores.
Se han hecho 8 observaciones.
Esquema Valido
El Sello del Emisor SI es Valido (OK SHA-1)
Sello del SAT SI es Valido (OK SHA-1)
Los 2 errores que detecta estan en el timbre pues lo copie/invente para pruebas.
En una observacion dice:
certificado TUlJRWZ6Q0NBMmVnQXdJQkFnS... Si Problemas al leer el certificado (Bad Base64 certificate encoding.)
certificado (copia) MIIEfzCCA2egAwIBAgIUMDAwM... Si Se descargo una copia del SAT
Por culpa de este certificado no me lo acepta en el sat ? o confio nadamas en el validacfd ?
DIOS nos Bendice !!!
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Validacion del sello incorrecta
Si, por culpa del certificado el SAT no lo pudo validar
Si, confia mas en el ValidaCFD
Si, confia mas en el ValidaCFD
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 25
- Registrado: Dom Dic 16, 2012 6:24 pm
- Ubicación: edgar.vargas@gmail.com
Re: Validacion del sello incorrecta
Gracias DADO.DADO escribió:Si, por culpa del certificado el SAT no lo pudo validar
Si, confia mas en el ValidaCFD
DIOS nos Bendice !!!
-
- Mensajes: 25
- Registrado: Dom Dic 16, 2012 6:24 pm
- Ubicación: edgar.vargas@gmail.com
Re: Validacion del sello incorrecta
Gracias a DIOS y ustedes el sat dice que mi xml tiene todo bien !!!DADO escribió:Si, por culpa del certificado el SAT no lo pudo validar
Si, confia mas en el ValidaCFD
Código: Seleccionar todo
Comprobante expresado en UTF-8
Validación de estructura: Válido
Certificado usado : 20001000000100001708
Certificado reportado : 20001000000100001708
El sello del CFDI es válido
Certificado usado : 30001000000100000801
Certificado reportado : 30001000000100000801
El sello de certificación es válido
Hasta tome el archivo del certificado que baja en la carpeta temp y tampoco.
Código: Seleccionar todo
Pues resulta que en el programa yo tenia...
$certificado = base64_encode( $variable_pem_certificado )
Pero antes ya se hacia en ssl..
openssl enc -base64 -in 00001000000202514965.cer > CERTIFICADO.cer.txt
por eso se codificaba 2 veces
DIOS nos Bendice !!!
-
- Mensajes: 3
- Registrado: Mar Feb 05, 2013 4:31 pm
sello de certificaion no valido
hola dado me podrias ayudar con esto por favor he tenido un problema al facturar en el sat no me valida el sello de certificacion.. que tengo que hacer ..
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: sello de certificaion no valido
Lo que debes hacer es comprarme la DLL o el Servitimbre y quitarte de broncas............Jimmy escribió:hola dado me podrias ayudar con esto por favor he tenido un problema al facturar en el sat no me valida el sello de certificacion.. que tengo que hacer ..
En serio, es IMPOSIBLE adivinar en donde esta el error de programacion por el cual te salle sello invalido
(por cierto elimine el megatexto con tu xml, no sirve de mucho y creeme, no es mala onda mia, pero tendria que ser un adivino para saber en donde estas mal)
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 3
- Registrado: Mar Feb 05, 2013 4:31 pm
Re: sello de certificaion no valido
disculpa no me explique bien al momento de que valido el xml me aparece esto l sello del CFDI es válido
Cadena original del Complemento de Certificación:
||1.0|2E1FF7E6-7A23-46A8-99B5-AC758C4941E5|2013-02-05T11:47:24|X8yCRXuBKaH2eYC/l0M5e8EYbFYP/f6BmD+GRhxJb/obSOkS9LeEjUwhCG04fCqX9ScMaQrpwIfZ/fJoYLkzUN+WstF8jhlyOKc35mtJDo0LLuPvM+g4cDRhJ144fhz6fLFtKeT7yGq73kYXIKDlisoqj3rZXi5V881kCMXcRpc=|00001000000202864530||
Digestión SHA-1 de cadena original del complemento de certificación expresada en hexadecimal
176af5ba4d1d6561b1e1e444927a2d69c4a4729e
Certificado usado : 00001000000202518236
Certificado reportado : 00001000000202864530
El sello de certificación no es válido
IMPORTANTE: Los resultados anteriores se presentan a efecto de que valide
la estructura, cadena original y sello de su CFDI. Para que una factura
electrónica sea válida para efectos fiscales, deberá reunir los requisitos que
establecen las disposiciones fiscales vigentes.
Cadena original del Complemento de Certificación:
||1.0|2E1FF7E6-7A23-46A8-99B5-AC758C4941E5|2013-02-05T11:47:24|X8yCRXuBKaH2eYC/l0M5e8EYbFYP/f6BmD+GRhxJb/obSOkS9LeEjUwhCG04fCqX9ScMaQrpwIfZ/fJoYLkzUN+WstF8jhlyOKc35mtJDo0LLuPvM+g4cDRhJ144fhz6fLFtKeT7yGq73kYXIKDlisoqj3rZXi5V881kCMXcRpc=|00001000000202864530||
Digestión SHA-1 de cadena original del complemento de certificación expresada en hexadecimal
176af5ba4d1d6561b1e1e444927a2d69c4a4729e
Certificado usado : 00001000000202518236
Certificado reportado : 00001000000202864530
El sello de certificación no es válido
IMPORTANTE: Los resultados anteriores se presentan a efecto de que valide
la estructura, cadena original y sello de su CFDI. Para que una factura
electrónica sea válida para efectos fiscales, deberá reunir los requisitos que
establecen las disposiciones fiscales vigentes.