Página 3 de 7
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Jue Feb 13, 2014 2:13 pm
por jhon_key
Antes que nada saludos a todos, esta va a ser mi primer contribución y espero poder ayudarlos y así regresar un poco de lo que me han dado.
Dunmord, la forma de hacerlo en PHP en la siguiente:
Código: Seleccionar todo
try {
$client = new SoapClient("https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl");
} catch (Exception $e) {
echo 'Excepción capturada: ', $e->getMessage(), "\n";
}
$cadena="re=BEN9501023I0&rr=SARM8209281F1&tt=440.000000&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075";
$param = array(
'expresionImpresa'=>$cadena
);
$valores = $client->Consulta($param);
print_r($valores);
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Vie Feb 14, 2014 9:51 am
por s3cr3to
mauricio escribió:s3cr3to escribió:Quizás en Arch me vaya mejor.[/i]
En Arch va de lujo, mi equipo de trabajo usa Arch, solo Arch
Ok, ya conseguí que funcione en Ubuntu (sin virtualenv), y en Arch (con virtualenv)
Prerréquisitos:
+ httplib2; en Arch use el fork (
https://bitbucket.org/jaraco/httplib2), no recuerdo cuando lo instalé en ubuntu, pero quizas utilice pip en aquel entonces:
+ pysimplesoap; descargar el adjunto de @mauricio o directamente de git (
https://github.com/pysimplesoap/pysimplesoap).
> descomprimir y copiar la subcarpeta "pysimplesoap" en "dist-packages" de la versión de python a utilizar y cambiar los permisos, por ejemplo:
Código: Seleccionar todo
$ sudo cp ./pysimplesoap/ /usr/lib/python2.7/dist-packages/ -r
$ sudo chmod 0755 /usr/lib/python2.7/dist-packages/pysimplesoap
Al código que proporciono @mauricio lo nombre "wssatvalida.py", y así lo comprobé:
Código: Seleccionar todo
$ python wssatvalida.py AAV8705296P4 XAXX010101000 855.80 18270533-399E-4E67-A5AD-26EC5F3180F7
En Arch, use un entorno virtual ("env1ws"), copie el código de ambos paquetes (httplib, pysimplesoap) en: "/home/s3cr3to/virt/env1ws/lib/python3.3/site-packages/"
Y claro, funcionó "de lujo"
Saludos!
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Vie Feb 14, 2014 6:54 pm
por Dunmord
@jhon_key
¡Muchas gracias, funcionó de pelos!
Re: (BINGO!!!) Web Service para Validar del SAT
Publicado: Sab Feb 15, 2014 3:21 am
por danrodriguez
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Mar Feb 18, 2014 10:43 am
por jhon_key
@Dunmord
De nada, y por cierto se me olvido comentarte y creo que los demás también lo pueden necesitar, sustituyan el caracter & por & antes de mandar la validación, de lo contrario les enviara que el CFDI no fue encontrado, no se si lo mismo aplique para los demás caracteres especiales (> < ' ") ya que no hemos emitido facturas con RFC's que los contengan, de hecho no se si existan RFC con ellos, en fin, como si hay RFC con & no lo olviden.
Para PHP el codigo es el siguiente:
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Mar Feb 18, 2014 3:42 pm
por RickAlanis
@john_key:
El cDATA precisamente se usa para que los datos dentro de su contexto no se interpreten como comandos u otra cosa. Los únicos caracteres que no se permiten dentro de un cDATA son precisamente "]]>" porque es la secuencia de cierre del cDATA, lo que además hace que no puedan anidarse.
De hecho, la cadena de caracteres que envío al Web Service del SAT dentro del cDATA es precisamente la misma que envío para generar el QR CODE. No cambio nada. ¡Y funciona!
¡Saludos!
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Mar Feb 18, 2014 3:55 pm
por Dado
Mira, todos los dias se aprende algo........
Lo siguiente FUNCIONA MUY BIEN, DE LAS DOS FORMAS, VEN LA DIFERENCIA??
CDATA indica al XML Parser que NO interprete la informacion, porque son datos y debe llevar solo el "&"
Si lo mandamos SIN CDATA entonces tenemos que usar "&"
<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="
http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:Consulta>
<tem:expresionImpresa>
<![CDATA[?re=BEN9501023I0
&rr=SARM8209281F1
&tt=440.000000
&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075
]]></tem:expresionImpresa>
</tem:Consulta>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="
http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:Consulta>
<tem:expresionImpresa>
?re=BEN9501023I0
&rr=SARM8209281F1
&tt=440.000000
&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075</tem:expresionImpresa>
</tem:Consulta>
</soapenv:Body>
</soapenv:Envelope>
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Mié Feb 19, 2014 7:10 am
por jhon_key
@RickAlanis
Muchas gracias, DADO tiene razón, a diario se aprende algo nuevo. Lo que si, es que jamas pude hacer que funcionara con CDATA y mira que lo trate de muchas formas, a lo mejor es por que el parámetro lo estoy usando como texto y no como XML, la verdad no se, pero gracias.
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Mié Feb 19, 2014 9:12 am
por RickAlanis
Qué bueno que pude aportar un granito de arena.
Precisamente entiendo que esta es la función del foro y debo reconocer que he aprendido mucho consultando y, de vez en cuando, cooperando, que es la forma en que todos aprendemos y crecemos.
Definitivamente agradezco a DADO y, por supuesto, a todos los foristas. Sin este foro hubiera tardado mucho más en desarrollar el CFD y CFDi.
¡Saludos a la peña! (Como dicen en Hezpaña, joder!)
Re: (Nuevo) Web Service para Validar del SAT
Publicado: Sab Feb 22, 2014 12:23 pm
por s3cr3to
Buen día.
Este servicio de verificación es uno de los mas simples que el SAT a proporcionado (GaD!)
Bueno, acabo de hacer una pequeña aplicación en Delphi7 (para aprender más de XML y web services).
Dejo aquí el código del proyecto, las únicas restricciones: dejar mis notas y no abusar del servicio de verificación (esta última restricción es del sat).
Una petición adicional: Ayuda, enseñenme a detectar, seleccionar y procesar mas de un complemento en el CFDI con Delphi, y así mejorar esta aplicación.
Como aún no domino bien XML+Delphi+Python, mi aplicación truena cuando trae mas de un complemento, es decir, si trae solo el complemento de timbre logro leer el uuid y todo bien, pero si ademas trae el complemento de nomina en este caso truena bien lindo (bueno no tanto).
Notas de la aplicación:
- Se pueden capturar manualmente datos para validar un cfdi.
- Puede cargar un XML pulsando el botón correspondiente.
- Se pueden seleccionar desde el explorador de archivos "n" archivos XML arrastrar y dejar caer en la aplicación para verificar todos en montón. Nota, por default en este caso hace una pausa de 3 segundos, para evitar atragantar el servicio de verificación, se puede reducir a 1 segundo en estos casos o incrementar hasta 10 segundos.
- Detecta si el XML es diferente no es version 3.2.
- Al iniciar carga uno de dos ejemplos, para efectos de "verificar" el servicio, pueden cambiarse en código para validar un propio.
- Finalmente: "ahora con colores más feos" (it's a feature).
Saludos y gracias foro!