Imagen

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


.

(Nuevo) Web Service para Validar del SAT

Cualquier cambio que haga el SAT referente a la F.E. sera comentada aqui
Cerrado
RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por RickAlanis »

Hola, buen día.

¿Ha tenido alguien problemas con el Web Service para validar del SAT?

El validador me está regresando un error que dice:
N - 601: La expresión impresa proporcionada no es válida.
La expresión que estoy enviando es:

Código: Seleccionar todo

?re=LAEH621106H3A&rr=PTM070508HH5&tt=0000004976.400000&id=B8D987B1-DC26-48C2-9EA1-DFEA8B2BBAC9
y al menos los clientes que han validado el lunes sí tenían una respuesta correcta, pero parece ser que ayer inició este problema.
¿Sabe alguien algo?
Les agradeceré los aportes
Saludos
s3cr3to
Mensajes: 502
Registrado: Mar Dic 28, 2010 1:12 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por s3cr3to »

Me aparece como vigente:
validacion1.png
validacion1.png (36.37 KiB) Visto 17017 veces
Pero copiando todo el código que subiste me llega con espacios al inicio, quizá eso provoca el error en la consulta:

Código: Seleccionar todo

"    ?re=LAEH621106H3A&rr=PTM070508HH5&tt=0000004976.400000&id=B8D987B1-DC26-48C2-9EA1-DFEA8B2BBAC9"
RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por RickAlanis »

Gracias, s3r3to.

No, el problema no está en esos espacios.
Cuando los copiaste, tal vez se fueron de más. pero en mi comentario original va sin espacios.

La pregunta a tu respuesta sería:
¿Tomaste cada dao y lo introdujiste en tus campos y luego construyes tú la cadena para consultar en el web service del SAT?

De ser así, supongo que tú construyes esa cadena de caracteres.
¿La podrías proporcionar, para comparar?

El sobre que mando al web service contiene esto:

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Consulta xmlns="http://tempuri.org/">

 <expresionImpresa>
<![CDATA[?re=LAEH621106H3A&rr=PTM070508HH5&tt=0000004976.400000&id=B8D987B1-DC26-48C2-9EA1-DFEA8B2BBAC9]]></expresionImpresa>
</Consulta>
y lo que regresa el servicio es:

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ConsultaResponse xmlns="http://tempuri.org/">

  <ConsultaResult xmlns:a="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <a:CodigoEstatus>N - 601: La expresión impresa proporcionada no es válida.</a:CodigoEstatus>
    <a:Estado>No Encontrado</a:Estado>
  </ConsultaResult>

</ConsultaResponse>
Saludos
s3cr3to
Mensajes: 502
Registrado: Mar Dic 28, 2010 1:12 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por s3cr3to »

Creo que estas generando mal tu envio, revisa este link:
http://www.validacfd.com/phpbb3/viewtop ... ida#p26477
falta el "prefix" (tem:)

La aplicación la desarrolle en Delphi, y solo copié y pegué los datos que proporcionaste.
En este mimo tema mismo subí mi programa (supongo no lo han borrado) lo puedes buscar y probar, en código solo use esto:
Despues de crear la unidad del webservice, simplemente formo la cadena con la instruccion format:

Código: Seleccionar todo

iccs:= GetIConsultaCFDIService();
sData := format('re=%s&rr=%s&tt=%s&id=%s', [leEmisor.Text, leReceptor.Text, leMonto.Text, leUUID.Text]);
try
   vAcuse := iccs.Consulta(sData);
   if vAcuse.Estado = 'Vigente'
    then ShowIn(Valido)
    else ShowIn(Invalido);
   ...
Saludos
RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por RickAlanis »

Gracias por contestar.

El problema es que ya funcionaba.

De hecho, fue muy fácil hacerlo con las herramientas que tengo y funcionó a la primera.

Pero desde ayer no funciona, me marca el error que ya comenté. que la expresión impresa proporcionada no es válida.

El validador tiene funcionando al menos desde Febrero. No es algo que acabe yo de hacer.

Reitero la expresión que estoy enviando:
"?re=LAEH621106H3A&rr=PTM070508HH5&tt=0000004976.400000&id=B8D987B1-DC26-48C2-9EA1-DFEA8B2BBAC9"

El XML que va en el sobre de petición del WS lo genera el sistema de forma automática.
voldemortkein
Mensajes: 3
Registrado: Dom Sep 06, 2015 6:58 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por voldemortkein »

Una pregunta, soy algo ignorante en el tema.

Es lo mismo WSDL que WSC?. Lo pregunto porque veo que muchos clientes de SOAP usan WSDL para acceder a los webservices.
O no se si estoy mal.

