Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola a Todos. Ahora voy yo con una duda o problema por si le ha pasado a alguien.

Estomos desarrollando en delphi y a al hora de presentar mostramos todos los certificados disponibles en el equipo. En el equipo teníamos tres certificados, los cuales nos salian a la hora de obtenerlos. Uno de ellos estaba caducado y lo eliminamos del sistema, es decir ahora solo hay dos. Pero a la hora de obtener en delphi cuantos certificados hay me siguen saliendo tres, los dos que me quedan y uno en blanco.

A alguien le ha pasado esto o sabe por que es. La lista de certificados la estamos obteniendo de la siguiente forma.

Código Delphi [-]
   

function ObtenerCertificados(aList:TStringList):integer;
var
  hStore: HCERTSTORE;
  PrevContext, CurContext: PCERT_CONTEXT;
  cbSize: DWORD;
  sNombre: String;
begin
  aList.Clear;
  Result := 0;
  hStore := CertOpenSystemStore(0, PChar('MY'));
  if hStore <> nil then begin
     PrevContext := nil;
     CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
     while CurContext <> nil do begin
       sNombre := '';
       cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, nil, 0);
       if cbSize > 0 then
       begin
          SetLength(sNombre, cbSize-1);
          CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, PChar(sNombre), cbSize);
          aList.Add(sNombre);
       end;
       PrevContext := CurContext;
       CurContext  := CertEnumCertificatesInStore(hStore, PrevContext);
     end;
  end;
  result:=aList.count;
end;

Un Saludo.
Responder Con Cita
  #2  
Antiguo 29-03-2017
jacju jacju is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 8
Poder: 0
jacju Va por buen camino
Buenas a tod@s, lo primero felicitaros y agradeceros la creación de este tema, después de leerme todo y practicar algunos ejemplos
el resultado es que puedo enviar los ficheros que genero y los graba en la web pero al hacer la llamada:

result := GetsiiSOAP.SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

me devuelve este error:

El sistema no puede encontrar el archivo especificado. - URL: https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP

Lo curioso es que en facturas recibidas también me da error, pero si que las graba en la web

Estoy desarrollando en Delphi este sistema y necesito un poco de ayuda, gracias

Un Saludo.
Responder Con Cita
  #3  
Antiguo 29-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Cita:
Empezado por jacju Ver Mensaje
Buenas a tod@s, lo primero felicitaros y agradeceros la creación de este tema, después de leerme todo y practicar algunos ejemplos
el resultado es que puedo enviar los ficheros que genero y los graba en la web pero al hacer la llamada:

result := GetsiiSOAP.SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

me devuelve este error:

El sistema no puede encontrar el archivo especificado. - URL: https://www7.aeat.es/wlpl/SSII-FACT/...iiFactFEV1SOAP

Lo curioso es que en facturas recibidas también me da error, pero si que las graba en la web

Estoy desarrollando en Delphi este sistema y necesito un poco de ayuda, gracias

Un Saludo.
Mira que tengas bien definido esto.

defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
defSvc = 'siiService';
defPrt = 'SuministroFactEmitidasPruebas';
Responder Con Cita
  #4  
Antiguo 29-03-2017
jacju jacju is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 8
Poder: 0
jacju Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Mira que tengas bien definido esto.

defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
defSvc = 'siiService';
defPrt = 'SuministroFactEmitidasPruebas';

Gracias por contestar, pero tengo definido todo esto asi como lo pones tu, te tengo que decir que si lo hago con Delphi 10.2 el error es distinto, me dice
que no esperaba una cabecera txt/HTML y el código es el mismo en un sistema que en otro.

Lo mas curioso es que se quedan grabadas las facturas en la web del aeat y si subo el fichero XML manualmente desde la web que genera el HTTprio me lo acepta.

Creo que al final lo conseguiremos.
Responder Con Cita
  #5  
Antiguo 29-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
yo las facturas las envio así.

GetsiiSOAP(true, '', FSIIImprimir.soapeador).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

FSIIImprimir.soapeador es un objeto THTTPRIO que tengo en un formulario y donde tengo los eventos correspondientes
Responder Con Cita
  #6  
Antiguo 05-04-2017
joefrommalaka joefrommalaka is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
joefrommalaka Va por buen camino
Cita:
Empezado por jacju Ver Mensaje
Buenas a tod@s, lo primero felicitaros y agradeceros la creación de este tema, después de leerme todo y practicar algunos ejemplos
el resultado es que puedo enviar los ficheros que genero y los graba en la web pero al hacer la llamada:

result := GetsiiSOAP.SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

me devuelve este error:

El sistema no puede encontrar el archivo especificado. - URL: https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP

