Cancelación CFDI con PAX
Publicado: Sab Nov 30, 2013 9:24 am
Hola que tal, pues verán la empresa dónde laboro lleva varios años timbrando con Edicom pero en su deseo de tener un PAC de respaldo se está trabajando con PAX, en el timbrado no ha habido problemas el inconveniente es su cancelación el cual es muy diferente a los parámetros de edicom, por ejemplo edicom recibe el pfx con su respectiva contraseña pero los de pac reciben un string con la estructura de un mensaje soap. Su documentación un asco y básicamente todo lo que llevo ahorita ha sido gracias a San Google y a este foro pero he llegado a un punto en el que no logro pasar, entonces aquí mi duda verán estoy trabajando con C# .Net, la cadena que me piden debe ser el siguiente formato:
<s:Envelope><s:Body><CancelaCFD><Cancelacion>
<Folios><UUID>1111C564-F912-44C8-B16F-086A500E83E1</UUID></Folios>
<Folios><UUID>2222C55F-6783-4AB7-B26A-E42E9469FA7F</UUID></Folios>
Aquí va el XML Firmado </Cancelacion>
</CancelaCFD>
</s:Body>
</s:Envelope>
Y en el xml firmado:
<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=""><Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /></Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" ... 1WFrx9F+A= </DigestValue></Reference></SignedInfo><SignatureValue>MlrVpIyPPdv93WEALlBDma5evI3wYJyGjqUbqT9HE6KbkiGJK3uadeH4WPaO3jzimSLr5I4HwYWxVPCnLOTxC3K6NkkuJIYkJUvychA2QScrxaKhQTvKZCnL/DgJCeqyAUWb9h6lH/FihmemTnFKVuFrvFu4gtFZLqoMgzZG1X4=</SignatureValue><KeyInfo><X509Data><X509IssuerSerial>
<X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: Araceli Gandara Bautista, L=Coyoacán, S=Distrito Federal, C=MX, PostalCode=06300, STREET="Av. Hidalgo 77, Col. Guerrero", E=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 depruebas</X509IssuerName><X509SerialNumber>286524172099382162235533054529634765881054737717
</X509SerialNumber></X509IssuerSerial><X509Certificate>MIIEIDCCAwigAwIBAgIUMjAwMDEwMDAwMDAyMDAwMDAyNTUwDQYJKoZIhvcNAQEFBQAwggFcMRowGAYDVQQDDBFBLkMuIDIgZGUgcHJ1ZWJhczEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMTQwMgYJKoZIhvcNAQkCDCVSZXNwb25zYWJsZTogQXJhY2VsaSBHYW5kYXJhIEJhdXRpc3RhMB4XDTEyMTAyMzIwMTM0N1oXDTE2MTAyMzIwMTM0N1owgZoxGjAYBgNVBAMTEUpVQU4gU09MSVMgR0FSQ0lBMRowGAYDVQQpExFKVUFOIFNPTElTIEdBUkNJQTEaMBgGA1UEChMRSlVBTiBTT0xJUyBHQVJDSUExFjAUBgNVBC0TDVNPR0o3MDAzMDhBVDgxGzAZBgNVBAUTElNPR0o3MDAzMDhNREZSTk4wOTEPMA0GA1UECxMGSnVhcmV6MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbC4WnVlfFBg53ed2T2Kolp5uAt21IJQtnLICDeW+cMDhBkVfqRax9Wr0wsB2tP/8SlVjv/zUFYi25atU1gJBw3EPsyuEFoOnJ4i7mxgokEQmyVZJZuTwZ0tXrTgpuWT+oBUQhl/q1KFLgDOTiR4uLyq8izlAbfQ2DxC++RC+D+wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEAbbE/Cznc/xwwjpvbSPaEK3ugfn2LiaoOcRHr8iMcl234/zApa9ntwa9GBXQ5EZhuRBIfM02z0N5kLCCNg9BCNRUiWqR9/mcsiqLglJb+nD2jpVOoYZw/CDvdKj6wJMBwzqPaiI9V5e1yhbIReK8vJNpm4UiYCRTZjtmluctpM1fvuxPEeHuM66pS/wQHV4IhdiFTnUW5YoE7H5n8RR9XssUN6exOyOrgwdd6pIPMvtJO8YYuYPeGGdHRSvC24aO5YEPgXOJ/6xX0gW4j5lUdWtWDFGM+3bVUkMQTgBngLu05O56Xj37JFi26Z2iZpYOXSDd/5rnqs3ktksD/olAF5g==</X509Certificate></X509Data></KeyInfo></Signature>
Ok entonces formo mi string siguiendo la estructura solicitada, me queda como se solicita, sin embargo su web service me devuelve:
<Cancelacion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RfcEmisor="GEC080610Q86" Fecha="2013-11-28T12:51:37" xmlns="http://cancelacfd.sat.gob.mx"><Folios><UUID>00000000-0000-0000-0000-000000000000 </UUID><UUIDEstatus> </UUIDEstatus><UUIDdescripcion>No se pudo cargar el Certificado </UUIDdescripcion><UUIDfecha>2013-11-28T12:51:37 </UUIDfecha></Folios><Signature>:no-signature</Signature></Cancelacion>
Ok hablo con soporte y me dicen que el detalle está en la generación del certificado pero pss no me especifican como crearlo , entonces alguien me podría apoyar con esto? Actualmente lo hago de esta manera:
System.Security.Cryptography.X509Certificates.X509Certificate2 cert = new System.Security.Cryptography.X509Certificates.X509Certificate2(pfx, pfxPwd, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.MachineKeySet);
pfx=mi pfx en bytes
pfxPwd=mi pwd de mi pfx
SIn más por el momento quedo a la espera de un alma caritativa
<s:Envelope><s:Body><CancelaCFD><Cancelacion>
<Folios><UUID>1111C564-F912-44C8-B16F-086A500E83E1</UUID></Folios>
<Folios><UUID>2222C55F-6783-4AB7-B26A-E42E9469FA7F</UUID></Folios>
Aquí va el XML Firmado </Cancelacion>
</CancelaCFD>
</s:Body>
</s:Envelope>
Y en el xml firmado:
<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=""><Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /></Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" ... 1WFrx9F+A= </DigestValue></Reference></SignedInfo><SignatureValue>MlrVpIyPPdv93WEALlBDma5evI3wYJyGjqUbqT9HE6KbkiGJK3uadeH4WPaO3jzimSLr5I4HwYWxVPCnLOTxC3K6NkkuJIYkJUvychA2QScrxaKhQTvKZCnL/DgJCeqyAUWb9h6lH/FihmemTnFKVuFrvFu4gtFZLqoMgzZG1X4=</SignatureValue><KeyInfo><X509Data><X509IssuerSerial>
<X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: Araceli Gandara Bautista, L=Coyoacán, S=Distrito Federal, C=MX, PostalCode=06300, STREET="Av. Hidalgo 77, Col. Guerrero", E=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 depruebas</X509IssuerName><X509SerialNumber>286524172099382162235533054529634765881054737717
</X509SerialNumber></X509IssuerSerial><X509Certificate>MIIEIDCCAwigAwIBAgIUMjAwMDEwMDAwMDAyMDAwMDAyNTUwDQYJKoZIhvcNAQEFBQAwggFcMRowGAYDVQQDDBFBLkMuIDIgZGUgcHJ1ZWJhczEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMTQwMgYJKoZIhvcNAQkCDCVSZXNwb25zYWJsZTogQXJhY2VsaSBHYW5kYXJhIEJhdXRpc3RhMB4XDTEyMTAyMzIwMTM0N1oXDTE2MTAyMzIwMTM0N1owgZoxGjAYBgNVBAMTEUpVQU4gU09MSVMgR0FSQ0lBMRowGAYDVQQpExFKVUFOIFNPTElTIEdBUkNJQTEaMBgGA1UEChMRSlVBTiBTT0xJUyBHQVJDSUExFjAUBgNVBC0TDVNPR0o3MDAzMDhBVDgxGzAZBgNVBAUTElNPR0o3MDAzMDhNREZSTk4wOTEPMA0GA1UECxMGSnVhcmV6MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbC4WnVlfFBg53ed2T2Kolp5uAt21IJQtnLICDeW+cMDhBkVfqRax9Wr0wsB2tP/8SlVjv/zUFYi25atU1gJBw3EPsyuEFoOnJ4i7mxgokEQmyVZJZuTwZ0tXrTgpuWT+oBUQhl/q1KFLgDOTiR4uLyq8izlAbfQ2DxC++RC+D+wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEAbbE/Cznc/xwwjpvbSPaEK3ugfn2LiaoOcRHr8iMcl234/zApa9ntwa9GBXQ5EZhuRBIfM02z0N5kLCCNg9BCNRUiWqR9/mcsiqLglJb+nD2jpVOoYZw/CDvdKj6wJMBwzqPaiI9V5e1yhbIReK8vJNpm4UiYCRTZjtmluctpM1fvuxPEeHuM66pS/wQHV4IhdiFTnUW5YoE7H5n8RR9XssUN6exOyOrgwdd6pIPMvtJO8YYuYPeGGdHRSvC24aO5YEPgXOJ/6xX0gW4j5lUdWtWDFGM+3bVUkMQTgBngLu05O56Xj37JFi26Z2iZpYOXSDd/5rnqs3ktksD/olAF5g==</X509Certificate></X509Data></KeyInfo></Signature>
Ok entonces formo mi string siguiendo la estructura solicitada, me queda como se solicita, sin embargo su web service me devuelve:
<Cancelacion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RfcEmisor="GEC080610Q86" Fecha="2013-11-28T12:51:37" xmlns="http://cancelacfd.sat.gob.mx"><Folios><UUID>00000000-0000-0000-0000-000000000000 </UUID><UUIDEstatus> </UUIDEstatus><UUIDdescripcion>No se pudo cargar el Certificado </UUIDdescripcion><UUIDfecha>2013-11-28T12:51:37 </UUIDfecha></Folios><Signature>:no-signature</Signature></Cancelacion>
Ok hablo con soporte y me dicen que el detalle está en la generación del certificado pero pss no me especifican como crearlo , entonces alguien me podría apoyar con esto? Actualmente lo hago de esta manera:
System.Security.Cryptography.X509Certificates.X509Certificate2 cert = new System.Security.Cryptography.X509Certificates.X509Certificate2(pfx, pfxPwd, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.MachineKeySet);
pfx=mi pfx en bytes
pfxPwd=mi pwd de mi pfx
SIn más por el momento quedo a la espera de un alma caritativa
