Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-05-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
Cita:
Empezado por jourdan Ver Mensaje
Hola a todos, estoy validando mi comprobante en la siguiente página http://www.validacfd.com.mx/validar.xsa y me dice que varias partes del mismo ya estan bien pero por ejemplo en el sello digital me manda error, estoy usando los componenntes chilkat y segun yo ya esta para que pasara sin ningun problema, estoy usando las llaves de prueba del sat, sera ese el problema, no he solicitado folios reales porque al hacerlo te obigas amandar un reporte mensual, etc. y no me quiero meter en problemas hasta que esto este funcionando, alguien me puede dar un norte de que puede estar pasando. Alguien ha logrado sacar esto adelante usando los componentes chilkat rsa? Será que necesito obtener unos folios reales para ver si pasa la prueba usando los componetes chilkat?

Aqui esta el resultado de la pagina:
etc

Con los certificados de prueba del SAT se puede hacer que pase la validacion del SELLO. Y no es necesario tener folios "Reales" tampoco.

Si quieres te puedo echar la mano, mandame a mi mail [email protected] el archivo XML que estas tratando de validar, asi como el certificado DE PRUEBA del SAT que estas usando para firmarlo.

NOTA : NO ME MANDES ningun certificado "REAL", solo el de prueba, te lo pido porque hay como 10 o 15 certificados de prueba que tiene el SAT y si vamos a hacer pruebas debemos usar el mismo.
Responder Con Cita
  #2  
Antiguo 19-05-2010
jourdan jourdan is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico
Posts: 165
Poder: 24
jourdan Va por buen camino
Cita:
Empezado por dado Ver Mensaje
Con los certificados de prueba del SAT se puede hacer que pase la validacion del SELLO. Y no es necesario tener folios "Reales" tampoco.

Si quieres te puedo echar la mano, mandame a mi mail [email protected] el archivo XML que estas tratando de validar, asi como el certificado DE PRUEBA del SAT que estas usando para firmarlo.

NOTA : NO ME MANDES ningun certificado "REAL", solo el de prueba, te lo pido porque hay como 10 o 15 certificados de prueba que tiene el SAT y si vamos a hacer pruebas debemos usar el mismo.
Dado, muchismas gracias por tu ofrecimiento de ayuda, afortunadamnete ya puedo sellar facturas, mi problema era algo tontisimo, en la cadena original me falto poner el total de impuestos trasladados, si les sirve de tip, compare mi cadena con la cadena que arroja el programa que validacion del sat y ahi fue donde encontre el error, por otro lado tenia registrado un cliente que en el nombre tenia 2 espacios seguidos y ese es otro problema que impide validar los documentos, hay que tener mucho cuidado con esos detalles. Nuevamente gracias
__________________
Alejandro Jourdan
Responder Con Cita
  #3  
Antiguo 07-06-2010
cknox cknox is offline
Registrado
 
Registrado: jun 2010
Posts: 3
Poder: 0
cknox Va por buen camino
Cita:
Empezado por jourdan Ver Mensaje
Dado, muchismas gracias por tu ofrecimiento de ayuda, afortunadamnete ya puedo sellar facturas, mi problema era algo tontisimo, en la cadena original me falto poner el total de impuestos trasladados, si les sirve de tip, compare mi cadena con la cadena que arroja el programa que validacion del sat y ahi fue donde encontre el error, por otro lado tenia registrado un cliente que en el nombre tenia 2 espacios seguidos y ese es otro problema que impide validar los documentos, hay que tener mucho cuidado con esos detalles. Nuevamente gracias
yo tambien estoy empleando chilkat para generar el sello digital con rsa, pero la validacion de hacienda no logro pasarla, ya verifique y corregi los errores de la cadena original y su hash.
Ya que solucionaste esto usando chilkat podrias indicarme cual metodo empleaste? aki anexo los metodos que yo emplee.
saludos
(codigo en vb6)

Código:
 
'Carga del Modulo de Encriptacion RSA
  Dim rsa As New ChilkatRsa
