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 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
  #2  
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
  #3  
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
  #4  
Antiguo 09-06-2010
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 19
odrack Va por buen camino
Saludos compañeros!

Estoy comenzando a desarrollar la facturacion electronica, no he logrado entender aun paso por paso cual es el procedimiento que pide el SAT,

1. Generar la cadena original
2. Generar xml
3. Sellar la cadena

He ledio lo que pide hacienda pero no logro entender que se tiene que hacer primero, ya tengo perfectamente entendido que se necesita la key y el cer junto con la FEA, que sigue despues?.

Desde ya, gracias por sus aportes!
Responder Con Cita
  #5  
Antiguo 09-06-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
Cita:
Empezado por odrack Ver Mensaje
Saludos compañeros!

Estoy comenzando a desarrollar la facturacion electronica, no he logrado entender aun paso por paso cual es el procedimiento que pide el SAT,

1. Generar la cadena original
2. Generar xml
3. Sellar la cadena

He ledio lo que pide hacienda pero no logro entender que se tiene que hacer primero, ya tengo perfectamente entendido que se necesita la key y el cer junto con la FEA, que sigue despues?.

Desde ya, gracias por sus aportes!
Casi, pero en otro orden.

0. Procesas el Certificado que te da el SAT, de ahi obtienes la vigencia y el numero de serie

1. Generas el XML, con los datos de tu empresa, del cliente, de los productos o servicios y con el numero de serie del certificado y un monton de datos mas

2. A partir del XML generas la "Cadena Original"

3. La Cadena Original la digieres con MD5

4. La Digestion MD5 te arroja una cadena de caracteres hexadecimales, esta cadena la firmas usando la Llave Privada. Existen algunas librerias que hacen el paso 3 y 4 en una sola instruccion.

5. Normalmente la firma es binaria, tienes que convertirla a Base64

6. Ese sello se lo pegas al XML que generaste en el paso 1
voila....tienes tu factura digital (expresado en XML)

Facil no? je je je

Ya en serio, estos son los pasos, como ves si son un poco laboriosos y "obscuros". Yo ya tengo la solucion en Delphi 7. Si quieres mandame un mensaje a [email protected] para ver como te puedo ayudar mas.
Responder Con Cita
  #6  
Antiguo 10-06-2010
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 19
odrack Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 09-07-2010
Avatar de LordRiper
LordRiper LordRiper is offline
Miembro
 
Registrado: mar 2007
Posts: 22
Poder: 0
LordRiper Va por buen camino
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.)
__________________
-- Salim Giacoman --
Torreon, Coahuila, Mx
[email protected]


“Entre más aprendo, más quiero saber.
Entre más sé, más quiero aprender"

Última edición por LordRiper fecha: 09-07-2010 a las 00:27:46.
Responder Con Cita
  #8  
Antiguo 10-07-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 09-06-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
Cita:
Empezado por mesquivelh Ver Mensaje
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?
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
Responder Con Cita
  #10  
Antiguo 11-06-2010
mesquivelh mesquivelh is offline
Registrado
 
Registrado: may 2006
Posts: 7
Poder: 0
mesquivelh Va por buen camino
Cita:
Empezado por dado Ver Mensaje
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
Responder Con Cita
  #11  
Antiguo 11-06-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
Cita:
Empezado por mesquivelh Ver Mensaje
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!!!!
Responder Con Cita
  #12  
Antiguo 11-06-2010
mesquivelh mesquivelh is offline
Registrado
 
Registrado: may 2006
Posts: 7
Poder: 0
mesquivelh Va por buen camino
Muchas gracias dado, espero que tu suposición sea correcta.
Responder Con Cita
  #13  
Antiguo 25-08-2011
ronco88 ronco88 is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 1
Poder: 0
ronco88 Va por buen camino
Addenda de Qualitas

Alguien me puede ayudar con la Addenda de Qualitas, debido a que cuando la genero me marca un Error: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'ECFD y quisiera ver que es lo que tengo mal

PD mesquivelh tu haces mencion de que tienes la Addenda AMIS, me podrias ayudar
Responder Con Cita
  #14  
Antiguo 22-05-2012
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 23
nuk3zito Va por buen camino
Cita:
Empezado por ronco88 Ver Mensaje
Alguien me puede ayudar con la Addenda de Qualitas, debido a que cuando la genero me marca un Error: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'ECFD y quisiera ver que es lo que tengo mal

PD mesquivelh tu haces mencion de que tienes la Addenda AMIS, me podrias ayudar
Si quieres, envíame tu CFD y te indico que es lo que está mal. Yo manejo esa addenda. Si quieres por MP
__________________
Tiempo y ocasión acontecen a todos!
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 00:32:02.


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