Estoy usando un lenguaje de programación llamado XOJO, el cual es tipo BASIC. y aquí me permite acceder a métodos SOAP, y ponen un ejemplo. pero la dirección a la que acceden en el ejemplo de mi software acaba así: .asmx?WSDL
en vez de .svc Como el enlace que publicó Maltrak para validar UUID del SAT.



Saludos
RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por RickAlanis »

voldermortkein:

Los tipos de extensión ".asmx" los explican aquí, relacionados con Web Services.

WSC parece ser la manera corta para WSCDL, una iniciativa para descripción de coreografías de web services, que ha sido abandonada por el W3C. En Wikipedia hablan algo al respecto.

Saludos.
voldemortkein
Mensajes: 3
Registrado: Dom Sep 06, 2015 6:58 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por voldemortkein »

jhon_key escribió: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);
Perdon mi novatez, Este código lo copio y lo guardo en un archivo .php en mi Carpeta DocumentRoot, le pongo sus etiquetas PHP al inicio y al fin "<?php" y lo ejecuto?
Saludos
LuNaTk
Mensajes: 1
Registrado: Vie Feb 12, 2016 10:15 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por LuNaTk »

Secreto, tu codigo me sirvio, lo pude probar y funciona, sin embargo me da problemas al intentar validar varios cfdis consecutivos, uno despues de otro, no se si tu tengas ese problema, me gusto el hecho de que la consulta es rápida, pero lo tuve que cambiar mediante y consumirlo via post utilizando Indy solo que el resultado es un poco mas lento.
s3cr3to
Mensajes: 502
Registrado: Mar Dic 28, 2010 1:12 pm

Re: (Nuevo) Web Service para Validar del SAT

Mensaje por s3cr3to »

El servicio en ocasiones es Lento, al principio cuando inicio su operación era veloz.
En nuestra región hay cierto horario en el cual es díficil/imposible verificar algunos cientos de comprobantes.
Seguro ya somos muchos aprovechandolo y de ahi que se sature.
Nota: un factor que puede hacer lento el uso de este servicio seria que los DNS que usas esten mal. Usamos un DNS interno y rara vez sufrimos este problema.

No recuerdo si publique aquí el código pero hace poco detecte un error de mi parte donde hago la conexión al webservice durante cada verificación, y en mi aplicación que utilizo actualmente en produccción lo adapte para que lo haga al iniciar y en caso de caida del servicio que intente 3 veces a reconectarse y si falla que termine con un aviso, aquí pongo un extracto en caso de que te sirva:

Código: Seleccionar todo

procedure TForm1.doVerificacionParaTodos;
{ almacena en sVNC la verificacion del comprobante }
begin
  if vData.tipoNomina then
    sVNC:= doNominaVigente(vData.UUID)
  else
  begin
    if sUUID <> kUUIDFlag then
    begin
      if FflagInitICS then
      begin
        FflagInitICS:= False;
        iccs := GetIConsultaCFDIService();
      end;
      sVNC := doVerificacion;
    end
    else
      sVNC:= 'N';
  end;
  sVNCtmp:= sVNC;
end;


function TForm1.doVerificacion : string; //char;
var
  sData: WideString;
  cResult: string; //char;
  intentos: cardinal;
  ClaseCFD : integer;
  tmpEmisor, tmpReceptor : string;
begin
  
  // codigo cortado ....

    begin
      intentos := 1;
      while True do
      begin
        sData := format('re=%s&rr=%s&tt=%s&id=%s', [sEmisor, sReceptor, sMonto, sUUID]);
        try
          vAcuse := iccs.Consulta(sData);
          if vAcuse.Estado = 'Vigente' then
            cResult := 'V'
          else if vAcuse.Estado = 'Cancelado' then
            cResult := 'C'
          else
            cResult := 'N';
          break; // ouch!!
        except
          Info(format('%d - Error de conexión: %s', [sData]));

          inc(intentos);
          if intentos > 3 then
          begin
            iccs := GetIConsultaCFDIService(); // reconectarse
            cResult := 'X'; // Error
            inc(nError);
            Info('Hay errores en la conexión, se recomienda abortar este proceso e intentar despues.');
            cbStop.Checked := True;
            break; // ouch!!
          end;
          sleep(3000); // pausa de 3 segundos...
        end;
      end;
    end
    else
    begin
      // los recibos de nomina se revisan en el servidor de "..."
      // PERO en 2016 se espera un CFDi único para nominas
      if (sEmisor = kRFC) and (ClaseCFD = kCFDN) then
        cResult := doNominaVigente(vData.uuid)
      else
        cResult := 'V'; // falta procesar recibos de honorarios
    end;
  end
  else
  begin
    cResult := 'E';
  end;
  Result := cResult;
end;
Como esto fue vaporware la verdad ni comentarios completos tiene pero quizá de algo te sirva.
Cerrado