Vamos eliminar el llamado a la función PruebaSimple y vamos a agregar el siguiente código
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Try
GeneraCFD("FacturaEcodex.ini", "otraclave")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Declaramos la función GeneraCFD
<Runtime.InteropServices.DllImport("CFDLib.dll", Entrypoint:="GeneraCFD")> _
Private Shared Sub GeneraCFD(ByVal IniFileName As String, ByVal ClaveLlavePrivada As String)
End Sub
Compilamos y..... nada sucede
En la carpeta donde tenemos el EXE vemos que se ha creado un archivo "bitacora de proceso.txt"
Como somos curiosos, lo abrímos y tiene el siguiente contenido.
---Inciando creacion de CFD / CFDI---
Abriendo archivo ini : FacturaEcodex.ini
ERROR FATAL : Se requiere un dato obligatorio :
[Parametros]
Certificado= ?
ahhhh, entonces falta el certificado... pues no. Las rutas están correctas.
Certificado=.\Certificados\aaa010101aaa_csd_01.cer
LlavePrivada=.\Certificados\aaa010101aaa_csd_01.key
XMLDestino=Factura101.xml
Lo que hay que hacer es modificar
GeneraCFD("FacturaEcodex.ini", "otraclave")
Por
GeneraCFD( Application.StartupPath & "\FacturaEcodex.ini", "otraclave")
Ese símbolo & es un ampersam. Y como puedes ver lo que he hecho es agregar la ruta completa al archivo .ini
Elimina el "bitacora de proceso.txt" y compila de nuevo.
Ahora crea el bitacora de proceso.txt con el siguiente contenido.
---Inciando creacion de CFD / CFDI---
Abriendo archivo ini : E:\CapturaDigital\FacturaCFDi\FacturaCFDi\bin\Debug\FacturaEcodex.ini
Abriendo Certificado : .\Certificados\aaa010101aaa_csd_01.cer
Abriendo Llave Privada : .\Certificados\aaa010101aaa_csd_01.key
ERROR FATAL : Error al leer la Llave privada, revise su contraseña : .\Certificados\aaa010101aaa_csd_01.key
Eso es correcto por que he puesto a propósito mal la clave de la llave privada.
En la carpeta Certificados, existe un Contraseñas.txt que indica que la clave es a0123456789
Corrigo el error adrede
GeneraCFD(Application.StartupPath & "\FacturaEcodex.ini", "a0123456789")
Compilamos y...
ya tengo mi XML creado