'  Dim success As Long
  
  'Carga de la Llave Privada y su contraseña
  Dim privKey As New privateKey
  'success = privKey.LoadPkcs8EncryptedFile("aaa010101aaa_CSD_01.key", "a0123456789")
  success = privKey.LoadPkcs8EncryptedFile(Trim(gstrRutKey), Trim(gstrPasKey))
  If (success <> 1) Then
    MsgBox privKey.LastErrorText
    Exit Function
  End If
  
  'Exportar llave Privada a Formato XML
  Dim privKeyXml As String
  privKeyXml = privKey.GetXml 'GetXml()
  success = rsa.ImportPrivateKey(privKeyXml)
  If (success <> 1) Then
    MsgBox rsa.LastErrorText
    Exit Function
  End If
'  Text3 = vbNullString
'  Text3.Text = privKeyXml
  
  'Definición de Tipo de Salida (Base64)
  rsa.EncodingMode = "base64"
  'Definicion del tipo de conversion de caracteres a "utf-8"
  rsa.Charset = "utf-8"
  
  rsa.ImportPrivateKey privKeyXml  'publicKey
  
  'Proceso de Encriptación usando (cadena original digerida) y (llave privada + contraseña)
  Dim usePrivateKey As Long
  usePrivateKey =1
  Dim encryptedStr As String
'metodo1: cifrando wDigest que contiene la cadena original reducida con MD5 en HEX
  encryptedStr = rsa.EncryptStringENC(Trim(wDigest), usePrivateKey)
'metodo2: lo emplee erroneamente 
'  encryptedStr = rsa.SignStringENC(Trim(wDigest), "sha-1")
'metodo2: intento que digiera y cifre en un mismo paso con el parametros de la cadena original y "md5"
'  encryptedStr = rsa.SignStringENC(Trim(wCadOri), "md5")
cualquier sugerencia es bienvenida
Responder Con Cita
  #4  
Antiguo 07-06-2010
ifarias ifarias is offline
Miembro
 
Registrado: sep 2004
Posts: 23
Poder: 0
ifarias Va por buen camino
cknox

No veo como estas tratando la cadena original, asegúrate de que sea correcta, como primer paso.
y que sea igual a la que genera el SAT, si hay diferencias, por ahí te puedes ir.

Saludos
Responder Con Cita
  #5  
Antiguo 07-06-2010
cknox cknox is offline
Registrado
 
Registrado: jun 2010
Posts: 3
Poder: 0
cknox Va por buen camino
La cadena original ya esta bien, la genero independiente al xml, es decir manualmente segun el anexo 20, e incluso ya compare la salida que lee el validador de el SAT contra la mía, y ya coinciden inclusive los MD5 generado.

el codigo para generar la cadena original es un poco larga, asi que demos por hecho que esta correcta, dado que la validacion la acepta:

Cita:
El sello del comprobante presenta problemas:
Comprobante D:\KNOX\dmp\programa\RFC_CFD_NC1_20100606.xml leido exitosamente
Validando encodingComprobante expresado en UTF-8
Realizando validación del sello con un certificado externo
Certificado usado : 10001200000000022517
Certificado reportado : 10001200000000022517
Cadena original:
||XXXX||
Digestión MD5 de cadena como HEX:
54ff615657eeb4ae0eaaf7b8e5047955
El sello del comprobante no es válido
coinciden completamente las cadenas originales que genera SAT de mi archivo xml como el que uso yo para la generacion del sello.
ahora bien, regresando al uso de chilkat, si aun quieres verlo la reduccion la hago asi:

Código:
 
Dim crypt As New ChilkatCrypt2
Dim wDigest As String
 
'  La Salida de datos será en formato hexadecmal
crypt.EncodingMode = "hex" '"base64"
'  El Formato de conversión para caracteres especiales, será en "utf-8" como establece el SAT

crypt.Charset = "utf-8" 
crypt.HashAlgorithm = "md5"
 
Dim hashStr As String
 
