
DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Duda de Como Autentificarse en los WebService de Descarga de los XML
-
- Mensajes: 1
- Registrado: Sab Dic 29, 2018 8:19 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
Muchas gracias por su apoyo.
Desarrolle un cliente en Python que estoy utilizando en múltiples proyectos ya esta bien probado, espero les sirva lo pueden consumir desde Python o desde otro lenguaje. O bien utilizar el código para implementarlo en otros lenguajes.
https://github.com/luisiturrios/python-cfdiclient
Saludos.
Desarrolle un cliente en Python que estoy utilizando en múltiples proyectos ya esta bien probado, espero les sirva lo pueden consumir desde Python o desde otro lenguaje. O bien utilizar el código para implementarlo en otros lenguajes.
https://github.com/luisiturrios/python-cfdiclient
Saludos.
-
- Mensajes: 40
- Registrado: Vie Feb 04, 2011 9:10 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
magnífico tu aporte iturrios3063, gracias por compartirlo
saludos
saludos
-
- Mensajes: 47
- Registrado: Mar Abr 04, 2017 12:15 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
Buenas tardes a todos, disculpen si al mandar la solicitud de descarga masiva de x ml ya por ultimo nos da un estado de solicitud: "solicitud aceptada" hasta cuanto tiempo hay que esperar para que se comience esa descarga.
gracias.
gracias.
-
- Mensajes: 118
- Registrado: Lun Dic 16, 2013 5:55 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
Sientate y toma una taza de café, no se si sea por estar recien implementado el webservice o si así va a ser siempre
, pero tarda, así sean 20, 100, 1000 cfdi, tarda al menos 3 dias, aunque tengo dias sin hacer una petición

