Resultado: stdClass Object ( [return] => stdClass Object ( [acuse] => [codEstatus] => 302 [codMensaje] => Sello malformado o inválido ) )
El servicio web lo tomo de www.expidetufactura.com.mx / www.xpd.com.mx .
Los pasos que ellos me dijeron que hiciera para generar este xml de cancelacion son los siguientes:
- - Generar el xml base:
Código: Seleccionar todo
<Cancelacion xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2013-09-09T11:50:00" RfcEmisor="AAA111AAA"><Folios><UUID>09870F6A-131A-4BC4-B557-0EAC77701AAE</UUID></Folios></Cancelacion>
- - Canonicalizarlo
- - Sacar un sha1 de 20 digitos del xml base para que sea el <DigestedValue>
- - Al <SignedInfo> firmarlo usando openssl_sign usando la llave del certificado que uso también para timbrar <-- que tambien hace un sha1 de todo.
Esto me da el <SignatureValue>
Código: Seleccionar todo
<SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod><DigestValue>dOk/d4j5dW8o5DyhQxbN+cA94VY=</DigestValue></Reference></SignedInfo>
- - Agregamos ahora la ultima parte que es el KeyInfo, esta parte contiene el Certificado codificado en base64, igual que el timbrado
Código: Seleccionar todo
<KeyInfo><X509Data><X509IssuerSerial><X509IssuerName> unstructuredName=Responsable: Cecilia Guillermina García Guerra, x500UniqueIdentifier=SAT970701NN3, L=Cuauhtémoc, ST=Distrito Federal, C=MX, postalCode=06300, streetAddress=Av. Hidalgo 77, Col. Guerrero, emailAddress=asisnet@sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. del Servicio de Administración Tributaria</X509IssuerName><X509SerialNumber>275106190557734483187066766774039651444094808625</X509SerialNumber></X509IssuerSerial><X509Certificate>MIIEgDCCA2igAwIBAgIUMDAwMDEwMDAwMDAyMDMyNzUyMjEwDQYJKoZIhvcNAQEFBQAwggGVMTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJhY2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSEwHwYJKoZIhvcNAQkBFhJhc2lzbmV0QHNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxFDASBgNVBAcMC0N1YXVodMOpbW9jMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxPjA8BgkqhkiG9w0BCQIML1Jlc3BvbnNhYmxlOiBDZWNpbGlhIEd1aWxsZXJtaW5hIEdhcmPDrWEgR3VlcnJhMB4XDTEzMDMyMDA1MzYzMloXDTE3MDMyMDA1MzYzMlowgcExITAfBgNVBAMTGEpNSCBUUkFOU1BPUlRFUyBTQSBERSBDVjEhMB8GA1UEKRMYSk1IIFRSQU5TUE9SVEVTIFNBIERFIENWMSEwHwYDVQQKExhKTUggVFJBTlNQT1JURVMgU0EgREUgQ1YxJTAjBgNVBC0THEpUUjEyMTEwMVJEMyAvIE1PVEM2NDExMDQ2ODIxHjAcBgNVBAUTFSAvIE1PVEM2NDExMDRNREZSUlIwMTEPMA0GA1UECxMGVU5JREFEMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDx6bhnnwSJMNRlXD90GXgJBRobHCRu2kMTfK1INDsrcmV8O7XDs1aKLKIohRkfF4mkci8nP/ox6snX1JO+DOOQP3d7XQSru3NfajP/tdniPfuL0LG1VsIgvKE7gB6ra4ah5giqxmxcDab0LPjQERRN5pynH7su/oyOybXeY22w9QIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEAgna1dy/LXrZzLR4eSiffj6Gg5q7AZ14djMW1Qg9C0lHMJQVE+0yfmxPd7QTtBB9wB4ut2Drdi0SN74TTQ8orZJ6sxpHFK6sL8kx+vynSEcedeiJwPW118Bizy0WDUOFh5Zu9q/aW/+1wdzbYq4ks5DE1R9HQQPZGfsYfKVfEbKWBc2cSlB5zrxFVw6MfD6gdABIFtIChcskITHgP0spLWCngAe0jo8ZChekCTjSUnv/SK4qgQW/VY3+aWqQCJT6UnUZRVp9Wv05ILquCWrXfJb+5pj+MddpkySDBiXPIIcSR5FQXhWi4w7zY/D9sz8nk67jIrSUY3hEtJDFMMp8JUQ==</X509Certificate> </X509Data></KeyInfo>