Ver Mensaje Individual
  #6  
Antiguo 24-01-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Reputación: 6
rci Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Gracias a ambos por las respuestas.


Es que estaba montando el objeto "RegFactuSistemaFacturacion" (como la hacía en el SII)
Código:
Dim objectoFactEmitida As RegFactuSistemaFacturacion = New WSVerifactu.RegFactuSistemaFacturacion

objectoFactEmitida.Cabecera = New CabeceraType
objectoFactEmitida.Cabecera.ObligadoEmision = New PersonaFisicaJuridicaESType
objectoFactEmitida.Cabecera.ObligadoEmision.NombreRazon = "AAAA"
objectoFactEmitida.Cabecera.ObligadoEmision.NIF = "BBBB"
objectoFactEmitida.Cabecera.Representante = New PersonaFisicaJuridicaESType
objectoFactEmitida.Cabecera.Representante.NombreRazon = "CCCC"
....
y una vez que terminé quería enviarlo al web service, pero no encuentro la manera. Sí que lo conseguí comunicar una factura enviando un xml, pero quería asegurarme si es la única manera.


Porque al convertir el objeto "RegFactuSistemaFacturacion" al xml lo monta regular: las etiquetas no comienzan por "<sum:" o "<sum1:" y me dice que el xml es incorrecto. Si lo edito a mano poniendo los "sum " me funciona, pero es un poco rollo.


También puedo olvidarme del objeto "RegFactuSistemaFacturacion" y montarlo a mano como dices, pero me parece más engorroso, quería agotar todas las vías antes


Probaré lo que me decís a ver si avanzo algo


Muchas gracias!
Si que puedes enviar el objeto directamente usando las clases que se generan al importar el wsdl

Este código c# lo encontré en este foro, de algún compañero:

Código:
var basicbinding = new BasicHttpsBinding();
basicbinding.Name = "sfVerifactu";
basicbinding.Security.Mode = BasicHttpsSecurityMode.Transport;
basicbinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
basicbinding.MaxReceivedMessageSize = 100 * 1024 * 1024;
var service = new sfPortTypeVerifactuClient(basicbinding, new EndpointAddress(new Uri(url)));
service.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(certificate);
RespuestaRegFactuSistemaFacturacionType wsResponse = wsResponse = service.RegFactuSistemaFacturacion(objectoFactEmitida);
Espero que te sirva, seguro que puedes adaptarlo a tu lenguaje fácilmente
Responder Con Cita