Este documento lo explica todo ftp://ftp2.sat.gob.mx/asistencia_ftp/pu ... idador.pdf
El web service (como indica el PDF) esta en https://tramitesdigitales.sat.gob.mx/Si ... DsExt.asmx
Implemente una validación con este esquema en PHP, y es bastante sencillo usando PHP 5 y sus librerias SOAP y DOM XML (si hubiera interés les comparto más, sin embargo lo que implemente es parte de una solución mas grande con Drupal 7)
Adjunto el XSD que viene incluido en el PDF pero ya limpio, indentado, y corregido (cambié & por & y quite algunos caracteres extra).
También les pongo un ejemplo de un XML que pasa validación con este XSD. Este es el XML que deben enviar dentro del SOAP
Código: Seleccionar todo
<?xml version="1.0" encoding="UTF-8"?>
<ColleccionFoliosCfd xmlns="http://www.sat.gob.mx/Asf/Sicofi/ValidacionFoliosCFD/1.0.0">
<Folio>
<Id>1</Id>
<Rfc>AAA121212AAA</Rfc>
<Serie>FA</Serie>
<NumeroFolio>9</NumeroFolio>
<NumeroAprobacion>12345</NumeroAprobacion>
<AnioAprobacion>2010</AnioAprobacion>
<CertificadoNumeroSerie>0000011111111</CertificadoNumeroSerie>
<CertificadoFechaEmision>2011-12-12T14:20:15</CertificadoFechaEmision>
</Folio>
</ColleccionFoliosCfd>
Esto es un ejemplo de lo que contesta (no corresponde a la petición ya que esta respuesta tiene más de un <Id>)
Código: Seleccionar todo
<cfd:RespuestaFoliosCfd xmlns:cfd="http://www.sat.gob.mx/Asf/Sicofi/RespuestaFoliosCFD/1.0.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<cfd:ResultadoValidacion id="firmar">
<cfd:Id>1</cfd:Id>
<cfd:ResultadoValidacion>VV</cfd:ResultadoValidacion>
</cfd:ResultadoValidacion>
<cfd:ResultadoValidacion id="firmar">
<cfd:Id>2</cfd:Id>
<cfd:ResultadoValidacion>VV</cfd:ResultadoValidacion>
</cfd:ResultadoValidacion>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#firmar">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>...=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>...</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>...</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</cfd:RespuestaFoliosCfd>