Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Factura Electronica XML del SAT con VB6

Estas en el tema de Factura Electronica XML del SAT con VB6 en el foro de Visual Basic clásico en Foros del Web. Hola amigos tengo un bendito problema al generar el XML y luego Validarlo, les comento que es lo que tengo: * La empresa es Educativa ...
  #1 (permalink)  
Antiguo 02/02/2012, 14:24
 
Fecha de Ingreso: diciembre-2011
Mensajes: 1
Antigüedad: 7 años, 9 meses
Puntos: 0
Factura Electronica XML del SAT con VB6

Hola amigos tengo un bendito problema al generar el XML y luego Validarlo, les comento que es lo que tengo:

* La empresa es Educativa y esta en el esquema de MEDIOS PROPIOS para la generación de sus Facturas Digitales (CFD).

* Creo primero el Archivo .PEM el cual para mi es FIJO ya que lo genero solamente 1 vez, con el siguiente código en OPENSSL

C:\GnuWin32\bin\openssl.exe pkcs8 -inform DER -in c:\sha1\CAT860403KT9_1108261409S.key –passin pass:12345678pas > c:\sha1\cat.key.pem

Ahora si les muestro el código en VB6

1. Creo la cadena Original con los datos de la facturación y de ahí lo convierto a UTF-8
CadOriAUX = CadenaOriginal
Var1 = 1
Do While Var1 <= Var2
Var3 = Asc(Mid(CadOriAUX, Var1, 1))
If (Var3 >= &H80) Then
CadOriAUX= Left(CadOriAUX, Var1 - 1) + Chr(&HC2 + ((Var3 And &H40) / &H40)) + Chr(Var3 And &HBF) + Mid(CadOriAUX, Var1 + 1)
Var1 = Var1 + 1
End If
Var1 = Var1 + 1
Loop

2. Ahora lo Guardo en un Archivo TXT
Open "C:\sha1\01_CadenaOriginalCAT.txt" For Output As #1
Print #1, CadOriAUX
Close #1

3. Una vez que obtengo la Cadena Original a UTF8, genero la Digestión a SHA1:
programa = Shell("C:\sha1\02_cfdcat.bat", vbNormalFocus)
RutaSHA1 = "C:\sha1\03_SelloGeneradoCAT.txt"

donde el archivo 02_cfdcat.bat contine la instrucción:

C:\GnuWin32\bin\openssl.exe dgst -sha1 C:\sha1\01_CadenaOriginalCAT.txt > C:\sha1\03_SelloGeneradoCAT.txt

Ya en el VB6 al archivo lo dejo exclusivamente con el resultado de la digestión;
"SHA1(C:\sha1\01_CadenaOriginalCAT.txt)=ea31fd15b7 71d033da27bcf50ccbf307c42d6a60"

Open RutaSHA1 For Input As #3
Line Input #3, Linea
Var1 = Len(Linea)
Var2 = Var1 - 41
If Var2 > 0 Then
CadOriAUX = Mid(Linea, 41, Var2)
Else
CadOriAUX = Mid(Linea, 41, 41)
End If
Close #3


Open RutaSHA1 For Output As #4
Print #4, CadOriAUX
Close #4

Entonces me queda el archivo 03_SelloGeneradoCAT.txt : ea31fd15b771d033da27bcf50ccbf307c42d6a60

4. Hasta aquí Todo funciona bien, digo a mi parecer entonces es cuando empleo el siguiente código

programa = Shell("C:\sha1\06_GeneraSelloCAT.bat", vbNormalFocus)

Donde el archivo 06_GeneraSelloCAT.bat tiene la instrucción:
C:\GnuWin32\bin\openssl.exe dgst -sha1 -sign C:\sha1\cat.key.pem C:\sha1\01_CadenaOriginalCAT.txt | C:\GnuWin32\bin\openssl.exe enc -base64 -A > C:\sha1\07_ResultadoSelloGeneradoCAT.txt

Se entiende que con este se sella el SHA1 y se genera el SELLO el cual se almacena el el Archivo 07_ResultadoSelloGeneradoCAT.txt ese texto lo anexo en el XML en el campo SELLO, quedando el resultado del sello algo como esto: lW0UjEYTCeSTrsiiPeIv7V3HaV0Kj6oh+e6QzvLspigBCCl9J5 GuRDn7CokYV5PbkOOzR74ZXcW5Oe4E7oH99FJCpqt1FofZ0fgW f6zxx6wPSDzKtQYzemdKKJ1X4DLl898esCzqD3G1tVr7TcXP+0 +NXs034yXFSxGo84hw4hY=

Procedo a VALIDAR el XML y me da este resultado

Resumen del análisis del XML
Archivo XML :100108.xml
Ruta :C:\sha1\XMLCAT\100108.xml

Estructura : Estructura del CFD correcta
CFD codificado en: UTF-8.
El sello del comprobante es Inválido

Folio :No Registrado
Folio : 100108
Serie : A
Año : 2011
Número de Aprobación : 259811
Rfc emisor : CAT860403KT9

Vigencia del CSD : A la fecha de emisión del CFD, el CSD es : Activo
Detalle del análisis del XML
Resultado de la Digestión :No se pudo verificar el sello
Tipo de Certificado:
No. de Serie del CSD :00001000000104257503

Cadena Original :||2.0|A|100108|2012-02-02T15:11:24|259811|2011|ingreso|Pago en una sola exhibición|Pago en una sola exhibición|4350.00|4350.00|CAT860403KT9|COLEGIO AMERICANO DE TABASCO SC|PROLONGACION DE PASEO USUMACINTA|1144|TABASCO 2000|VILLAHERMOSA|CENTRO|TABASCO|MEXICO|86035|CUHE 770531U30|ERNESTO DE LA CRUZ HERNANDEZ|JUAN ALDAMA|13|BARRIO SAN LUIS|JALPA DE MENDEZ|TABASCO|MEXICO|86200|1|Servicio|1|COLEGIATU RA SECUNDARIA 2011-2012 #6 FEB|4350.00|4350.00|IVA|16|0.00|0.00||


Lo que necesito saber cada instrucción de los archivos .BAT es correcto o mejor dicho a como esta descrito en el OPENSSL... espero explicarme y que me puedan ayudar, ya que NO se que hacer..

Gracias
  #2 (permalink)  
Antiguo 29/02/2012, 21:20
 
Fecha de Ingreso: febrero-2012
Ubicación: Mexico
Mensajes: 1
Antigüedad: 7 años, 6 meses
Puntos: 0
Respuesta: Factura Electronica XML del SAT con VB6

jaquemate1977 yo estoy empezando con este tema, tu ya lograste solucionar el problema que tenias? realmente me gustaria conocer mas sobre tus experiencias. en este momento no he podido abrir el archivo .cer para extraer la información del No. de Serie ¿que debo hacer? el sistema lo estoy realizando en vb6

Etiquetas: electronica, factura, programa, sat, vb, vb6, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




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