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 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, tienes que añadir estas líneas
Dim NewStream As Stream = req.GetRequestStream()
soapEnvelopeXml.Save(NewStream)


Antes del getresponse

Asi me ha funcionado correctamente.

Un saludo
Responder Con Cita
  #2  
Antiguo 13-03-2017
JSBB_Z JSBB_Z is offline
Registrado
NULL
 
Registrado: mar 2017
Posts: 6
Poder: 0
JSBB_Z Va por buen camino
Generar xml

Hola vicdeju, yo también estoy siguiendo ese mismo código en VB.NET, pero me falta crear un fichero xml que sea correcto para proceder al envío. Podrías indicarme como lo generas?

Gracias y un saludo
Responder Con Cita
  #3  
Antiguo 05-05-2017
IcuScc IcuScc is offline
Miembro
 
Registrado: abr 2017
Posts: 10
Poder: 0
IcuScc Va por buen camino
Smile

Buenas tardes, tienes que añadir estas líneas
Dim NewStream As Stream = req.GetRequestStream()
soapEnvelopeXml.Save(NewStream)


Antes del getresponse

Asi me ha funcionado correctamente.

Un saludo[/quote]


Gracias. Si así funciona bien....
Responder Con Cita
  #4  
Antiguo 21-03-2017
jonortsal jonortsal is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
jonortsal 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]

Yo he conseguido que funciones con tu código, pero me gustaría capturar el SOAP REQUEST y el SOAP RESPONSE. ¿Qué modificación tendría que hacer en el código?
Responder Con Cita
  #5  
Antiguo 12-06-2017
jordimmcc jordimmcc is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 2
Poder: 0
jordimmcc 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 jlejido, a mi me ocurre lo mismo, ¿has podido resolver el problema?

Un saludo.
Responder Con Cita
  #6  
Antiguo 12-06-2017
Avatar de mrobles
mrobles mrobles is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 115
Poder: 10
mrobles Va por buen camino
Ando usando para validar los NIF las siguientes paginas, pero creo que como comentaron esta mañana, me esta dando errores los caracteres "extraños" como 'º', 'ª', '/', 'ñ' (no se cual realmente). ¿Alguien sabe el listado de caracteres no validos?
https://www1.agenciatributaria.gob.e.../ws/VNifV1SOAP (webservice)
https://www1.agenciatributaria.gob.e...BUGC-JDIT/Cnec (validar CSV)
http://ec.europa.eu/taxation_customs/vies/ (Validar externos)
Responder Con Cita
  #7  
Antiguo 12-06-2017
xamminf xamminf is offline
Miembro
 
Registrado: ene 2017
Posts: 216
Poder: 10
xamminf Va por buen camino
Yo sólo encontré los que he comentado: º ª

Mis temores al respecto ya los expuse en comentario anterior.

Me llama la atención que esto no haya salido antes en el hilo.
Quizás la gente no ha validado con la opción multiple, sino con el simple.
La cosa es que el simple, que lo probé también, me huele que da error si se hacen muchos request seguidos al WS.

Sólo decir que con el tema de la calidad de datos multiple estuve toda una tarde hasta bien entrada la noche para determinar que lo tenía todo cogido con pinzas: cualquier otro caracter extraño hará eclosionar un fault error del WS, el cual no dice qué es exactamente y donde falla.

Cita:
Empezado por mrobles Ver Mensaje
Ando usando para validar los NIF las siguientes paginas, pero creo que como comentaron esta mañana, me esta dando errores los caracteres "extraños" como 'º', 'ª', '/', 'ñ' (no se cual realmente). ¿Alguien sabe el listado de caracteres no validos?
https://www1.agenciatributaria.gob.e.../ws/VNifV1SOAP (webservice)
https://www1.agenciatributaria.gob.e...BUGC-JDIT/Cnec (validar CSV)
http://ec.europa.eu/taxation_customs/vies/ (Validar externos)

Última edición por xamminf fecha: 12-06-2017 a las 17:48:31.
Responder Con Cita
  #8  
Antiguo 12-06-2017
Jaketon Jaketon is offline
Miembro
 
Registrado: abr 2017
Posts: 21
Poder: 0
Jaketon Va por buen camino
Sobre <CuotaDeducible>

Buenas una pregunta a ver si alguien me la puede aclarar en las facturas Recibidas intracomunitarias si nuestra empresa esta inscrita en el ROI( Registro operadores intracomunitarios) en el campo de <sum1:CuotaDeducible> que debemos consignar. Pq en los ejemplo he visto que es 0.00 y no estoy muy seguro.

Saludos.
Responder Con Cita
  #9  
Antiguo 13-06-2017
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.025
Poder: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por mrobles Ver Mensaje
(...) me esta dando errores los caracteres "extraños" como 'º', 'ª', '/', 'ñ' (no se cual realmente). ¿Alguien sabe el listado de caracteres no validos?
No me digáis que esperan ASCII o ISO y no UNICODE (UTF).
Responder Con Cita
  #10  
Antiguo 13-06-2017
jordimmcc jordimmcc is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 2
Poder: 0
jordimmcc Va por buen camino
Caracteres no admitidos

En la impresentable documentación del SII sólo hay esta informarción:
!! No me dejan poner el enlace, pero en la segunda pregunta de cuestiones generales responden: Los permitidos para UTF-8.

Yo personalmente sustituyo los carácteres no admisibles de la tabla que adjunto (x,0) por (x,1).

