![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Empezamos bien
"Certificado: Las aplicaciones que envían información a los servicios web deberán autenticarse con certificado electrónico cualificado reconocido." Cual usamos? Código:
<!-- VERIFACTU. Entorno de PRUEBAS -->
<wsdl:port name="SistemaVerifactuPruebas" binding="sfWdsl:sfVerifactu">
<soap:address location="https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP"/>
</wsdl:port>
<!-- VERIFACTU. Entorno de PRUEBAS para acceso con certificado de sello -->
<wsdl:port name="SistemaVerifactuSelloPruebas" binding="sfWdsl:sfVerifactu">
<soap:address location="https://prewww10.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP"/>
</wsdl:port>
|
|
#2
|
|||
|
|||
|
Cita:
El primero es el normal, con un certificado que va a nombre de un particular, de un autónomo, o de un representante de una empresa. O siga, ¡será tu caso! El segundo caso usa otro tipo de certificados, de sello, que son certificados «machine-to-machine». Qué cuentan bastante más. Típicamente en Windows, los primeros deberían estar en cert:\CurrentUser\MY y se manejan con certmgr.msc; y los segundos estarán en cert:\LocalMachine\MY y se manejan con certlm.msc. Debería ser. ![]() |
|
#3
|
|||
|
|||
|
Ya he mandado la primera factura de prueba y con respuesta para poder sacar conclusiones y seguir con mas pruebas...
Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body Id="Body"><tikR:RespuestaRegFactuSistemaFacturacion xmlns:tik="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:tikR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"><tikR:Cabecera><tik:ObligadoEmision><tik:NombreRazon>PEPITO DE LOS PALOTES</tik:NombreRazon><tik:NIF>12345678K</tik:NIF></tik:ObligadoEmision></tikR:Cabecera><tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio><tikR:EstadoEnvio>Incorrecto</tikR:EstadoEnvio><tikR:RespuestaLinea><tikR:IDFactura><tik:IDEmisorFactura>12345678K</tik:IDEmisorFactura><tik:NumSerieFactura>1.1.3.1</tik:NumSerieFactura><tik:FechaExpedicionFactura>09-04-2024</tik:FechaExpedicionFactura></tikR:IDFactura><tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro><tikR:CodigoErrorRegistro>1109</tikR:CodigoErrorRegistro><tikR:DescripcionErrorRegistro>El NIF no esta identificado. NIF:A12345678</tikR:DescripcionErrorRegistro></tikR:RespuestaLinea></tikR:RespuestaRegFactuSistemaFacturacion> </env:Body></env:Envelope> O sea, que si TODO va como debería, en un ambiente "normal" no debería de haber problemas. Ahora se va a tratar de enviar facturas de prueba con datos más reales... Pero la rueda ya está en marcha!!! |
|
#4
|
|||
|
|||
|
lo que me sorprende es que sin darte de alta en ningún sitio, puedes mandar con un certificado tus registros de pruebas, pero bueno, al menos ya se puede enviar algo y obtener resultados.
Seguimos con las pruebas, gracias compañeros/as |
|
#5
|
|||
|
|||
|
Claro: el certificado dice quién está dado de alta: ¡identifica a un NIF! (o a un representante autorizado en caso de los colaboradores).
|
|
#6
|
|||
|
|||
|
Cita:
Aquí cualquiera puede enviar con un certificado! No se , me parece raro... pero bueno, es lo que hay Al menos ya veo a compañeros que les ha dado el OK ![]() |
|
#7
|
|||
|
|||
|
Cita:
Como el SIF será OBLIGATORIO si o SI, pues toda empresa o autónomo podrá enviar registros a VERIFACTU. Por ahí debe de ir el tema. |
|
#8
|
|||
|
|||
|
Cita:
Otra cosa es el portal oficial, dónde aquí sí debes estar dado de alta en IVA y haber solicitado la acogida al SII si no es grande empresa. Supongo que otros sistemas con ámbito más restringido pueden permitirse un control de los operadores de pruebas, cosa no tan sencilla para los sistemas con más envergadura. Además, el SII como Verifactu no paran de ser servicios de registro (en sentido custodia) de documentos. Solo el titular del certificado, sus representantes y Hacienda pueden ver los documentos, y nadie hace nada con los que están en el servicio de pruebas. Verifactu es un poco peculiar en el sentido que se puede confirmar (o no) una referencia a un documento (sabiendo su importe y su fecha), por medio de la URL del QR. Pero está estudiado para que no vulnere privacidad (y de un punto de vista de seguridad, me parece bien el hecho que se puedan hacer pruebas, así los white hats pueden probar el sistema de Hacienda y detectar posibles fallos). |
|
#9
|
|||
|
|||
|
Envio sin errores
Buenas,
Solo comentaros que el servicio funciona perfectamente. Ya consegui enviar sin errores. La direccion es la del post que viene mas arriba de sglorka ( https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP). La peticion soap la he firmado con mi certificado personal. Me he tranquilizado muchisimo despues de ver mi primer "OK" ( lo estaba pasando realmente mal ) Gracias a todos. Os estoy muy agradecido. No podria haber hecho sin vuestra ayuda!! |
|
#10
|
|||
|
|||
|
Cita:
Código:
<sum1:Encadenamiento> <sum1:RegistroAnterior> <sum1:IDEmisorFactura>AAAA</sum1:IDEmisorFactura> <sum1:NumSerieFactura>44</sum1:NumSerieFactura> <sum1:FechaExpedicionFactura>13-09-2024</sum1:FechaExpedicionFactura> <sum1:Huella>HuellaRegistroAnterior</sum1:Huella> </sum1:RegistroAnterior> </sum1:Encadenamiento> Gracias. |
|
#11
|
||||
|
||||
|
Cita:
|
|
#12
|
|||
|
|||
|
¿Sin el nodo <Encadenamiento> ???
¿Con el nodo encadenamiento y sin nodo <RegistroAnterior>??? Con el nodo <Encadenamiento> y <RegistroAnterior> Código:
El XML no cumple el esquema. Falta informar campo obligatorio.: PrimerRegistro</faultstring><detail><callstack>El XML no cumple el esquema. Falta informar campo obligatorio.: PrimerRegistro WSExcepcion Ahora por lo visto no me cuadra el cálculo de la huella. A ver que más me sale!!! Última edición por xevi fecha: 27-09-2024 a las 10:10:22. |
|
#13
|
|||
|
|||
|
Cita:
Si tienes algo de código fuente de como lo envías y lo compartes pues te estaríamos eternamente agradecidos. Gracias. |
|
#14
|
|||
|
|||
|
Cita:
Public Function validarCertificado(ByVal sender As Object, ByVal certificado As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal cadena As System.Security.Cryptography.X509Certificates.X509Chain, ByVal sslErrores As System.Net.Security.SslPolicyErrors) As Boolean Return True End Function Por cierto... no es necesario que firmes el xmk. Tan solo firmar la peticion con tu certificado pfx un saludo Public Function SendSOAPRequest(ByVal soapRequest As String, ByVal url As String, ByVal certificatePath As String, ByVal certificatePassword As String) As String Dim soapResponse As String = Nothing Try System.Net.ServicePointManager.SecurityProtocol = DirectCast(3072, System.Net.SecurityProtocolType) System.Net.ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf validarCertificado) ' solicitud = DirectCast(System.Net.HttpWebRequest.Create(target), System.Net.HttpWebRequest) ' solicitud.Timeout = 2500 ' Crear la solicitud web Dim webRequest As HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(url), System.Net.HttpWebRequest) webRequest.Timeout = 2500 ' webRequest.Headers.Add("SOAPAction", "AltaFactuSistemaFacturacion") webRequest.ContentType = "text/xml;charset=""utf-8""" webRequest.Accept = "text/xml" webRequest.Method = "POST" ' Configurar el certificado Dim certificate As X509Certificate2 = New X509Certificate2(certificatePath, certificatePassword) webRequest.ClientCertificates.Add(certificate) ' Escribir la solicitud SOAP en el flujo de la solicitud web Using streamWriter As StreamWriter = New StreamWriter(webRequest.GetRequestStream()) streamWriter.Write(soapRequest) streamWriter.Flush() streamWriter.Close() End Using ' Obtener la respuesta Using webResponse As WebResponse = webRequest.GetResponse() Using streamReader As StreamReader = New StreamReader(webResponse.GetResponseStream()) soapResponse = streamReader.ReadToEnd() End Using End Using Catch ex As Exception ' Manejar errores MsgBox("Error en la solicitud SOAP: " & ex.Message) Return "Error en la solicitud SOAP: " & ex.Message End Try Return soapResponse End Function ' el siguiente botón hace la petición al servicio Private Sub peticion_Click(sender As System.Object, e As System.EventArgs) Handles peticion.Click Dim client As New SOAPClient() ' Ruta al archivo de certificado y contraseña del certificado Dim certificatePath As String = "D:\documentos\certificado.pfx" Dim certificatePassword As String = "xxxxxxxxxx" ' URL del servicio web SOAP Dim url As String = "https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP" ' en textbox1 meto el xml que previamente he generado Dim soapRequest As String = TextBox1.Text ' Enviar la solicitud SOAP Dim soapResponse As String = client.SendSOAPRequest(soapRequest, url, certificatePath, certificatePassword) ' en respuesta.xml meto la respuesta My.Computer.FileSystem.WriteAllText("respuesta.xml", soapResponse, False) ' Manejar la respuesta SOAP End Sub No hace falta firmar el xml, tan solo la peticion con tu certificado pfx Última edición por jlmoli_67 fecha: 27-09-2024 a las 19:52:08. Razón: Aclaracion |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 11:05:35 |
| Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 12:18:32 |
| Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 14:58:09 |
| Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 14:44:54 |
| Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 21:59:09 |
|