Duda de Como Autentificarse en los WebService de Descarga de los XML

Todo lo que no cabe en los demas foros........
Axterix
Mensajes: 9
Registrado: Vie Feb 01, 2019 12:59 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Axterix » Vie Feb 01, 2019 1:05 pm

Hola soy nuevo en todo esto del CFDI. Hice la siguiente petición a la solicitud de Descarga:

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:des="http://DescargaMasivaTerceros.sat.gob.mx" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
   <s:Header />
   <s:Body>
      <des:SolicitaDescarga>
         <des:solicitud FechaFinal="2018-10-20T00:00:00" FechaInicial="2018-10-10T00:00:00" RfcEmisor="AUAC4601138F9" RfcReceptor="AUAC4601138F9" RfcSolicitante="AUAC4601138F9" TipoSolicitud="CFDI">
            <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
               <SignedInfo>
                  <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                  <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                  <Reference URI="#_0">
                     <Transforms>
                        <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                     </Transforms>
                     <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                     <DigestValue>GWJhbnAIBv0dny/4CY++AC4LPnY=</DigestValue>
                  </Reference>
               </SignedInfo>
               <SignatureValue>WrH2ljudYMB/f88LHIgv5q5qNI2CrYPs5Xx4SVuSj67/iVR4AKBoN5sQSXaqmvbMds1jrx+NqmS2z9IYWmMXzLkz4rhOrZco+5wdRAlZfsnCPgmgml44i5K1sMs+yx5eldHOUMXIpofRYUidA7e1o9BcOVVlUwjD4f7gibqD5GSsV0e1mtL3O6oM7lEiRFDsc0eq3Ul5fHWxcxtzf93W2KUsIILT5iymLiebzqAZJcq4LpEXV9PIPNcmCTdbC1/QSrOb4Or7PkOa34Adavs33yGnmSLud9EHUrc0ZwyydklkMZmcGwAva2a5kzE0bvvyWODHHM8pxPX0ztsMVhfQHA==</SignatureValue>
               <KeyInfo>
                  <X509Data>
                     <X509IssuerSerial>
                        <X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: ACDMA, OID.2.5.4.45=SAT970701NN3, L=Coyoacán, ST=Distrito Federal, C=MX, OID.2.5.4.17=06300, STREET="Av. Hidalgo 77, Col. Guerrero", EMAILADDRESS=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 de pruebas(4096)</X509IssuerName>
                        <X509SerialNumber>286524172099382162235533054548081509963388106800</X509SerialNumber>
                     </X509IssuerSerial>
                     <X509Certificate>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</X509Certificate>
                  </X509Data>
               </KeyInfo>
            </Signature>
         </des:solicitud>
      </des:SolicitaDescarga>
   </s:Body>
</s:Envelope>

Y me arroja el siguiente mensaje en mi respuesta:

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <SolicitaDescargaResponse xmlns="http://DescargaMasivaTerceros.sat.gob.mx">
         <SolicitaDescargaResult CodEstatus="305" Mensaje="Certificado Inválido" />
      </SolicitaDescargaResponse>
   </s:Body>
</s:Envelope>

¿Qué estoy haciendo mal que la solicitud de descarga me manda este mensaje? Actualmente lo estoy trabajando en Java e hice las encriptaciones pertinentes de SHA1 a Base64 de signature y digest value, espero puedan ayudarme. Saludos :mrgreen: .

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Dado » Vie Feb 01, 2019 1:19 pm

Checa este mensaje, acerca de usar la e.Fiel y no el CSD
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

Axterix
Mensajes: 9
Registrado: Vie Feb 01, 2019 12:59 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Axterix » Vie Feb 01, 2019 1:30 pm

Hola dado muchas gracias, efectivamente eso estoy usando el .cer y el .key para firmar el xml, pero aún así me arroja ese mensaje. Saludos.

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Dado » Vie Feb 01, 2019 2:05 pm

Si, estas usando el Cer y el Key, pero cual de los dos ?

El de la e.Firma (FIEL) ? o la del CSD?

---- 10 minutos mas tarde.......

OK, ya revise tu certificado, efectivamente es una FIEL, PERO ES DE PRUEBA, en este asunto no hay pruebas, debes usar uno REAL
Adjuntos
certificado.png
certificado.png (9.98 KiB) Visto 11351 veces
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

Saul_RS
Mensajes: 3
Registrado: Vie Feb 01, 2019 2:45 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Saul_RS » Vie Feb 01, 2019 4:57 pm

mo.rodrigo escribió:Buenas Tardes.
Estoy realizando el consumo del "WebService" en php, pero no me deja me sale error "An error occurred when verifying security for the message.", intente copiar todo al pie de la letra., inclusive obtener el valor canonizado que ponen de ejemplo con las fechas que ponen de ejemplo ( se hace de la misma manera que para cancelar un cfdi)


Excelente aporte, hice solo unas pocas modificaciones pero la parte de consumir el servicio no me devuelve ningún valor. Si alguien pudiera apoyarme en el uso de CURL se los agradecería, aquí mi código

Código: Seleccionar todo

<?php

/* Obtener fecha con el formato requerido y sumar 5 Horas para coincidir con el horario GMT */
$hora_actual = new DateTime("America/Mexico_City");
$hora_actual->add(new DateInterval('PT5H'));
$actual = $hora_actual->format('Y-m-d\TH:i:s');

/* De la fecha obtenida sumar 5 minutos */
$hora_actual2 = new DateTime($actual);
$hora_actual2->add(new DateInterval('PT5M'));
$expira = $hora_actual2->format('Y-m-d\TH:i:s');

/* Se agregan los milisegundos y la Z para cumplir con el formato */
$actual.= '.000Z';
$expira.= '.000Z';

/* Se arma el nodo Timestamp sustituyendo los valores */
$time = '<u:Timestamp xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" u:Id="_0"><u:Created>' . $actual . '</u:Created><u:Expires>' . $expira . '</u:Expires></u:Timestamp>';

/* Aplicar el HASH y codificar en Base64 el nodo Timestamp */
$dom = new DOMDocument();
$dom->loadXML($time);
$canonicalized = $dom->C14N();
$digest = base64_encode(pack("H*", sha1($canonicalized)));

/* Firma con la Llave privada y codificar en Base64 el Digest del nodo Timestamp */
$path_key = 'D:/key_pruebas.pem';
$cadenafirmada = "";
$fp = fopen($path_key, "r");
$priv_key = fread($fp, filesize($path_key));
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);
openssl_sign($digest, $cadenafirmada, $pkeyid, OPENSSL_ALGO_SHA1);
$sello = base64_encode($cadenafirmada);
openssl_free_key($pkeyid);

/* Leer Certificado */
$path_cert = 'D:/cert_pruebas.pem';
$fp = fopen($path_cert, "r");
$public_key = fread($fp, filesize($path_cert));
fclose($fp);
$certificado = substr($public_key, 27, -27);

/* Genrerar UUID */
$uuid = "uuid-".genUuid()."-1";

/* Armar el REQUEST */
$autenticacion = '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><s:Header><o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><u:Timestamp u:Id="_0"><u:Created>' . $actual . '</u:Created><u:Expires>' . $expira . '</u:Expires></u:Timestamp><o:BinarySecurityToken u:Id="' . $uuid . '" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">' . $certificado . '</o:BinarySecurityToken><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI="#_0"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>' . $digest . '</DigestValue></Reference></SignedInfo><SignatureValue>' . $sello . '</SignatureValue><KeyInfo><o:SecurityTokenReference><o:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#' . $uuid . '"/></o:SecurityTokenReference></KeyInfo></Signature></o:Security></s:Header><s:Body><Autentica xmlns="http://DescargaMasivaTerceros.gob.mx"/></s:Body></s:Envelope>';

function genUuid() {
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
}

/* Agregar Headers */
$header = array('Content-type: text/xml;charset="utf-8"', 'SOAPAction: "http://DescargaMasivaTerceros.gob.mx/IAutenticacion/Autentica"');

/* Inicializar curl */
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, 'https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc');
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $autenticacion);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $header);
curl_setopt($soap_do, CURLOPT_FRESH_CONNECT, true);
$respuesta = curl_exec($soap_do);
curl_close($soap_do);
var_dump($respuesta);
die();

Axterix
Mensajes: 9
Registrado: Vie Feb 01, 2019 12:59 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Axterix » Mar Feb 05, 2019 8:58 am

Gracias de nuevo por la ayuda Dado, de hecho me da otro error al utilizar .cer y .key de mi fiel real.

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <SolicitaDescargaResponse xmlns="http://DescargaMasivaTerceros.sat.gob.mx">
         <SolicitaDescargaResult CodEstatus="301" Mensaje="XML Mal Formado" />
      </SolicitaDescargaResponse>
   </s:Body>
</s:Envelope>

Tengo otra duda. Este error me da a pesar de que en la parte del RFC ya tengo el de mi fiel, en los 3 campos: Solicitante, Emisor y Receptor. ¿Por qué me ocurre esto? :ugeek:

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Dado » Mar Feb 05, 2019 10:01 am

A mi me marco una vez ese error y fue porque habia puesto la fecha final menor a la fecha inicial, pero supongo que debe haber otros motivos que causen el mismo error

Mmmmh, leyendo nuevamente tu mensaje veo que pusiste el mismo RFC en los tres campos, yo creo que eso es motivo de error tambien, es como si estuvieras pidiendo que te envien las facturas que te haces a ti mismo, debes poner datos lo mas real posible
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

Axterix
Mensajes: 9
Registrado: Vie Feb 01, 2019 12:59 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Axterix » Mar Feb 05, 2019 12:41 pm

En efecto Dado, uno de los campos estaba duplicado. Ahora tengo otra duda. Ya llegue a la tercera parte de la verificación, pero no me da idspaquetes. ¿Es normal?,¿es por el servicio de que no tengo nada a descargar? o ¿qué causa sería?

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <VerificaSolicitudDescargaResponse xmlns="http://DescargaMasivaTerceros.sat.gob.mx">
         <VerificaSolicitudDescargaResult CodEstatus="5000" EstadoSolicitud="5" CodigoEstadoSolicitud="5005" NumeroCFDIs="0" Mensaje="Solicitud Aceptada" />
      </VerificaSolicitudDescargaResponse>
   </s:Body>
</s:Envelope>

Saludos :evil: .

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Dado » Mar Feb 05, 2019 12:50 pm

Ahora tienes que esperar, puede ser desde medio dia hasta 72 horas o mas

Checa la "segunda parte" aqui
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

Axterix
Mensajes: 9
Registrado: Vie Feb 01, 2019 12:59 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Axterix » Mar Feb 05, 2019 12:56 pm

¿Cómo me entero si ya están listos los paquetes? ¿Tengo que volver a verificar la solicitud con la idsolicitud utilizada? Saludos :twisted: .


Volver a “Otros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados