Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Enviar factura electronica via webservice

Al final a base de leer esta web y otras y copiar y pegar he conseguido crear la factura electronica firmada y correctamente validada mediante secureblackbox (son muy buenas con ejemplos para hacerlo todo) y de hecho ya las envio manualmente a traves de
https://face.gob.es/es/remitir-factura
, mi problema ahora es enviarla via webservice segun la siguiente documentacion
http://administracionelectronica.gob...s#.VOWOBeaG-TM
esto es una webservice definida para entorno de pruebas
https://se-face-webservice.redsara.es/sspp?wsdl
o produccion
https://webservice.face.gob.es/sspp?wsdl

son iguales solo cambia la direccion inicial
, en este caso solo me interesa el procedimiento enviarfactura esto consiste en hacer una petición soap FIRMADA (como odio esto de las firmas ) adjunto peticion SOAP que he creado y creo que es correcta y aqui viene el problema, he empleado diversos metodos para enviar la peticion, el componente SOAP que viene con SecureBlackBox
Código Delphi [-]
              FXMLDocument := TElXMLDOMDocument.Create;
              FXMLDocument.LoadFromFile(extractfilepath(application.exename) + 'requestsoap.xml');
              FSOAPClient := TElXMLSOAPClient.Create(nil);
              try
                FSOAPClient.SOAPPrefix := 'soap';
                FSOAPClient.SOAPVersion := SOAP_v1_2;
                FSOAPClient.OperationName := 'enviarFactura';
                FSOAPClient.OperationNamespaceURI := 'https://se-face-webservice.redsara.es';
                FSOAPClient.MessageNamespaces.Clear;
                FSOAPClient.HTTPClient := HTTPSClient;
                FSOAPClient.URL := 'https://se-face-webservice.redsara.es/sspp';
                FSOAPClient.SOAPAction := 'https://se-face-webservice.redsara.es/sspp/enviarFactura';
                fsoapclient.GenerateMessage;
                FSOAPClient.XMLDocument.LoadFromFile(extractfilepath(application.exename) + 'requestsoap.xml');
                FSOAPClient.SOAPMessage.LoadFromXML(FSOAPClient.XMLDocument); // reload a SOAP message if needed
//                HTTPSClient.Post('https://se-face-webservice.redsara.es/sspp/enviarFactura'+FXMLDocument.OuterXML);
                FSOAPClient.SendMessage;
              except
                on E: Exception do
                begin
                  MessageDlg('Failed to send SOAP message: ' + E.Message, mtError, [mbOk], 0);
                end;
              end;
o mediante el pas creado con el WDSL importer de Delphi ( lo adjunto sspp_serviceprueba)
Código Delphi [-]
          sspp := GetSSPPWebServiceProxyPort(FALSE, '', nil);
          facturasspp := ssppfactura.Create;
          facturasspp.correo := tsdat[16];
          facturassppfichero := ssppficherofactura.Create;
          facturassppfichero.nombre := MFIC;
          facturassppfichero.factura := '72345';
          facturassppfichero.mime := 'application/xml';
          facturasspp.fichero_factura := facturassppfichero;
          resulsspp := sspp.enviarFactura(facturasspp)
en ambos casos recibo connection lost y no consigo hacer nada mas, tambien creo que si en cualquier navegador tecleo el punto de entrada https://se-face-webservice.redsara.e.../enviarfactura mas ?= y el requestsoap tambien deberia de funcionar pero recibo FIRMA INVALIDA ..
Ya se que el tema es muy complicado pero si alguien tiene alguna idea de por donde tirar se lo agradeceria, así como estoy dispuesto a pagar (dentro de unos limites ) si alguien ya lo ha solucionado ...
Gracias
Archivos Adjuntos
Tipo de Archivo: zip requestsoap.zip (8,9 KB, 134 visitas)
Tipo de Archivo: zip sspp_serviceprueba.zip (2,8 KB, 79 visitas)
Responder Con Cita
  #2  
Antiguo 19-02-2015
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Espero no equivocarme pero tienes que andarte con ojo con el tema de face, estan haciendo cambios cada 2x3 y no estan avisando. Estoy seguro que si pruebas eso mismo contra el entorno de producción te funcionará y que lo que está pasando es que en este momento en pruebas no están aceptando que se suban facturas. Ya te digo que no te fies demasiado de mi y mires por otros lados pero si tuviera que jugarme algo apostaría por esto que te estoy diciendo. No me parece que el problema lo tengas en tu código, creo que esta en el webservice.
Responder Con Cita
  #3  
Antiguo 19-02-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Tienes razón Engranaje contra el entorno de producción recibo error "firma no válida" no "connection lost" que tengo que suponer que es cierto, menudos chapuzas ponen un entorno de pruebas invalido, para ese mejor no ponerlo...
En fin voy a repasar el tema de la firma a ver si pillo donde puede estar el error...
Responder Con Cita
  #4  
Antiguo 19-02-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Question

Después de perder tantas horas por errores no mios quisiera asegurarme de que estoy equivocado, ¿alguno ha conseguido enviar las facturas via webservice ?
Responder Con Cita
  #5  