'wCadOri es la variable que contiene la cadena original generada en otra funcion; y que introduzco en esta funcion como parametro
hashStr = LCase(crypt.HashStringENC(Trim(wCadOri)))
wDigest = hashStr 'contiene la cadena original digerida segun estandar SAT
A continuacion sigue el código que anexe anteriormente.

cuando generé el xml no inclui el valor certificado que es opcional.
por lo cual en la validacion me pide el certificado(*.cer) y me genera la lectura.

tengo duda si es forzoso que incluya el certificado en formato hex.
Pero estoy casi seguro que el problema radica en el metodo de chilkat que empleo:

EncryptStringENC(txt, usePrivateKey)
SignStringENC(txt, "SHA-1"|"MD5"|"MD2"|"SHA-256"|"SHA-384"|"SHA-512" )
OpenSslSignStringENC(txt)

estoy empezando a creer que debo emplear la tercera, pero parece que necesito investigar el modo de emplearla.

Espero haberme explicado lo suficientemente bien.
saludos y nuevamente sigo esperando comentarios

NOTA DE EDICION: modifique el nombre del xml y la cadena original x contener informacion confidencial que no me pertenece.
Aclaración: el codigo que empleo es una adaptacion a mis necesidades, originalmente proviene de los ejemplos que provee chilkat a sus clientes.

Última edición por cknox fecha: 07-06-2010 a las 06:51:37. Razón: modificar informacion que es confidencial y no distribuible
Responder Con Cita
  #6  
Antiguo 07-06-2010
cknox cknox is offline
Registrado
 
Registrado: jun 2010
Posts: 3
Poder: 0
cknox Va por buen camino
exito!!!

Finalmente, despues de muchas horas, de leer codigos, referencias de cada uno de los activeX de chilkat, encontre iluminacion divina y me encontre con un tema llamado:"Duplicate openssl dgst -md5 -sign myKey.pem something.txt | openssl enc -base64 -A"
Cita:
example-code.com/vb/rsa_rsa_openssl_sign.asp
El contenido de esa pagina resolvio mi problema y efectivamente era debido al metodo rsa usado.
colegas, chilkat funciona, y aunk mi codigo es vb6, se supone que es compatible con delphi como lo debio haber comprobado jourdan
suerte a los demas. depues de todo cuando estudiaba mi primer lenguaje fue turbo pascal, y luego delphi
Responder Con Cita
  #7  
Antiguo 09-06-2010
mesquivelh mesquivelh is offline
Registrado
 
Registrado: may 2006
Posts: 7
Poder: 0
mesquivelh Va por buen camino
Addenda

Estoy usando el código publicado aquí con Delphi 2007, todo estaba bien hasta que intenté agragar una addenda a mi documento XML.

Lo hize de éste modo:

CFD.Addenda := 'CADENA|ADDENDA';

Y delphi me devuelve un error:

[DCC Error] Main.pas(767): E2129 Cannot assign to a read-only property

Entonces lo hize de éste modo:

CFD:Addenda.Text := 'CADENA|ADDENDA';

y delphi me lo genera bien, pero al validar en el SAT obtengo éste error:

El sello del comprobante es válido:
Se presentaron los siguientes errores al validar la estructura del comprobante \Bin\FacturaSello.xml
Error: cvc-complex-type.2.3: Element 'Addenda' cannot have character [children], because the type's content type is element-only.

¿Alguién me puede orientar sobre cómo agregar la addenda sin obtener errores?
Responder Con Cita
  #8  
Antiguo 22-05-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 24
JXJ Va por buen camino
¿quien de los que ya validaron tanto la estructura del xml la cadena original y el sello

puede compartir esa informacion para comparar si lo ando haciendo bien.'?

gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mexico - Como crear sellos en FACTURA ELECTRONICA.. pcicom API de Windows 12 10-11-2012 18:46:55
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06
Factura electronica AUNA Aprendiz Varios 5 01-09-2005 10:44:15


La franja horaria es GMT +2. Ahora son las 16:09:23.


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