Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2017
Avatar de mrobles
mrobles mrobles is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 115
Poder: 10
mrobles Va por buen camino
Esta tarde voy a una reunión que dan los del SII, si alguien quiere que les pregunte algo que me diga y lo posteare aquí mañana temprano o incluso cuando salga de allí
Responder Con Cita
  #2  
Antiguo 09-05-2017
josecarrillo josecarrillo is offline
Miembro
 
Registrado: may 2014
Posts: 13
Poder: 0
josecarrillo Va por buen camino
Me respondo a mi mismo por si le sirve a alguien.
Es un tipo enumerado y hay funciones específicas.
Seguro que hay alguna forma mas simple, pero esta me funciona.
De esta forma si cambia la lista en versiones futuras, seguirá funcionando.

uses ..., typinfo ;

var
idpais,ci:integer;
codigopais:string;

begin
CodigoPais:='IT';
idpais:=-1;
for ci := ord(Low(countrytype2)) to ord(High(countrytype2)) do
if CodigoPais= GetEnumName(TypeInfo(countrytype2),ci) then
begin
idpais:=ci;
ShowMessage( GetEnumName(TypeInfo(countrytype2),ci)); // solo para comprobar valor.
end;
...

if idPais>-1 then
ARegLRFacturasEmitidas[0].FacturaExpedida.Contraparte.IDOtro.CodigoPais:=CountryType2(idpais);

...
Responder Con Cita
  #3  
Antiguo 09-05-2017
Avatar de mrobles
mrobles mrobles is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 115
Poder: 10
mrobles Va por buen camino
Voy comentando, la descripcion se puede programar en plan factura tal de tal en fecha tal
Responder Con Cita
  #4  
Antiguo 09-05-2017
Avatar de mrobles
mrobles mrobles is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 115
Poder: 10
mrobles Va por buen camino
El retraso se multa con 0.5 del importe min 300 max 6000
Responder Con Cita
  #5  
Antiguo 09-05-2017
josecarrillo josecarrillo is offline
Miembro
 
Registrado: may 2014
Posts: 13
Poder: 0
josecarrillo Va por buen camino
Me respondo a mi mismo por si le sirve al alguien.
Responder Con Cita
  #6  
Antiguo 16-05-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 129
Poder: 19
APO Va por buen camino
Cita:
Empezado por josecarrillo Ver Mensaje
Tengo la siguiente duda, a ver si alguien me puede echar un cable.
En mi BD dispongo del código ISO de todos los paises, es decir, de todos los pases cuyo código corresponde con la lista SuministroFactEmitidas.CountryType2.
El problema es que no soy capaz de indicar en el registro FacturaExpedida.Contraparte.IDOtro.CodigoPais el código de pais, me explico.
No puedo indicar lo siguiente V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := 'DE'
Para hacerlo correctamente debo indicarlo así V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := SuministroFactEmitidas.CountryType2(2).
Pero para esto necesito saber que posición ocupa el pais del cliente en la lista de constantes SuministroFactEmitidas.CountryType2.
Como habéis resuelto este tema?
Existe alguna forma de indicarle SuministroFactEmitidas.CountryType2("La posición que ocupe el pais DE")?

Quedo a la espera de vuestras noticias.
Muchisimas Gracias por adelantado.


Yo tengo este mismo problema alguien lo ha resuelto.

Hay una manera muy sencilla y directa de asignarle el código de país sin tener que hacer conversiones de código ni nada de eso. Sería de la siguiente manera:

Código Delphi [-]
ARegistroLRFacturasEmitidas[0].FacturaExpedida.Contraparte.IDOtro.CodigoPais:=SuministroFactEmitidas.CountryType2(GetEnumValue(Typ  eInfo(CountryType2),'ES'));

Y esto mismo sirve para cualquier otro campo. El GetEnumValue nos devuelve el valor del tipo que queramos.
Responder Con Cita
  #7  
Antiguo 30-03-2017
robinsondemantu robinsondemantu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
robinsondemantu Va por buen camino
WebService