-
- Mensajes: 47
- Registrado: Mar Abr 04, 2017 12:15 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
Saludos a que buena onda, pues si lo tomamos con concencia, si tarda y es que anuncia que se puede descargar esto por web server pero no sabemos que puede pasar en el inter, pero si consulto con algun asesor del sat parece que estoy en le desierto de la nada, por que no te dicen mas a detalle.
Por lo mientras espere, ya que
Por lo mientras espere, ya que
-
- Mensajes: 51
- Registrado: Mié Ago 08, 2018 1:30 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
iturrios3063 escribió:Muchas gracias por su apoyo.
Desarrolle un cliente en Python que estoy utilizando en múltiples proyectos ya esta bien probado, espero les sirva lo pueden consumir desde Python o desde otro lenguaje. O bien utilizar el código para implementarlo en otros lenguajes.
https://github.com/luisiturrios/python-cfdiclient
Saludos.
Margnifico aporte. una Pregunta, el final cuando descargas y te devuelve un Base64, imagino que es un ZIP descompuesto en Base64 no?
y si es asi, como lo conviertes a ZIP?
Saludos
-
- Mensajes: 51
- Registrado: Mié Ago 08, 2018 1:30 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
Ya vi como convertir la salida codificada de Base64 en Python:
code = "salidabase64del webserviceaqui"
decoded_string = base64.b64decode(code)
with open("cfdis.zip", "wb") as cfdis_file2:
cfdis_file2.write(decoded_string);
Me he dado cuenta que con dos veces que hagas una misma consulta sobre un mismo periodo ya no podras realizar esa consulta nunca mas.
sale Se han agotado las solicitudes de por vida, pero ¿Que pasa si por error no anotaste el numero de ID y token o si ya expiró y deseas realizar esa nueva consulta?.
por otra parte muchas veces sale al correr el webservice de verificacion, hay veces que si te devuelve en el acto "La GUIA O ID de paquetes"
pero muchas veces sale paquetes': []
code = "salidabase64del webserviceaqui"
decoded_string = base64.b64decode(code)
with open("cfdis.zip", "wb") as cfdis_file2:
cfdis_file2.write(decoded_string);
Me he dado cuenta que con dos veces que hagas una misma consulta sobre un mismo periodo ya no podras realizar esa consulta nunca mas.
sale Se han agotado las solicitudes de por vida, pero ¿Que pasa si por error no anotaste el numero de ID y token o si ya expiró y deseas realizar esa nueva consulta?.
por otra parte muchas veces sale al correr el webservice de verificacion, hay veces que si te devuelve en el acto "La GUIA O ID de paquetes"
pero muchas veces sale paquetes': []
-
- Mensajes: 118
- Registrado: Lun Dic 16, 2013 5:55 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
Yo hice prueba sólo modificando la consulta por segundos de diferencia (incluso deberia funcionar con un segundo de diferencia)estebanchambas escribió: Me he dado cuenta que con dos veces que hagas una misma consulta sobre un mismo periodo ya no podras realizar esa consulta nunca mas.
sale Se han agotado las solicitudes de por vida, pero ¿Que pasa si por error no anotaste el numero de ID y token o si ya expiró y deseas realizar esa nueva consulta?.
-
- Mensajes: 5
- Registrado: Vie Jun 22, 2012 8:55 am
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
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), si alguien le sirve mi codigo adelante
Anexo mi codigo:
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), si alguien le sirve mi codigo adelante
Anexo mi codigo:
Código: Seleccionar todo
<?php
/*Obtengo el tiempo y le sumo las 5 horas que menciona dado*/
$time = new DateTime("America/Mexico_City");
$time->add(new DateInterval('PT5H'));
$actual = $time->format('Y-m-d\TH:i:s');
$time2 = new DateTime($actual);
/* del tiempo obtenido le sumo 5 minutos*/
$time2->add(new DateInterval('PT5M'));
$stamp = $time2->format('Y-m-d\TH:i:s');
/*Le agregamos los milisegundos y la z*/
$actual.='.000Z';
$stamp.='.000Z';
/*mensaje a canonizar*/
$entrada='<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>'.$stamp.'</u:Expires></u:Timestamp>';
$dom = new DOMDocument();
$dom->loadXML($entrada);
$canonicalized = $dom->C14N();
$digest = base64_encode(pack("H*", sha1($canonicalized)));
/*cadena a sellar*/
$cadena = '<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><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>';
/*guardado en archivo para sellar con open ssl*/
$RutaCadena = '/var/www/sitios/webdev/web/storage/prueba/CMA/cadena.txt';
$fp = fopen($RutaCadena, 'w+');
fwrite($fp, $cadena);
fclose($fp);
/*sellando con la key en formato pem*/
$sello = shell_exec('openssl dgst -sha1 -binary -sign /var/www/sitios/webdev/web/storage/prueba/CMA/Claveprivada_FIEL_CMA031224TX5_20171006_083942.key.pem'." $RutaCadena | openssl enc -base64 -A ");
/*obteniendo el certificado para anexar al sobre*/
$archivo='/var/www/sitios/webdev/web/storage/prueba/CMA/CMA031224TX5_00001000000407730196.cer';
$gestor = fopen($archivo, "r");
$contenido = fread($gestor, filesize($archivo));
$certificado=base64_encode($contenido);
/*sobre a enviar*/
$otro='<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>'.$stamp.'</u:Expires>
</u:Timestamp>
<o:BinarySecurityToken u:Id="uuid-7de252ad-a383-458d-a467-8aadb076df4f-1" 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-7de252ad-a383-458d-a467-8aadb076df4f-1"/>
</o:SecurityTokenReference>
</KeyInfo>
</Signature>
</o:Security>
</s:Header>
<s:Body>
<Autentica xmlns="http://DescargaMasivaTerceros.gob.mx"/>
</s:Body>
</s:Envelope>';
/*agregando los headers que pone dado*/
$header = array('Content-type: text/xml;charset="utf-8"',
'SOAPAction: "http://DescargaMasivaTerceros.gob.mx/IAutenticacion/Autentica"');
/*inicializando 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, $otro);
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();
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
En horario de verano debes restar 5 horas
Ahorita que estamos en el horario normal, debes restar SEIS horas, y eso puede ser el motivo del error de seguridad que estas teniendo
Esto ademas significa que tienes que estar checando si estas en horario normal o en horario de verano, en mensajes pasados publique codigo en Delphi para solventar esto
Ahorita que estamos en el horario normal, debes restar SEIS horas, y eso puede ser el motivo del error de seguridad que estas teniendo
Esto ademas significa que tienes que estar checando si estas en horario normal o en horario de verano, en mensajes pasados publique codigo en Delphi para solventar esto
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!