Página 1 de 2

Sello Invalido

Publicado: Vie Nov 03, 2017 11:46 am
por mikinacho
Que tal compañeros, necesito una ayuda porque ya no pude solo, ya hice el Xml y ya lo valide y esta perfecto, ahora estoy con el sello es ahi donde necesito saber porque no me cuadra con los validadores como el de ValidaCFD y otro por ahi.
La cadena original ya vi que esta bien esta igual a como lo pone el validaCFD y copia la rutina del sello que por ahi un usuario la puso en este fabuloso foro:
La DLL la baje hace unos momentos ya que tenia una version anterior ya la actualiza la puse y nada, ya no se mas que puede ser
Adjunto XML
GRACIAS

Código: Seleccionar todo

Sub GenerarSello()
        Dim privateCert As New X509Certificate2(DirPfx, "paswword", X509KeyStorageFlags.Exportable)
        Dim privateKey As RSACryptoServiceProvider = DirectCast(privateCert.PrivateKey, RSACryptoServiceProvider)
        Dim privateKey1 As New RSACryptoServiceProvider()
        privateKey1.ImportParameters(privateKey.ExportParameters(True))
        Dim stringCadenaOriginal() As Byte = System.Text.Encoding.UTF8.GetBytes(strCadenaOriginal)
        Dim signature As Byte() = privateKey1.SignData(stringCadenaOriginal, "SHA256")
        Dim sello256 As String = Convert.ToBase64String(signature)
        'para verificar el sello
        Dim isValid As Boolean = privateKey1.VerifyData(stringCadenaOriginal, "SHA256", signature)
        Dim Root As XElement = XDocument.Load(direccionfinal).Root
        Root.@Sello = sello256
        Root.Save(direccionfinal)
    End Sub

Re: Sello Invalido

Publicado: Vie Nov 03, 2017 11:50 am
por Hana
Por lo regular eso del sello inválido es por un caracter raro que manejamos y que al momento de sellarlo nos lo genera mal

Muchas veces comparamos las cadenas y no vemos el espacio, enter, acento, caracter y no nos damos cuenta.

Copia aquí la cadena que estas generando para revisarla =)


Saludos!

Re: Sello Invalido

Publicado: Vie Nov 03, 2017 12:02 pm
por mikinacho
que tal, te copio la cadena

Código: Seleccionar todo

||3.3|A|4610|2017-04-10T10:45:31|01|00001000000301268365|731.20|MXN|845.00|I|PUE|83140|DCR1102231X6|DERMATOLOGICOS CR SA DE CV|601|LALE761108S48|MARIA EILETIIA SUHEI LARA LOPEZ|G01|01010101|091|1|H87|PZA|LANOLINA PURA 50GR|51.72|51.72|51.72|002|Tasa|0.160000|8.28|01010101|3282776468636|1|H87|PZA|MELASCREEN DESPIG NOCHE 30ML|512.93|512.93|512.93|002|Tasa|0.160000|82.07|01010101|571|1|H87|PZA|BLOQ SOLAR GEL 70FPS 150ML|129.31|129.31|129.31|002|Tasa|0.160000|20.69|01010101|936|1|H87|PZA|ACEITE COMESTIBLE COCO 60ML|20.00|20.00|01010101|951|1|H87|PZA|BORAX 100G.|17.24|17.24|17.24|002|Tasa|0.160000|2.76|002|Tasa|0.160000|113.80|113.80||


Pense también por la fecha, no creo que tenga que ver, ya que es unos tickets viejos..

gracias por contestar

Re: Sello Invalido

Publicado: Dom Nov 05, 2017 11:42 am
por Dado
Aqui en ValidaCFD tenemos una libreria DLL que te permite sellar y timbrar tu XML en un solo paso

Checa la informacion aqui, puedes descargar una DEMO de dicha dll, en la demo vienen ejemplos de programacion en varios lenguajes

Re: Sello Invalido

Publicado: Lun Nov 06, 2017 11:22 am
por mikinacho
Que tal DADO muchas gracias por tu respuesta, ahorita estoy programando para mi negocio y si he pensado cambiar de PAC. Ahora con lo referente a el sello invalido, habra archivo pfx de prueba por ahi para ponerle esos y ver si son mis archivos (aunque sigo sellando con esos en estos momentos) pero el error que me arroga la pagina de https://www.lacorona.com.mx por ahi va, pero quiero comprobarlo..

gracias

Sello invalido

Publicado: Vie Nov 10, 2017 12:22 pm
por mikinacho
Compañeros
Tengo ya varias semanas con este problema del sello que me lo genera mal, les pego el codigo para generarlo

Código: Seleccionar todo

Dim privateCert As New X509Certificate2(archivopfx, "123456", X509KeyStorageFlags.Exportable)
        Dim privateKey As RSACryptoServiceProvider = DirectCast(privateCert.PrivateKey, RSACryptoServiceProvider)
        Dim privateKey1 As New RSACryptoServiceProvider()
        Dim xmldoc As New XmlDocument
        xmldoc.Load(direccionfinal)
        privateKey1.ImportParameters(privateKey.ExportParameters(True))
        Dim stringCadenaOriginal() As Byte = System.Text.Encoding.UTF8.GetBytes(GetCadenaOriginal(xmldoc.InnerXml))
        Dim signature As Byte() = privateKey1.SignData(stringCadenaOriginal, "SHA256")
        Dim sello256 As String = Convert.ToBase64String(signature)
        'para verificar el sello
        Dim isValid As Boolean = privateKey1.VerifyData(stringCadenaOriginal, "SHA256", signature)
        GenerarSello = sello256
        Dim Root As XElement = XDocument.Load(direccionfinal).Root


les pego la cadena original de mi programa:
||3.3|A|4986|2017-11-09T11:43:05|01|00001000000408040681|556.03|MXN|645.00|I|PUE|83140|DCR1102231X6|DERMATOLOGICOS CR SA DE CV|601|NIMH600330866|HECTOR MARTIN NICOLA MONROY|G01|01010101|911|1|H87|PZA|AGUA DE ROSAS CON AC DE ALMENDRAS 250ML|43.10|43.10|43.10|002|Tasa|0.160000|6.90|01010101|525|1|H87|PZA|BLOQ SOLAR CMA 70FPS 150ML|129.31|129.31|129.31|002|Tasa|0.160000|20.69|01010101|3337871316624|1|H87|PZA|DERMABLEND MAQ.CREMA 45 GOLD 30ML|383.62|383.62|383.62|002|Tasa|0.160000|61.38|002|Tasa|0.160000|88.97|88.97||


es identica en los validadores ValidaCFD y laCorona

No se que puede ser, ya ando un poco desesperado porque el tiempo se acaba.. adjunto xml

gracias

Re: Sello Invalido

Publicado: Vie Nov 10, 2017 12:50 pm
por Dado
Compare la cadena y parecen iguales (lo hice a ojo, por eso no puedo confirmar al 100%)

Ahora compara el hash, el del validador tiene este valor, que valor obtienes tu ?

SHA256 = C02CA63F2F2948E910775B38A0DB064D9183FE5BA908C2397E24B7F1B6FDC685

Una pregunta, porque no tiene sello digital tu XML de prueba ?

Re: Sello Invalido

Publicado: Vie Nov 10, 2017 6:05 pm
por mikinacho
ya quedo resuelto, gracias!!!

Re: Sello Invalido

Publicado: Vie Nov 10, 2017 6:12 pm
por Dado
Que fue lo que cambiaste ?

Ayudaria muchisimo saber como lo solucionaste :D :D

Re: Sello Invalido

Publicado: Vie Nov 10, 2017 6:26 pm
por mikinacho
que tal DADO
Sucedió algo muy raro, un compañero me dio su proyecto para checarlo con el mío y ver que era lo que estaba diferente, lo único que era diferente era como hacíamos el xml, toda la semana estuve buscando la solución y nada y me puse hacer el xml desde 0 (otra ves) como el lo había hecho y listo!! jalo, a que se deberá no se, a la mejor un carácter que no veíamos o algo por ahi, pero lo hice así y listo!!

yo lo hacia con .WriteStartElement,.WriteAttributeString etc etc
y lo hice con XMlElement etc etc


gracias DADO