Validar folio fiscal CFDi con PHP (directo del SAT) 2018

Validar folio fiscal CFDi con PHP (directo del SAT) 2018

A partir del 1 de noviembre de 2018, el SAT cambió su webservice que permite consultar el estado de una factura, así que el método anterior para consultar ya no funciona.

Aquí la nueva función, ahora es directo con CURL en lugar de SOAP

<?php 

/* @toro 2018 tar.mx -- consultar estado de factura directo al SAT */

//datos de factura RFC emisor, RFC receptor, Total, UUID

$emisor="";

$receptor="";

$total="";

$uuid="";

//

$soap = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"><soapenv:Header/><soapenv:Body><tem:Consulta><tem:expresionImpresa>?re='.$emisor.'&amp;rr='.$receptor.'&amp;tt='.$total.'&amp;id='.$uuid.'</tem:expresionImpresa></tem:Consulta></soapenv:Body></soapenv:Envelope>';

//encabezados

$headers = [

'Content-Type: text/xml;charset=utf-8',

'SOAPAction: http://tempuri.org/IConsultaCFDIService/Consulta',

'Content-length: '.strlen($soap)

];

$url = 'https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $soap);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

$res = curl_exec($ch);

curl_close($ch);

$xml = simplexml_load_string($res);

$data = $xml->children('s', true)->children('', true)->children('', true);

$data = json_encode($data->children('a', true), JSON_UNESCAPED_UNICODE);

print_r(json_decode($data));

Eso es todo, si tenemos datos válidos nos debería regresar algo como lo siguiente:

stdClass Object

(

[CodigoEstatus] => S - Comprobante obtenido satisfactoriamente.

[EsCancelable] => Cancelable sin aceptación

[Estado] => Vigente

[EstatusCancelacion] => stdClass Object

(

)

)

Lo cual es un objeto con los datos que nos regresa el SAT, eso es todo. Gracias a Jaime Favela por la información para poder consultar la nueva forma.

ps. si el script marca error, copialo de aquí

+ fotos / videos

Almacenado en PHP, Facturación Electrónica

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Validar folio fiscal CFDi con PHP (directo del SAT) 2018

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado jueves 8 de julio de 2021, 11:20

cuentame