Ver Mensaje Individual
  #477  
Antiguo 30-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.029
Reputación: 22
keys Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
Bueno, esto parece que marcha bien. He conseguido enviar varias facturas y luego consultar las enviadas, pero tengo algunas dudas...

1) El problema del envío de más de 13 facturas. ¿cual es exactamente la causa del problema? He leído que con CAPICOM no ocurre, pero ¿por qué?

Se pueden enviar varias facturas una a una (varias peticiones) en lugar de con una sola petición o hay algún límite/recomendación? He leído que enviándolas una a una obtenemos incluso un CSV, así que mejor, no?

2) ¿Cual sería el funcionamiento en una aplicación real? Es decir: enviaría las facturas y ya está? Es suficiente para sustituir el 347? Algún tipo de comprobante que se deba imprimir? Ya me imagino a los clientes haciéndome esas preguntas...

Aún no me he metido con las rectificativas, y a probar a enviar facturas exentas de IVA, acogidas a RE, facturas recibidas, etc. pero por lo que veo y leo, no parece haber problema.

Estaría bien que una vez tengamos todo preparado, hacer un post-resumen, similar al que hice hace tiempo con el webservice del envío de facturas electrónicas al face.

En fin, siento haber llegado tarde para colaborar. Si descubro el motivo de las 13 facturas os aviso, ya que me gustaría aprovechar los componentes de SecureBlackBox. No tiene mucho sentido que devuelva ese error. ¿alguien ha comparado el XML del mismo envío usando CAPICOM y el otro método?
Hola el problema de las 13 facturas no se llego a saber por que. El problema no es de las SecureBlackBox, el problema es del componente HTPTRIO a la hora de hacer el envío. Te pongo la solución que encontramos, que pasa por utilizar los CAPICOM para hacer el envío. En el evento OnBeforePost del HTTPTRIO poner lo siguiente :

Código Delphi [-]
 
  var
     Store : IStore;
     Certs : ICertificates;
     Cert : ICertificate2;
     CertContext : ICertContext;
     PCertContext : PCCERT_CONTEXT;
     V : OleVariant;
 const
     INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
 begin

     V := Certificado; //Certificado es el nombre completo del certifficado en una funcion anterior esta puesto como obtenerlo con las CAPICOM pero con SecureBlackBox tambien se puede obtener

     Store := CoStore.Create;
     Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED );
     Certs := Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False );

     if Certs.Count > 0 then
     begin
         Cert:=IInterface(Certs.Item[1]) as ICertificate2;
         CertContext:=Cert as ICertContext;
         CertContext.Get_CertContext(Integer(PCertContext));
         if InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext,Sizeof(CERT_CONTEXT)) = False then
         begin
             Error
         end;
     end
     else
      begin
         Error no hay certificados
      end;
 end;

2) Respecto a esto cada uno sabrá como hacerlo dependiendo de sus necesidades, nosotros estamos guardando el CSV y el estado del envío de cada factura además del fichero de respuesta, aunque esto último no hace falta. De todas formas el usuario pordra consultar en cualquier momento en la pagina de la AEAT el estado de cada factura o también se puede acceder a ello a través del webservice.

Por otro lado si estas en el SII ya no tienes que hacer el 347. entre otros impuestos.


Cita:
Estaría bien que una vez tengamos todo preparado, hacer un post-resumen, similar al que hice hace tiempo con el webservice del envío de facturas electrónicas al face.
Estoy de acuerdo, pero yo propongo primero a algún moderador separe este foro en por lo menos en tres, uno para Delphi, Otro para VB C# (Otros lenguajes raros ) y otro para normativa. Ya que me pongo en el lugar del que este empezando y se ponga a revisar este foro, es una mezcla de varios lenguajes, propuestas, etcc...

Luego diran que el delphi esta muerto y no creo que exista otro foro sobre este tema más completo.

Responder Con Cita