Lo curioso es que en facturas recibidas también me da error, pero si que las graba en la web

Estoy desarrollando en Delphi este sistema y necesito un poco de ayuda, gracias

Un Saludo.

Hola a todos. Antes de nada agradeceros a todos por la ayuda ofrecida que me ha sido de mucha utilidad.

jacju no se si solucionaste ya este problema, "El sistema no puede encontrar el archivo especificado. - URL: https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP", a mi también me estaba dando el mismo error y tras dar muchas vueltas al final me di cuenta que el mismo ejecutable con el mismo certificado en unas maquinas me funcionaba y en otras no. El problema es la versión de Internet Explorer, en mi caso por ejemplo en Internet Explorer 8 el certificado parece que no funciona correctamente, para solucionarlo debes tener instalado Internet Explorer 11.

Un saludo
Responder Con Cita
  #7  
Antiguo 05-04-2017
jacju jacju is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 8
Poder: 0
jacju Va por buen camino
Cita:
Empezado por joefrommalaka Ver Mensaje
Hola a todos. Antes de nada agradeceros a todos por la ayuda ofrecida que me ha sido de mucha utilidad.

jacju no se si solucionaste ya este problema, "El sistema no puede encontrar el archivo especificado. - URL: https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP", a mi también me estaba dando el mismo error y tras dar muchas vueltas al final me di cuenta que el mismo ejecutable con el mismo certificado en unas maquinas me funcionaba y en otras no. El problema es la versión de Internet Explorer, en mi caso por ejemplo en Internet Explorer 8 el certificado parece que no funciona correctamente, para solucionarlo debes tener instalado Internet Explorer 11.

Un saludo

Gracias por contestar, lo descubri ayer y estoy enviando y recibiendo todo sin problemas
Responder Con Cita
  #8  
Antiguo 05-07-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Cita:
Empezado por joefrommalaka Ver Mensaje
Hola a todos. Antes de nada agradeceros a todos por la ayuda ofrecida que me ha sido de mucha utilidad.

jacju no se si solucionaste ya este problema, "El sistema no puede encontrar el archivo especificado. - URL: https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP", a mi también me estaba dando el mismo error y tras dar muchas vueltas al final me di cuenta que el mismo ejecutable con el mismo certificado en unas maquinas me funcionaba y en otras no. El problema es la versión de Internet Explorer, en mi caso por ejemplo en Internet Explorer 8 el certificado parece que no funciona correctamente, para solucionarlo debes tener instalado Internet Explorer 11.

Un saludo
Muchas gracias por el aporte porque me he encontrado con la misma situación.

Entonces, ¿entiendo que no se pueden realizar envíos al SII con un Windows XP, ya que no se pueden instalar versiones superiores a Explorer 8?
Responder Con Cita
  #9  
Antiguo 05-07-2017
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Buenos días,
¿Alguien sabe que es el campo <NumRegistroAcuerdoFacturacion> de las factura emitidas y recibidas? En la documentación pone que es
Este campo será el número de registro obtenido al enviar el acuerdo de facturación correspondiente. Pero la verdad es que no sé lo que es, ni para que se usa. Sé que es un campo opcional, pero me gustaría conocer para que se usa, no sea que lo este haciendo mal.
Saludos a tod@s.
Responder Con Cita
  #10  
Antiguo 05-07-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 112
Poder: 8
seccion_31 Va por buen camino
Por si a alguien le sirve:

Si os da error en el "soporte de canal seguro".

Aseguraros que la fecha del sistema es correcta. (hasta ahí, ok).

Si habéis cambiado la fecha, y trabajado con el PC (mi caso), no me preguntéis porque, pero "creo" que el certificado puede estropearse. En mi caso, lo he tenido que quitar y vuelvo a importar. Después de eso ha vuelto a funcionar correctamente.

Saludos !
Responder Con Cita
  #11  
Antiguo 05-07-2017
manelb manelb is online now
Miembro
 
Registrado: mar 2017
Posts: 281
Poder: 8
manelb Va por buen camino
Cita:
Empezado por elcharlie Ver Mensaje
Buenos días,
¿Alguien sabe que es el campo <NumRegistroAcuerdoFacturacion> de las factura emitidas y recibidas? En la documentación pone que es
Este campo será el número de registro obtenido al enviar el acuerdo de facturación correspondiente. Pero la verdad es que no sé lo que es, ni para que se usa. Sé que es un campo opcional, pero me gustaría conocer para que se usa, no sea que lo este haciendo mal.
Saludos a tod@s.
Podría estar relacionado con este punto de las preguntas frecuentes.

