Ver Mensaje Individual
  #1  
Antiguo 19-02-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Reputación: 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