Cita:
Empezado por jcaceres121 Ver Mensaje
Hola.
Aunque se que este club es de Delphi, estoy intentando crear una solución en Java para el problema. Tengo alguna experiencia con Java y ninguna con webservices.
He visto tu código .NET, que es quizá lo más parecido a Java que he encontrado por ahí, pero me surgen dudas.
Lamento no haber encontrado ningún foro de Java y por eso me veo obligado a preguntar aquí.
Os comento mi situación.
Tengo ya creado una objeto SuministroLRFacturasEmitidas (supongo que correctamente) que contiene una factura de ejemplo, y también tengo un objeto X509Certificate con un certificado obtenido a partir de un fichero .PFX.
Entiendo que sólo me quedaría invocar a los métodos necesarios para enviar el objeto y recibir la respuesta, pero no se como.
Si alguien pudiera ayudarme, estaría muy agradecido. levo muchas horas con esto y no avanzo.
Gracias
Hola,

No sé si te han respondido. Yo trabajo con .NET, pero supongo que en Java sería igual o parecido, aunque aquí dependerá del IDE que utilices. Tendrás que crearte una referencia Web al WSDL correspondiente (en este caso al de facturas emitidas) de la AEAT.

Por ejemplo en Eclipse:

Adding a Web Reference in Eclipse
To develop Java programs that consume Location Intelligence Module web services in Eclipse, you first create a reference to the web service in your Java project. When the reference is created, the client-side stub code required to use the web service is generated.

Start Eclipse.
On the File menu, select New > Project.
The New Project wizard opens.

In the New Project wizard, select Java > Java Project.
Click Next.

In the Project Name field, enter the name you want to give your project.
Click Finish to close the wizard.

The new project folder appears in the Package Explorer.

In the Package Explorer, right-click on the project folder you created in the previous step. On the pop-up menu, select New > Other.
The New wizard opens.

In the New wizard, select Web Services > Web Service Client.
Click Next.

In the Service Definition field, enter the URL to the web service's WSDL document.
Select Develop Client on the slider bar.

Click Finish to close the wizard.

The stub code for the web service is generated in the project folder.


Esto te generará una clase proxy con los métodos disponibles del servicio Web. En el método de altas de facturas emitidas, le pones tu objeto SuministroLRFacturasEmitidas y recibes la respuesta.
Responder Con Cita
  #8  
Antiguo 02-03-2017
angelhorse angelhorse is offline
Registrado
NULL
 
Registrado: feb 2017
Posts: 5
Poder: 0
angelhorse Va por buen camino
SIIHacienda

Cita:
Empezado por jlegido Ver Mensaje
Hola angelhorse,

