Beispiel #1
0
// Objetos de Firma y Folios
$Firma = new \sasco\LibreDTE\FirmaElectronica($config['firma']);
$Folios = new \sasco\LibreDTE\Sii\Folios(file_get_contents('xml/folios/33.xml'));
// generar XML del DTE timbrado y firmado
$DTE = new \sasco\LibreDTE\Sii\Dte($factura);
$DTE->timbrar($Folios);
$DTE->firmar($Firma);
// generar sobre con el envío del DTE
// en este ejemplo sólo se obtendrá el XML del EnvioDT y se enviará
// posteriormente por el método "paso a paso", existe un método
// EnvioDTE::enviar() que envía el XML que se genera, ver ejemplo 010-set_pruebas.php
$EnvioDTE = new \sasco\LibreDTE\Sii\EnvioDTE();
$EnvioDTE->agregar($DTE);
$EnvioDTE->setCaratula($caratula);
$EnvioDTE->setFirma($Firma);
$xml = $EnvioDTE->generar();
// solicitar token
$token = \sasco\LibreDTE\Sii\Autenticacion::getToken($Firma);
if (!$token) {
    foreach (\sasco\LibreDTE\Log::readAll() as $log) {
        echo $log, "\n";
    }
    exit;
}
// enviar DTE
$result = \sasco\LibreDTE\Sii::enviar($caratula['RutEnvia'], $factura['Encabezado']['Emisor']['RUTEmisor'], $xml, $token);
// si hubo algún error al enviar al servidor mostrar
if ($result === false) {
    foreach (\sasco\LibreDTE\Log::readAll() as $log) {
        echo $log, "\n";
    }