2.40. ¿Cómo debe suministrarse la información al amparo de una autorización de
simplificación en materia de facturación o de sistemas de registro
autorizados de acuerdo con lo previsto en el artículo 62.5 RD 1624/1992 (RIVA)?
Responder Con Cita
  #12  
Antiguo 05-07-2017
pesadillator pesadillator is offline
Registrado
NULL
 
Registrado: abr 2017
Posts: 5
Poder: 0
pesadillator Va por buen camino
Me funcionaba todo perfecto en prueba, pero al pasar a produccion me da el error 4100: Error en la cabecera. El contenido del campo IDVersionSii no es válido.

he revisado el codigo del wsdl y pone: VersionSiiType = (_0_7);

pero me he descargado de la pagina el ultimo wsdl, y he generado la nueva unidad, que puedo hacer?

Gracias anticipadas a todos, me estais salvando la vida
Responder Con Cita
  #13  
Antiguo 06-07-2017
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Cita:
Empezado por manelb Ver Mensaje
Podría estar relacionado con este punto de las preguntas frecuentes.

2.40. ¿Cómo debe suministrarse la información al amparo de una autorización de
simplificación en materia de facturación o de sistemas de registro
autorizados de acuerdo con lo previsto en el artículo 62.5 RD 1624/1992 (RIVA)?
Me he perdido, demasiados conceptos contables para mi.
Responder Con Cita
  #14  
Antiguo 29-03-2017
PepCat PepCat is offline
Miembro
 
Registrado: mar 2017
Posts: 96
Poder: 8
PepCat Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola a Todos. Ahora voy yo con una duda o problema por si le ha pasado a alguien.

Estomos desarrollando en delphi y a al hora de presentar mostramos todos los certificados disponibles en el equipo. En el equipo teníamos tres certificados, los cuales nos salian a la hora de obtenerlos. Uno de ellos estaba caducado y lo eliminamos del sistema, es decir ahora solo hay dos. Pero a la hora de obtener en delphi cuantos certificados hay me siguen saliendo tres, los dos que me quedan y uno en blanco.

A alguien le ha pasado esto o sabe por que es. La lista de certificados la estamos obteniendo de la siguiente forma.

Código Delphi [-]
   

function ObtenerCertificados(aList:TStringList):integer;
var
  hStore: HCERTSTORE;
  PrevContext, CurContext: PCERT_CONTEXT;
  cbSize: DWORD;
  sNombre: String;
begin
  aList.Clear;
  Result := 0;
  hStore := CertOpenSystemStore(0, PChar('MY'));
  if hStore <> nil then begin
     PrevContext := nil;
     CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
     while CurContext <> nil do begin
       sNombre := '';
       cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, nil, 0);
       if cbSize > 0 then
       begin
          SetLength(sNombre, cbSize-1);
          CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, PChar(sNombre), cbSize);
          aList.Add(sNombre);
       end;
       PrevContext := CurContext;
       CurContext  := CertEnumCertificatesInStore(hStore, PrevContext);
     end;
  end;
  result:=aList.count;
end;

Un Saludo.
Hola Keys,

Después de ver todos los problemas que se han comentado en este foro con el envió de más de 13 facturas con la librería de certificados que incluye Delphi he optado por utilizar la librería CAPICOM y abrir directamente el fichero con el certificado.

Código Delphi [-]

procedure SetCertificate(const FileName, Password: string; var Data: Pointer);
var
  Cert : ICertificate2;
  CertContext : ICertContext;
  PCertContext : PCCERT_CONTEXT;
begin
  try
    Cert := CoCertificate.Create;
  except
    on E: EOleSysError  do
      raise Exception.Create('CAPICOM.DLL is not registered')
  end;

  Cert.Load(FileName, Password, CAPICOM_KEY_STORAGE_EXPORTABLE, CAPICOM_LOCAL_MACHINE_KEY);
  CertContext := Cert as ICertContext;
  CertContext.Get_CertContext(Integer(PCertContext));
  if InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, Sizeof(CERT_CONTEXT)) = False then
    raise Exception.Create ( 'Error setting "' + FileName + '" certificate in web service' )
end;

procedure TfEmitidas.emitidasHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer);
begin
  SetCertificate('C:\Cetificados\FicheroConCertificado.p12', '1234', Data);
end;
Responder Con Cita
  #15  
Antiguo 29-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Lo primero gracias. El problema de las 13 facturas ya esta solucionado hace tiempo, se solucionó con el uso correcto de las CAPICOM, el problema no lo tengo con los envios, los hago correctamente. El problema es que si en el ordenador hay varios certificados hay que indicar con cual de ellos hacer el envío y como ya he dicho la función que los devuelve por lo visto tambien incluye los eliminados.
Responder Con Cita
  #16  