Yo tambien estoy haciendo este tema en VB.net (muy similar a c#), pero no consigo crear bien el archivo XML
Parto de la base de que el archivo XML a generar debe seguir el modelo cuyo ejemplo hay en SII_Descripcion_ServicioWeb_v0.5_es_es.pdf en apartado 8.1.1.1.Ejemplo mensaje de XML de alta.
Yo siguiendo las directrices de los compañeros de Delphi he adaptado su codigo (usando el ejemplo de seccion_31 que colgo WebServices AEAT Berlin_3.rar.
Lo hago usando este codigo (solo pongo parte)
Dim i As Long
Dim ASuministroLRFacturasEmitidas As SuministroLRFacturasEmitidas
Dim ARegistroLRFacturasEmitidas() As LRfacturasEmitidasType
'===========================================================================
'generacion info factura/s emitidas----------------------------------------------------------------
ASuministroLRFacturasEmitidas = New SuministroLRFacturasEmitidas()
ASuministroLRFacturasEmitidas.Cabecera = New CabeceraSii()

'DATOS Cabecera--------------------------------------------------------------------------
ASuministroLRFacturasEmitidas.Cabecera.IDVersionSii = ClienteSII1.VersionSiiType.Item05 '0.5 version actual del SII
ASuministroLRFacturasEmitidas.Cabecera.Titular = New PersonaFisicaJuridicaESType()
'Nombre del presentador
ASuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = "Empresa XXX"
'el NIF del presentador (DEBE COINCIDIR CON EL CERTIFICADO SELECCIONADO)
ASuministroLRFacturasEmitidas.Cabecera.Titular.NIF = "A84532501"
'Tipo de comunicacion: ' A0 - ALTA ' A1- MODIFICACION ' A4- MODIFICACION REGIMEN VIAJEROS
ASuministroLRFacturasEmitidas.Cabecera.TipoComunicacion = ClaveTipoComunicacionType.A0
Etc. etc.
El problema es que no encuentro la forma de agregar la cabecera:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope .....> <soapenv:Header/>
Ademas en las etiquetas no hay forma de ponerle el namespace sii o siiLR
Que es imprescindible.

La pregunta es por tanto ¿Estoy usando el metodo adecuado y hay pasos que desconozco ¿ o deberia generear el XML manualmente a base de ir concatenado trozos de cadena y despues guardarlo como archivo?

¿Cómo lo has hecho tu?
Gracias de antemano por cualquier info que pueda dar luz al tema
Buenas!
Yo lo he hecho a base de XElements (Estructura XML) y Strings.
Te digo más o menos como lo he hecho (Que supongo que no será la forma más óptima pero es como se me ha ocurrido)

Para poner los prefijos de Sii, SiiLR y demás he usado esto:
public static XNamespace NAMESPACE = @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd";

Para crear los nodos XElement con sus prefijos:
XElement root = new XElement(NAMESPACE + "SuministroLRFacturasEmitidas");

Para poner la cabecera yo he usado esto:
XElement Envelope = new XElement(soapenv + "Envelope",
new XAttribute(XNamespace.Xmlns + "soapenv", @"*schemas.xmlsoap.org/soap/envelope/"),
new XAttribute(XNamespace.Xmlns + "siiLR", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"),
new XAttribute(XNamespace.Xmlns + "sii", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"));

XElement Header = new XElement(soapenv + "Header");
Envelope.Add(Header);

String file = Utilidades.CreateXMLFile(Envelope, i, "Alta Facturas Emitidas");

Mi Utilidades.CreateXMLFile:

XmlTextWriter writer = new XmlTextWriter(archivoPath, Encoding.UTF8); //Con esto de aquí le pones la primera línea esa "<?xml version="1.0" encoding="UTF-8"?>"
writer.WriteStartDocument();
writer.Formatting = Formatting.Indented;
xml.WriteTo(writer);
writer.Flush();
writer.Close();

Espero haberte ayudado.
P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD
Responder Con Cita
  #9  
Antiguo 02-03-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Cita:
Empezado por angelhorse Ver Mensaje
Buenas!
Yo lo he hecho a base de XElements (Estructura XML) y Strings.
Te digo más o menos como lo he hecho (Que supongo que no será la forma más óptima pero es como se me ha ocurrido)

Para poner los prefijos de Sii, SiiLR y demás he usado esto:
public static XNamespace NAMESPACE = @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd";

Para crear los nodos XElement con sus prefijos:
XElement root = new XElement(NAMESPACE + "SuministroLRFacturasEmitidas");

Para poner la cabecera yo he usado esto:
XElement Envelope = new XElement(soapenv + "Envelope",
new XAttribute(XNamespace.Xmlns + "soapenv", @"*schemas.xmlsoap.org/soap/envelope/"),
new XAttribute(XNamespace.Xmlns + "siiLR", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"),
new XAttribute(XNamespace.Xmlns + "sii", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"));

XElement Header = new XElement(soapenv + "Header");
Envelope.Add(Header);

String file = Utilidades.CreateXMLFile(Envelope, i, "Alta Facturas Emitidas");

Mi Utilidades.CreateXMLFile:

XmlTextWriter writer = new XmlTextWriter(archivoPath, Encoding.UTF8); //Con esto de aquí le pones la primera línea esa "<?xml version="1.0" encoding="UTF-8"?>"
writer.WriteStartDocument();
writer.Formatting = Formatting.Indented;
xml.WriteTo(writer);
writer.Flush();
writer.Close();

Espero haberte ayudado.
P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD
Hola angelhorse,
Si, muchas gracias,me ha sido util tu codigo. Yo tenia ya algo parecido hecho con XmlWriter.
De todas formas , me faltaria saber que contiene la variable soapenv, que tu pones en varias partes del codigo, p.e.
Código:
XElement Header = new XElement(soapenv + "Header");
Otra duda, dado que tu generas el xml de esta forma, ¿ como lo envias a AEAT ?, usando un metodo HttpRequest o Serializar y usas las clases generadas mediante wsdl.exe, enviandolo asi

Código:
  resul = proxy.SuministroLRFacturasEmitidas(AsuminstroFacturasEmitidas)
Gracias de nuevo.
Responder Con Cita
  #10  
Antiguo 02-03-2017
paquimd paquimd is offline
Miembro
 
Registrado: feb 2017
Posts: 15
Poder: 0
paquimd Va por buen camino
Cita:
Empezado por jlegido Ver Mensaje
Hola angelhorse,
Si, muchas gracias,me ha sido util tu codigo. Yo tenia ya algo parecido hecho con XmlWriter.
De todas formas , me faltaria saber que contiene la variable soapenv, que tu pones en varias partes del codigo, p.e.
Código:
XElement Header = new XElement(soapenv + "Header");
Otra duda, dado que tu generas el xml de esta forma, ¿ como lo envias a AEAT ?, usando un metodo HttpRequest o Serializar y usas las clases generadas mediante wsdl.exe, enviandolo asi

Código:
  resul = proxy.SuministroLRFacturasEmitidas(AsuminstroFacturasEmitidas)
Gracias de nuevo.
En este último punto es en el que me encuentro yo. Tengo generado el XML, para enviarlo, intento hacerlo como tú:

resul = proxy.SuministroLRFacturasEmitidas(AsuminstroFacturasEmitidas)

pero al serializar me da errores.

Gracias
Responder Con Cita
  #11  
Antiguo 12-03-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Cita:
Empezado por angelhorse Ver Mensaje
Buenas!
Yo lo he hecho a base de XElements (Estructura XML) y Strings.
Te digo más o menos como lo he hecho (Que supongo que no será la forma más óptima pero es como se me ha ocurrido)

Para poner los prefijos de Sii, SiiLR y demás he usado esto:
public static XNamespace NAMESPACE = @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd";

Para crear los nodos XElement con sus prefijos:
XElement root = new XElement(NAMESPACE + "SuministroLRFacturasEmitidas");

Para poner la cabecera yo he usado esto:
XElement Envelope = new XElement(soapenv + "Envelope",
new XAttribute(XNamespace.Xmlns + "soapenv", @"*schemas.xmlsoap.org/soap/envelope/"),
new XAttribute(XNamespace.Xmlns + "siiLR", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"),
new XAttribute(XNamespace.Xmlns + "sii", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"));

XElement Header = new XElement(soapenv + "Header");
Envelope.Add(Header);

String file = Utilidades.CreateXMLFile(Envelope, i, "Alta Facturas Emitidas");

Mi Utilidades.CreateXMLFile:

XmlTextWriter writer = new XmlTextWriter(archivoPath, Encoding.UTF8); //Con esto de aquí le pones la primera línea esa "<?xml version="1.0" encoding="UTF-8"?>"
writer.WriteStartDocument();
writer.Formatting = Formatting.Indented;
xml.WriteTo(writer);
writer.Flush();
writer.Close();

Espero haberte ayudado.
P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD

Hola angelhorse,

Estoy siguiendo un metodo parecido al tuyo, es decir lo hago en VB.Net, pero generando el archivo xml de forma manual (es decir son uso objetos generados al importa la referencia al servicio web).
Bueno el tema es que creo tener todo bien pero estoy en un atasco del que no puedo salir y ando ya desesperado, creo que tu me puedes echar un cable.
Tengo el archivo xml correcto y bien formado y con datos reales
Tengo un certificado (en archivo .pfx) correcto y verificado (he hecho envios de otra forma y funciona)
Al final la empresa ha decidido hacerlo todo sin usar los objetos generados al importar la referencia al servicio web, es decir que no tengo un objeto de tipo SuministroLRFacturasEmitidas con el que hacer las usuales lineas:
Código:
     Dim resul As RespuestaLRFEmitidasType
         resul = proxy.SuministroLRFacturasEmitidas(testC)
lo que uso es un objeto System.Net.HttpWebRequest, con el siguiente codigo

Código:
   Dim req As System.Net.HttpWebRequest
      Dim url As String = "*://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
      'inicializar propiedades request--------------------------------
      req = HttpWebRequest.Create(url)
      req.Headers.Add("SOAP:Action")
      req.ContentType = "text/xml;charset=""utf-8"""
      req.Accept = "text/xml"
      req.Method = "POST"
      Dim soapEnvelopeXml As XmlDocument = New XmlDocument()
      'cargar xml desde archivo
      Dim filename As String = "h:\facturaEmitidaMODEL1_1_1.xml"
      soapEnvelopeXml.Load(filename)

      'certificado---------------------------------------------------
      Dim cert As System.Security.Cryptography.X509Certificates.X509Certificate2
      Dim sRutaCert As String = "H:\Certificado.pfx"
      Dim sClaveCert As String = "xy123"
      cert = New System.Security.Cryptography.X509Certificates.X509Certificate2(sRutaCert, sClaveCert)
      req.ClientCertificates.Add(cert)

      'recoger respuesta 1-----------------------------------------
      Dim resp As WebResponse = req.GetResponse()
      Dim reader As StreamReader = New StreamReader(resp.GetResponseStream())
      Dim soapResult As String = reader.ReadToEnd()
Y aqui es donde me quedo totalmente atascado, me da un mensaje super largo, del cual solo posteo lo inicial, que es:

Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="*://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[1304].Fin prematuro del archivo. (-1,-1)</faultstring><detail><callstack>XML no válido o mal formado
Pero por mas que repaso y repaso no veo que el xml no sea valido o este mal formado y sobre el “Fin prematuro de archivo” no he encontrado nada de anda en internet.
¿Qué codigo usas tu para enviarlo?

Muchas gracias por tu ayuda
Saludos

P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD[/quote]
Responder Con Cita
  #12  
Antiguo 12-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 10
CMB Va por buen camino
Cita:
Empezado por jlegido Ver Mensaje

Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="*://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[1304].Fin prematuro del archivo. (-1,-1)</faultstring><detail><callstack>XML no válido o mal formado
Pero por mas que repaso y repaso no veo que el xml no sea valido o este mal formado y sobre el “Fin prematuro de archivo” no he encontrado nada de anda en internet.
¿Qué codigo usas tu para enviarlo?

Muchas gracias por tu ayuda
Saludos

P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD
Para ver si un XML no está bien formado no hay nada como abrirlo con Firefox, y te indicará la línea y la columna donde está el error. Con otros navegadores no lo sé.

Saludos,

Última edición por CMB fecha: 12-03-2017 a las 22:56:19. Razón: Error ortográfico
Responder Con Cita
  #13  
Antiguo 13-03-2017
robinsondemantu robinsondemantu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
robinsondemantu Va por buen camino
Error controlado

Buenos días.

Gracias por toda la información que habéis ido poniendo. Me ha sido de gran utilidad. A ver si me podéis echar una mano o le ha ocurrido a alguien. El caso es que hago la llamada al método para dar de alta facturas emitidas y la AEAT me devuelve el siguiente error:

Codigo[4114].El titular del certificado debe ser el Titular del libro de Registro, Colaborador Social o Apoderado

Me he puesto en contacto con ellos, pero no me contestan. El caso es que hace poco pusieron un enlace para comprobar la identificación fiscal (por Web y por Servicio Web) y me deja pasar con el certificado.

Alguna idea?

Muchas gracias.
Responder Con Cita
  #14  
Antiguo 13-03-2017
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 20
Nasca Va por buen camino
Las pruebas de envío tienen que hacerse con un certificado que corresponda al titular del envío.
Usa tu propio certificado, pero tendrás que poner como titular tu nombre y NIF.
Como es para pruebas, no tiene mayor relevancia.

Pero lo que no podrás es presentar registros de otro titular diferente, salvo que tengas certificado de colaborador social (asesorías) o seas apoderado.
Lo que no creo que sea tu caso, igual que del resto que andamos por aquí.

Última edición por Nasca fecha: 13-03-2017 a las 09:15:46.
Responder Con Cita
  #15  
Antiguo 13-03-2017
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 73
Poder: 10
batuzail Va por buen camino
Cita:
Empezado por robinsondemantu Ver Mensaje
Buenos días.

Gracias por toda la información que habéis ido poniendo. Me ha sido de gran utilidad. A ver si me podéis echar una mano o le ha ocurrido a alguien. El caso es que hago la llamada al método para dar de alta facturas emitidas y la AEAT me devuelve el siguiente error:

Codigo[4114].El titular del certificado debe ser el Titular del libro de Registro, Colaborador Social o Apoderado

Me he puesto en contacto con ellos, pero no me contestan. El caso es que hace poco pusieron un enlace para comprobar la identificación fiscal (por Web y por Servicio Web) y me deja pasar con el certificado.

Alguna idea?

Muchas gracias.
Hola,
El certificado debe ser el del mismo Cif que el que envias las facturas.
Como lo estas haciendo de pruebas en el cif del emisor pon el mismo que el del certificado y te funcionará.

Saludos
Responder Con Cita
  #16  
Antiguo 13-03-2017
robinsondemantu robinsondemantu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
robinsondemantu Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Hola,
El certificado debe ser el del mismo Cif que el que envias las facturas.
Como lo estas haciendo de pruebas en el cif del emisor pon el mismo que el del certificado y te funcionará.

Saludos
Gracias por la respuesta.

Si meto el CIF (he ocultado el válido) en el campo NIF:

_SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = "EMPRESA"
_SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = "AXXXXXXXX"
_SuministroLRFacturasEmitidas.RegistroLRFacturasEmitidas(0).IDFactura.IDEmisorFactura.NIF = "AXXXXXXXX"

Me dice "Valor o tipo incorrecto del campo NIF". ¿Es ahí dónde te refieres?


Gracias.
Responder Con Cita
  #17  
Antiguo 13-03-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Hola CMB
Gracias por la respuesta.
Uso 3 archivos diferentes, pues no se cual puede ser el bueno para hacienda. Los 3 archivos los he validado en Firefox, en Chrome y en http://W**.freeformatter.com/xml-validator-xsd.html y son correctos, pero me sale siempre el mismo error, ahora es:
Cita:
<env:Envelope>
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Codigo[1304].No se permite contenido en el prólogo. (1,1)
</faultstring><detail>
LO esoy enviado (en VB.Net obligatoriamente) con HttpWebRequest.Create(url), quiza sea aquí donde esta el error.

Te adjunto los 3 archivos, para que por lo menos me digas cual es el que tu usarias
Y si alguien lo ha hecho de la misma forma que yo o sabe algo sobre este tipo de error, cualquier ayuda sera bienvenida, por que estoy al limite de todo (tiempo y energia)

Muchas gracias
Archivos Adjuntos
Tipo de Archivo: zip alta_factura.zip (2,7 KB, 163 visitas)
Responder Con Cita
  #18  
Antiguo 13-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 10
CMB Va por buen camino
Cita:
Empezado por jlegido Ver Mensaje
Hola CMB
Gracias por la respuesta.
Uso 3 archivos diferentes, pues no se cual puede ser el bueno para hacienda. Los 3 archivos los he validado en Firefox, en Chrome y en http://W**.freeformatter.com/xml-validator-xsd.html y son correctos, pero me sale siempre el mismo error, ahora es:
Muchas gracias
El fichero llamado alta_factura.xml tiene la estructura correcta. Si le pones los NIFs y nombres de verdad debería aceptártelo. Los otros dos no están bien. Entre otras cosas, les faltan los namespaces.

Saludos,
Responder Con Cita
  #19  
Antiguo 13-03-2017
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 73
Poder: 10
batuzail Va por buen camino
Facturas emitidas en C#

Hola,
Varios me lo habéis pedido por privado, lo pongo aqui a disposición de todos, son las clases necesarias para subir facturas emitidas.

Como pasáis el NIF del emisor en facturas Recibidas?????, a mi solo me aparece una propiedad Item me falta una que sea NIF, en emitidas aparece.
LA clase que me genera del WS contiene:

Cita:
public partial class IDFacturaRecibidaTypeIDEmisorFactura
{

private object itemField;

/// <comentarios/>
[System.Xml.Serialization.XmlElementAttribute("IDOtro", typeof(IDOtroType))]
[System.Xml.Serialization.XmlElementAttribute("NIF", typeof(string))]
public object Item
{
get
{
return this.itemField;
}
set
{
this.itemField = value;
}
}
}
Saludos
Archivos Adjuntos
Tipo de Archivo: rar FacturasEmitidas.rar (11,5 KB, 167 visitas)
Responder Con Cita
  #20  
Antiguo 13-03-2017
vicdeju vicdeju is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 13
Poder: 0
vicdeju Va por buen camino
Cita:
Empezado por jlegido Ver Mensaje
Hola angelhorse,

Estoy siguiendo un metodo parecido al tuyo, es decir lo hago en VB.Net, pero generando el archivo xml de forma manual (es decir son uso objetos generados al importa la referencia al servicio web).
Bueno el tema es que creo tener todo bien pero estoy en un atasco del que no puedo salir y ando ya desesperado, creo que tu me puedes echar un cable.
Tengo el archivo xml correcto y bien formado y con datos reales
Tengo un certificado (en archivo .pfx) correcto y verificado (he hecho envios de otra forma y funciona)
Al final la empresa ha decidido hacerlo todo sin usar los objetos generados al importar la referencia al servicio web, es decir que no tengo un objeto de tipo SuministroLRFacturasEmitidas con el que hacer las usuales lineas:
Código:
     Dim resul As RespuestaLRFEmitidasType
         resul = proxy.SuministroLRFacturasEmitidas(testC)
lo que uso es un objeto System.Net.HttpWebRequest, con el siguiente codigo

Código:
   Dim req As System.Net.HttpWebRequest
      Dim url As String = "*://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
      'inicializar propiedades request--------------------------------
      req = HttpWebRequest.Create(url)
      req.Headers.Add("SOAP:Action")
      req.ContentType = "text/xml;charset=""utf-8"""
      req.Accept = "text/xml"
      req.Method = "POST"
      Dim soapEnvelopeXml As XmlDocument = New XmlDocument()
      'cargar xml desde archivo
      Dim filename As String = "h:\facturaEmitidaMODEL1_1_1.xml"
      soapEnvelopeXml.Load(filename)

      'certificado---------------------------------------------------
      Dim cert As System.Security.Cryptography.X509Certificates.X509Certificate2
      Dim sRutaCert As String = "H:\Certificado.pfx"
      Dim sClaveCert As String = "xy123"
      cert = New System.Security.Cryptography.X509Certificates.X509Certificate2(sRutaCert, sClaveCert)
      req.ClientCertificates.Add(cert)

      'recoger respuesta 1-----------------------------------------
      Dim resp As WebResponse = req.GetResponse()
      Dim reader As StreamReader = New StreamReader(resp.GetResponseStream())
      Dim soapResult As String = reader.ReadToEnd()
Y aqui es donde me quedo totalmente atascado, me da un mensaje super largo, del cual solo posteo lo inicial, que es:

Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="*://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[1304].Fin prematuro del archivo. (-1,-1)</faultstring><detail><callstack>XML no válido o mal formado
Pero por mas que repaso y repaso no veo que el xml no sea valido o este mal formado y sobre el “Fin prematuro de archivo” no he encontrado nada de anda en internet.
¿Qué codigo usas tu para enviarlo?

Muchas gracias por tu ayuda
Saludos

P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD
[/quote]

Buenas tardes,
He estado utilizando el código que has puesto, porque me parece la mejor solución, utilizando un XML que me he generado yo, también me da error al hacer el envío. Lo que no me queda claro de este código, es en que instrucción se le dice al objeto req, que utilice el soapEnvolveXML como documento de envío.
Un saludo y muchas gracias.
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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4524 Hace 3 Días 16:17:40
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 19:52:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi