/** * Genera y timbra un archivo XML, y devuelve un arreglo conteniendo la información necesaria para proveer la factura timbrada al cliente * @param string $usuario nombre de usuario username * @param string $password password de la cuenta * @param string $layout texto que contiene los datos del comprobante a generar, basado en la plantilla. * @return boolean si el timbrado es correcto */ public function generarCFDI($usuario, $password, $layout) { try { $client = new SoapClient($this->urlFacturaDigital, array('cache_wsdl' => WSDL_CACHE_NONE, 'trace' => TRUE)); $cfdi = $client->generarCFDIPorTexto($usuario, $password, $layout); return $cfdi; } catch (Exception $e) { throw new Exception($e->getMessage(), $e->getCode()); return false; } }
/** * Realiza la llamada al método de timbrado del Web Service de FacturaDigital.com.mx * * @param string $usuario es el usuario registrado en FacturaDigital * @param string $password es el password registrado en FacturaDigital * @param string $layout es el texto que contiene los datos del comprobante a generar, basado en la plantilla. * @return array $cfdi Contiene el arreglo de cadenas de texto con la información del CFDI */ public static function generarCFDI($usuario, $password, $layout) { set_time_limit(0); try { $urlFacturaDigital = "https://www.facturadigital.com.mx/sistemacfdi32/webservices/TimbradoWS.php?wsdl"; $client = new SoapClient($urlFacturaDigital, array('cache_wsdl' => WSDL_CACHE_NONE, 'trace' => TRUE)); // envia los parámetros al método de timbrado $cfdi = $client->generarCFDIPorTexto($usuario, $password, $layout); // llama al método de generación de CFDI // retornamos los datos del timbre (aquí viene la URL del XML y PDF para que los descargues a tu servidor) return $cfdi; } catch (Exception $e) { throw new Exception("Error al Timbrar: " . $e->getMessage(), 100); return false; } }