Página 1 de 1

Sello mal formado en Cancelacion

Publicado: Jue Sep 12, 2013 8:48 am
por hammer
Necesito ayuda! Llevo como un mes atorado en este paso de la cancelación. Mi sistema está en php y no logro cancelar:
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>
¿Alguien podría ayudarme a generar correctamente este sellado? Estoy perdido.

Re: Sello mal formado en Cancelacion

Publicado: Jue Sep 12, 2013 10:31 am
por hammer
Ya logré armar el xml de cancelación correctamente, refieranse a este tutorial buenísimo que me ayudó a encontrar la falla:
http://www.cryptosys.net/pki/satcancelcfd.html