arrayChars(0, 0) = "Ó"
arrayChars(0, 1) = "a"
arrayChars(1, 0) = "Ë"
arrayChars(1, 1) = "O"
arrayChars(2, 0) = "Ð"
arrayChars(2, 1) = "Ñ"
arrayChars(3, 0) = "±"
arrayChars(3, 1) = "ñ"
arrayChars(4, 0) = "¬"
arrayChars(4, 1) = "ª"
arrayChars(5, 0) = "Ã"
arrayChars(5, 1) = "Ç"
arrayChars(6, 0) = "¾"
arrayChars(6, 1) = "o"
arrayChars(7, 0) = "Ý"
arrayChars(7, 1) = "i"
arrayChars(8, 0) = "þ"
arrayChars(8, 1) = "ç"
arrayChars(9, 0) = "ß"
arrayChars(9, 1) = "a"
arrayChars(10, 0) = "³"
arrayChars(10, 1) = "u"
arrayChars(11, 0) = "Ú"
arrayChars(11, 1) = "e"
arrayChars(12, 0) = "ð"
arrayChars(12, 1) = "Ñ"
arrayChars(13, 0) = "†"
arrayChars(13, 1) = "."

Un saludo.
Responder Con Cita
  #11  
Antiguo 13-06-2017
Avatar de mrobles
mrobles mrobles is offline
Miembro
NULL
 
Registrado: may 2017
Posts: 115
Poder: 10
mrobles Va por buen camino
Cita:
Empezado por xamminf Ver Mensaje
Yo sólo encontré los que he comentado: º ª

Mis temores al respecto ya los expuse en comentario anterior.

Me llama la atención que esto no haya salido antes en el hilo.
Quizás la gente no ha validado con la opción multiple, sino con el simple.
La cosa es que el simple, que lo probé también, me huele que da error si se hacen muchos request seguidos al WS.

Sólo decir que con el tema de la calidad de datos multiple estuve toda una tarde hasta bien entrada la noche para determinar que lo tenía todo cogido con pinzas: cualquier otro caracter extraño hará eclosionar un fault error del WS, el cual no dice qué es exactamente y donde falla.
Cita:
Empezado por Ñuño Martínez Ver Mensaje
No me digáis que esperan ASCII o ISO y no UNICODE (UTF).
Cita:
Empezado por jordimmcc Ver Mensaje
En la impresentable documentación del SII sólo hay esta informarción:
!! No me dejan poner el enlace, pero en la segunda pregunta de cuestiones generales responden: Los permitidos para UTF-8.

Yo personalmente sustituyo los carácteres no admisibles de la tabla que adjunto (x,0) por (x,1).

arrayChars(0, 0) = "Ó"
arrayChars(0, 1) = "a"
arrayChars(1, 0) = "Ë"
arrayChars(1, 1) = "O"
arrayChars(2, 0) = "Ð"
arrayChars(2, 1) = "Ñ"
arrayChars(3, 0) = "±"
arrayChars(3, 1) = "ñ"
arrayChars(4, 0) = "¬"
arrayChars(4, 1) = "ª"
arrayChars(5, 0) = "Ã"
arrayChars(5, 1) = "Ç"
arrayChars(6, 0) = "¾"
arrayChars(6, 1) = "o"
arrayChars(7, 0) = "Ý"
arrayChars(7, 1) = "i"
arrayChars(8, 0) = "þ"
arrayChars(8, 1) = "ç"
arrayChars(9, 0) = "ß"
arrayChars(9, 1) = "a"
arrayChars(10, 0) = "³"
arrayChars(10, 1) = "u"
arrayChars(11, 0) = "Ú"
arrayChars(11, 1) = "e"
arrayChars(12, 0) = "ð"
arrayChars(12, 1) = "Ñ"
arrayChars(13, 0) = "†"
arrayChars(13, 1) = "."

Un saludo.

La cosa esta en que "creo" que individualmente desde el webservice si que acepta los datos bien, pero no están registrados como "Mª Antonia" sino "María Antonia", pero para validar excels y demás falla de manera impresionante todo. De hecho en el archivo que devuelve, me devuelve un archivo csv separado por ";" y me sustituye las "Ñ" por "ş" con lo que me crea inconscientemente otra columna. Ademas creo que no funciona bien, dado que algunos en el campo donde me debería poner si esta o no esta admitido, me vuelve a poner el NIF (y eso sin hablar de que la mitad de las veces es inaccesible o esta caído el servicio)
Responder Con Cita
  #12  
Antiguo 13-06-2017
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 297
Poder: 10
manelb Va por buen camino
Cita:
Empezado por jordimmcc Ver Mensaje
En la impresentable documentación del SII sólo hay esta informarción:
!! No me dejan poner el enlace, pero en la segunda pregunta de cuestiones generales responden: Los permitidos para UTF-8.
Yo estoy utilizando la siguiente función que, creo recordar, encontré por aquí en el foro
Código Delphi [-]
{------------------------------------------------------------------------------
 TEnvioFacturas.OStripAccents

  Elimina los caracteres no validos para UTF-8
 ----------------------------------------------------------------------------- }

function TEnvioFacturas.OStripAccents(const aStr: String): String;
type
  USASCIIString = type AnsiString(20127);//20127 = us ascii
begin
  Result := String(USASCIIString(aStr));
end;
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:51:05.


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