Antiguo 19-02-2015
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Lo que comenté antes es mas bien de oidas. Lo que sé y ya digo que no puedo hablar en primera persona es que estas semanas han cambiado el formato de las facturas varias veces y también el webservice, dandose el caso de aplicaciones pasababan de subir facturas utilizando el webservice a no poder subirlas teniendo los desarrolles que modificar la aplicación para adpatarse el nuevo funcionamiento del webservice. A ver si alguien que tenga el tema de primera mano puede ayudarte más y te dice en que punto está el webservice de face ahora en lo que respecta a subir facturas.
Responder Con Cita
  #6  
Antiguo 19-02-2015
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
¿Has visto esto?


Igualmente el próximo día 17 de febrero, se procederá a la modificación de los certificados de FACe en producción debido al fin del soporte por parte de Microsoft de los certificados de Clase 2CA.
Certificados actualización 17/2/2015
ruta_de_certificacion_ssl_face.p7b
ruta_de_certificacion_wildcard_face.p7b

Para obtener dichos certificados por favor pinche aquí:
http://administracionelectronica.gob.es/ctt/resources/Soluciones/334/Area%20descargas/Certificados%20FACe.zip?idIniciativa=334&idElemento=3766
Responder Con Cita
  #7  
Antiguo 19-02-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Creo que a nosotros no nos afecta a no ser que valides la firma de respuesta del servidor ...
Responder Con Cita
  #8  
Antiguo 09-03-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
webservice facturae

¿Alguna mente preclara ha conseguido enviar la factura electrónica a través del webservice "https://webservice.face.gob.es"?

Saludos
Responder Con Cita
  #9  
Antiguo 10-03-2015
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.460
Poder: 20
newtron Va camino a la fama
Hola.

Siento no poder ayudarte porque creo que los demás vamos un paso por detrás. ¿Exactamente qué componente de SBB has comprado?, ¿puedes decirnos el precio?.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo 11-03-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
https://www.eldos.com/sbb/editions.php#vcl

Edición profesional

Para calcular el precio

https://www.eldos.com/sbb/calc.php

Saludos
Responder Con Cita
  #11  
Antiguo 11-03-2015
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.460
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por elguille Ver Mensaje
https://www.eldos.com/sbb/editions.php#vcl

Edición profesional

Para calcular el precio

https://www.eldos.com/sbb/calc.php

Saludos
Si, si hasta ahí llego. Mi pregunta es si has comprado la "suite" completa que si no me equivoco sale por 1,324.00 trompos+IVA para un usuario o has comprado solo el componente de firma que no estoy seguro si es el XMLBlackBox que sale por 497.00.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #12  
Antiguo 16-03-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Necesitas la suite completa... al necesitar XMLBlackbox package...
Responder Con Cita
  #13  
Antiguo 16-03-2015
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.460
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por elguille Ver Mensaje
Necesitas la suite completa... al necesitar XMLBlackbox package...
Bueno, creo que se pueden comprar paquetes sueltos, como en este caso el XMLBlackbox.

Por otro lado si consigues algo en relación a tu tema te agradeceríamos que lo comentaras y si te cuesta pasta igual podemos hacer un "mocho" .

Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #14  
Antiguo 25-03-2015
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Exclamation

Hola a todos...

Yo también estoy intentando enviar las facturas vía webservice, solo que con el problema añadido de que no tengo mucha experiencia con SOAP, WDSL, etc...

1) Tengo los componentes SecureBlackBox, en caso de que los necesite, que supongo que sí.
2) También he conseguido generar la factura (XML o XSIG) y firmarla. El servicio de validación de factura-e me la da como perfectamente válida.
3) He logrado importar el WSDL. Hasta aquí todo bien.

Al realizar el envío, me da el error "SOAP Request Signature is not valid". Tras investigar un poco, creo que también hay que FIRMAR la petición SOAP. ¿Cómo hago eso?

¿El mensaje SOAP es otro XML y dentro de éste debe ir el contenido de la factura XML convertido a base64? ¿Qué estructura debe tener este otro XML?
¿Puedo usar mi propio certificado digital para las pruebas, o he de usar el de ellos para pruebas?

¿Alguien puede ayudarme con esto?

Gracias!
Responder Con Cita
  #15  
Antiguo 17-07-2015
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 19
Poder: 0
razorxxx Va por buen camino
Hola espinete,

Yo también me estoy dando cabezazos con esto de la firma electrónica, porque no tengo ni idea de Java, SOAP, etc. Pero bueno, ya estoy bastante avanzado.

Los de FACe van enviando periódicamente emails con los cambios que van haciendo, y tocan mucho los w...s. Por si a alguno le interesa, todos los envíos que realizan por correo pueden ser consultados en listas-ctt.administracionelectronica.gob.es/pipermail/face-notificacion/ sin necesidad de darse de alta en las listas de correo. Lo último que han informado parece ser importante, ya que es un cambio en la interfaz sspp, que ahora pasa a ser sspp2. No obstante, aseguran que hasta Octubre nada de nada. Pueden ver la noticia completa aquí: listas-ctt.administracionelectronica.gob.es/pipermail/face-notificacion/2015-June/000024.html.

Por lo que puedo deducir de la documentación de FACe para proveedores, concretamente "Interfaz WS FACe- Proveedores.pdf", es que hace falta generar un nuevo XML (que es el que se envía mediante SOAP) que es el que contiene la factura xsig pero en formato base64, así como otros datos como el nombre, el correo electrónico del proveedor, el tipo mime y los ficheros anexos (si los hubiera, éstos también codificados en base64). El total de archivos a enviar no puede superar los 8Mb, según leí en el archivo "integracion-y-recomendaciones.pdf". Un ejemplo de este XML es el que adjuntó elguille en el primer post dentro de requestsoap.zip.
Ahora bien, este nuevo fichero XML hay que firmarlo cumpliendo el estándar OASIS WSSecurity 1.0 X509 Token Profile, pero la firma es diferente a la que se usó para el xsig ya que tiene bloques como <wsse:BinarySecurityToken>, y no sé cómo firmar así. Si el compañero elguille u algún otro puede arrojar algo de luz se agradecería.

Sobre la codificación en base64 que alguien me corrija, pero en Delphi XE2 o superiores creo que basta con el siguiente código que encontré por internet (añadir al uses la librería "Soap.EncdDecd"):
Código Delphi [-]
function TPFIRMAR.ConvertirEnBase64(const FileName: string): AnsiString;
var
   Stream: TMemoryStream;
begin
     Stream := TMemoryStream.Create;
     try
        Stream.LoadFromFile(Filename);
        Result := EncodeBase64(Stream.Memory, Stream.Size);
     finally
        Stream.Free;
     end;
end;

¿Alguna ayuda para firmar el XML que debe enviarse por SOAP? elguille...¿has sabido por fin cómo se envía una vez generado el WSDL con el importer de Delphi?
¿Les funciona a día de hoy el entorno de pruebas de FACe?

Gracias de antemano!
Responder Con Cita
  #16  
Antiguo 27-10-2015
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Hola de nuevo...

Hoy me han entrado escalofríos porque me han dicho que a partir de 2016 tienen previsto desplegar la factura electrónica en España de manera "obligatoria" para reducir el fraude, y no sólo a administraciones públicas, sino a todas las empresas, por lo que las facturas deberán enviarse a Hacienda a través de Internet tarde o temprano. Esto ya ocurre por ejemplo en México y otros países.

Creo que deberíamos entre todos intentar sacar esto adelante, porque no hay mucha información ni ejemplos en Delphi y nos va a costar más de la cuenta conseguirlo.

He encontrado este post que hace lo que necesitamos, pero en C# / .NET:
http://sourcedevnet.blogspot.com.es/...e-con-c-y.html

Por lo que he leído, la documentación de face es mejor no seguirla al pie de la letra (sería la primera vez que un manual oficial está bien explicado).

No debería ser tan complicado teniendo los componentes necesarios, pero todos estamos liados y no tenemos tiempo de ponernos a probar cosas, sobre todo porque muchas veces nos da error y no depende de nosotros sino del webservice, o bien nuestros conocimientos de un tema en concreto no son suficientes (soap, firmas, etc).

Yo uso los componentes de SecureBlackBox para firmar el .XML y generar el .XSIG
La importación del WSDL es sencilla, Delphi se encarga de todo así que no tiene mucha ciencia.
Eso sí, me pierdo entre tanta firma, los headers del soap, etc. ya que nunca he trabajado con soap.

¿Qué tal si vamos poniendo lo que tenemos a ver si entre todos vamos completando el proceso completo? ¿Qué os parece?
Responder Con Cita
  #17  
Antiguo 27-10-2015
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Buena idea. Lo que propongo es crear otro hilo, igual que existe para los casos que mencionas. Así no está tan mezclado, ¿no?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #18  
Antiguo 27-10-2015
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 14
pacopenin Va por buen camino
Sería una idea estupenda. Todos lo vamos a necesitar, así que podemos beneficiarnos.
__________________
http://www.gestionportable.com
Responder Con Cita
  #19  
Antiguo 28-10-2015
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.460
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por espinete Ver Mensaje
Yo uso los componentes de SecureBlackBox para firmar el .XML y generar el .XSIG
Espinete, ¿tú podrías preparar en delphi (aunque fuera pagando), usando esos componentes, un ejecutable simple que desde la línea de comandos darle un fichero de entrada y otro de salida, te firmara el archivo y te generara el fichero de salida?. Ahora mismo estoy usando el programita que ya hemos visto en java pero molaría quitarse el java de enmedio.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #20  
Antiguo 29-10-2015
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
He movido algunos mensajes a este otro foro en Trucos, ya que me parece más apropiado. Puede seguirse la conversación apropiada aquí y allí, según el tema.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
xml+xsl a pdf(Factura Electronica) jgutti Varios 4 21-02-2012 16:08:23
Factura electronica richy08 Varios 4 17-12-2010 00:40:34
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06


La franja horaria es GMT +2. Ahora son las 16:08:28.


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