// libfacturista, DLL para generar el XML, sellar y timbrar el CFDI.
// Ejemplo de uso de libfacturista en Dynamics AX (x++) - 2013-09-06
// Ariel Medina - 2013 - facturista.com
// Descripción de las funciones de la DLL en http://facturista.com/code_example.php?lang=api
// Ya que Dynamics puede producir el XML sellado, sólo se necesita timbrar
// Deberá referenciar la dll libfacturista_cs.dll
static void Job2(Args _args)
{
str params; // Parámetros de timbrado
int h; // Manejador para el comprobante
info( strfmt("%1", libfacturista.ansiApi::libfacturista_version() ) );
h = 0;
// Es necesario llamar a _cfdi_xml_cargar porque Diverza sólo devuelve el timbre, entonces, necesitamos tener cargado el XML para poder insertar la información del timbre en el nodo adecuado del XML.
h = libfacturista.ansiApi::cfdi_xml_cargar(h,"C:\\tmp\\ejemplo_sellado.xml");
if(h != 0)
{
params = "PAC=Diverza;RefID=1234abc;RfcReceptor=XXX010101AAA;RfcEmisor=AAA010101AAA;ArchivoRespuesta=C:\\tmp\\RespuestaPAC.txt";
params = params + ";SSL=1;Servidor=demotf.buzonfiscal.com;Puerto=443;ContrasenaCertificadoCliente=AAA010101AAA;ArchivoCertificadoCliente=C:\\tmp\\AAA010101AAA.pem";
// El segundo parámetro de _cfdi_timbrar es la cadena vacía para timbrar lo que tenemos en memoria
if( libfacturista.ansiApi::cfdi_timbrar(h, "", "C:\\tmp\\ejemplo_timbrado.xml", 6, params) != 0 )
info("Timbrado exitoso");
else
info( libfacturista.ansiApi::cfdi_error(h) );
}
else
info("No se pudo cargar el archivo");
}