Antiguo 29-03-2017
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 18
Nasca Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Lo primero gracias. El problema de las 13 facturas ya esta solucionado hace tiempo, se solucionó con el uso correcto de las CAPICOM, el problema no lo tengo con los envios, los hago correctamente. El problema es que si en el ordenador hay varios certificados hay que indicar con cual de ellos hacer el envío y como ya he dicho la función que los devuelve por lo visto tambien incluye los eliminados.
Entiendo que los certificados que usas con ese sistema son los del almacén del Sistema Operativo, los que usa Internet Explorer y Chrome.
Con lo cual la eliminación de, por ejemplo, Firefox no elimina el certificado.
Mira que no sea algo así.
Responder Con Cita
  #17  
Antiguo 29-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Estoy accediendo a los certificados del sistema operativo. Si voy al panel de control ese certificado no sale. Pero si en la funcion de delphi que accede a ellos.
Responder Con Cita
  #18  
Antiguo 29-03-2017
PepCat PepCat is offline
Miembro
 
Registrado: mar 2017
Posts: 96
Poder: 8
PepCat Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Lo primero gracias. El problema de las 13 facturas ya esta solucionado hace tiempo, se solucionó con el uso correcto de las CAPICOM, el problema no lo tengo con los envios, los hago correctamente. El problema es que si en el ordenador hay varios certificados hay que indicar con cual de ellos hacer el envío y como ya he dicho la función que los devuelve por lo visto tambien incluye los eliminados.
Por eso he optado por cargar directamente al fichero y así no hace falta preguntar al usuario que certificado debe escoger.

De todas maneras para ver que certificados del “store” están vigentes, con CAPICOM puedes filtrarlos:


Código Delphi [-]
 for I := 1 to Certs.Count -1 do
  begin
    Cert := IInterface(Certs.Item[i]) as ICertificate;
    if Now <= Cert.ValidToDate  then
    begin
       aList.Add(Cert.SubjectName);
    end;
Responder Con Cita
  #19  
Antiguo 12-04-2017
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola a Todos. Ahora voy yo con una duda o problema por si le ha pasado a alguien.

Estomos desarrollando en delphi y a al hora de presentar mostramos todos los certificados disponibles en el equipo. En el equipo teníamos tres certificados, los cuales nos salian a la hora de obtenerlos. Uno de ellos estaba caducado y lo eliminamos del sistema, es decir ahora solo hay dos. Pero a la hora de obtener en delphi cuantos certificados hay me siguen saliendo tres, los dos que me quedan y uno en blanco.

A alguien le ha pasado esto o sabe por que es. La lista de certificados la estamos obteniendo de la siguiente forma.

Código Delphi [-]
   

function ObtenerCertificados(aList:TStringList):integer;
var
  hStore: HCERTSTORE;
  PrevContext, CurContext: PCERT_CONTEXT;
  cbSize: DWORD;
  sNombre: String;
begin
  aList.Clear;
  Result := 0;
  hStore := CertOpenSystemStore(0, PChar('MY'));
  if hStore <> nil then begin
     PrevContext := nil;
     CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
     while CurContext <> nil do begin
       sNombre := '';
       cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, nil, 0);
       if cbSize > 0 then
       begin
          SetLength(sNombre, cbSize-1);
          CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, PChar(sNombre), cbSize);
          aList.Add(sNombre);
       end;
       PrevContext := CurContext;
       CurContext  := CertEnumCertificatesInStore(hStore, PrevContext);
     end;
  end;
  result:=aList.count;
end;

Un Saludo.
Para eliminar del sistema certificados caducados
-Pincha en Inicio/Ejecutar.
-Escribe: mmc y pulse "Aceptar".
-En la consola pulse en el menú Archivo o Consola (depende del sistema operativo). Selecciona "agregar o quitar complemento".
-En la ventana que aparece pulsa el botón "Agregar". Pinche en "certificados".
Agregar.
-Selecciona "Mi cuenta de usuario" en caso de no estar marcada, ya que suele estar marcada por defecto.
-Finalizar.
-Pulsa "cerrar" en la ventana que tiene delante y "aceptar" en la que aparecerá a continuación. Volverá a la ventana de Raíz de Consola.
-Podrás comprobar que ahora en la parte izquierda de la ventana tienes una nueva opción que se llama "Certificados" y que se puede desplegar.
-Despliega la carpeta "Certificados" y entre en la que dice "Personal". En la parte derecha aparecerán tantos certificados como tenga instalados en el navegador, incluidos los que no vea o tenga caducados.
-Pulsa encima del que desee eliminar con el botón derecho del ratón y selecciona "Eliminar".
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 1 Semana 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 16:17:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi