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 19-11-2015
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Me he quedado atascado, y la única respuesta que me dan los de soporte del webservice es la misma respuesta que me da el validador online de firma (https://valide.redsara.es/valide/inicio.html):

"Id is not an attribute"

Así que ni idea.

Estoy hablando con el soporte de Eldos, creadores de los SecureBlackBox, a ver si me ayudan a ver qué pasa. Me niego a dejar esto ahora ya que creo que tengo el 90% conseguido, pero la verdad es que hay días que me dan ganas de abandonar y esperar a que pase algo más de tiempo para que haya más información en la red.

Seguiré intentándolo
Responder Con Cita
  #2  
Antiguo 27-11-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Hola Espinete, despues de mucho tiempo voy a retomar este tema. Cuando lo deje estaba atascado con el error "connection lost" ahora no me da error pero el servicio retorna

<faultcode>500</faultcode>
<faultstring>20151127135337151899 - 300 - El certificado electr&#xF3;nico no est&#xE1; dado de alta en FACe. Para la presentaci&#xF3;n automatizada de facturas es necesario registrarse previamente en https://face.gob.es/es/proveedores</faultstring>

me fijo que he empleado el servicio definido en

https://webservice.face.gob.es/sspp

el cual segun la nueva documentacion es antiguo (aunque esta activo )

si empleo los nuevos, recibo diferentes errores para la misma peticion soap que antes (que no da error)

STAGING (https://se-face-webservice.redsara.es/facturasspp2) RCP-Literal
Decode from base64 failed

PROD (https://webservice.face.gob.es/facturasspp2) RCP-Literal
Xml parse error at position 1 (0x1)

¿Alguna idea? Gracias

Este el el codigo
Código Delphi [-]
// pruebas con cliente secureblackboc
              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.MessageNamespaces.Clear;
                FSOAPClient.HTTPClient := HTTPSClient;
// entorno pruebas que no funciona
//                FSOAPClient.URL := 'https://se-face-webservice.redsara.es/facturasspp';
// produccion
                FSOAPClient.URL := 'https://webservice.face.gob.es/facturassspp2';
                FSOAPClient.OperationNamespaceURI := 'https://webservice.face.gob.es';
                FSOAPClient.SOAPAction := 'https://webservice.face.gob.es#enviarFactura';

                fsoapclient.GenerateMessage;
                FSOAPClient.XMLDocument.LoadFromFile(extractfilepath(application.exename) + 'requestsoap.xml');
                FSOAPClient.SOAPMessage.LoadFromXML(FSOAPClient.XMLDocument); // reload a SOAP message if needed

                FSOAPClient.SendMessage;
                fsoapclient.ResponseXMLDocument.SaveToFile('resul.xml');

              except
                on E: Exception do
                begin
                  MessageDlg('Failed to send SOAP message: ' + E.Message, mtError, [mbOk], 0);
                end;
              end;
Responder Con Cita
  #3  
Antiguo 01-12-2015
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Hola, elguille

Lo siento, yo no uso el componente TElXMLSOAPClient. Sólo uso los componentes de SecureBlackBox necesarios para hacer las firmas.
Para enviar la petición SOAP, importo el wsdl y hago la petición tal como indiqué en un post anterior.

Los técnicos de SecureBlackBox están intentando ayudarme a crear/firmar la petición SOAP, pero siempre obtengo "La firma de la petición soap no es válida".

Si existiera UN SOLO EJEMPLO de una petición soap completa para poder comparar sería todo maravilloso, pero en las instrucciones solo hay peticiones sin firmar.
Responder Con Cita
  #4  
Antiguo 01-12-2015
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Hola de nuevo.

He hecho una mezcla entre mi código y el de elguille, y he usado el webservice nuevo de STAGING para pruebas. PARECE QUE FUNCIONA, pero obtengo un error:

411 - No existe o inactiva la Oficina Contable asociado al código "A05003410"

He usado una oficina contable, unidad tramitadora, etc. al azar. ¿Alguien sabe si puede usarse cualquiera en el entorno de pruebas? ¿O es que he tenido mala suerte y esa no vale?

Al menos ya no obtengo el error 100 (La firma de la petición soap no es válida) ni ningún otro error!!!!
Responder Con Cita
  #5  
Antiguo 01-12-2015
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Thumbs up

Bueno, creo que funciona

He conseguido obtener el listado de Administraciones, que también requiere una petición soap firmada. No puedo enviar captura de pantalla porque los límites de tamaño y dimensiones para los archivos son un tanto peculiares en el foro...

Mañana intentaré enviar una factura (necesitaría saber qué código de administración es válido) y poner el código que he usado
Responder Con Cita
  #6  
Antiguo 10-12-2015
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Espinete, ¿lo has conseguido? ¿Puedes ilustrarnos?

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

Pues sí, creo que lo tengo todo, a falta de probar en modo producción.
Esta semana ha habido varios cortes del servicio (avisan por email cuando tienen previsto uno), pero conseguí hacer pruebas para enviar una factura, consultar el estado de una factura, obtener el listado de organismos disponibles, anular una factura, etc.

Mañana intentaré poner algunos ejemplos, pero ahora mismo tengo este a mano: Consultar Administraciones:

Código Delphi [-]
procedure TfrmMain.Button3Click(Sender: TObject);
var
    answ : ConsultarAdministracionesResponse;
    htpr: THTTPRIO;
    sphdr: TSOAPHEADER;
    WS: FacturaSSPPWebServiceProxyPort;
    UnidadDir : UnidadDir3;
    i:integer;
begin
    if comboCertificate.ItemIndex=-1 then
    begin
      showmessage('Debe seleccionar primero un certificado en el desplegable.');
      exit;
    end;
    
    Listbox1.items.clear;

        //Creamos los headers, necesarios para la petición SOAP
        sphdr := TSOAPHEADER.create;

        // Creo el HTTP, que utilizaré como vehículo
        htpr := THTTPRIO.create(Self);

        //Aquí trabajamos con el propio httprio, donde podemos poner cabeceras, asignar eventos, etc...

        htpr.SOAPHeaders.Send(sphdr);
        htpr.OnBeforeExecute := HTTPRIO1BeforeExecute;

        // Al crear la instancia del WS, le asigno el httprio que he creado y he manipulado...
        WS:= GetFacturaSSPPWebServiceProxyPort(FALSE, '', htpr);
        try
            answ := WS.consultarAdministraciones;
        except
            on e:exception do showmessage(e.Message);
        end;

        if answ.resultado.codigo='0' then
        begin
            UnidadDir := UnidadDir3.Create;
            for i:=0 to length(answ.administraciones)-1 do
            begin
                UnidadDir := answ.administraciones[i];
                begin
                    listbox1.items.append(UnidadDir.codigo + ' - ' + UnidadDir.nombre )
                end;
            end;
            UnidadDir.Free;
        end;
end;

El evento HTTPRIO1BeforeExecute creo recordar que ya lo publiqué en otro post más arriba.
Cuando tenga más tiempo editaré el post original añadiendo todas las funciones.
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
Facturas Electronicas Argentina Chaja Varios 3 10-07-2015 19:15:05
Agregar Adendas a Facturas electronicas mexico reypcs Varios 0 20-01-2011 16:26:10
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
Comunicaciones electronicas EDI Toni Conexión con bases de datos 0 18-04-2006 13:06:34
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44


La franja horaria es GMT +2. Ahora son las 19:51:43.


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