![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#3341
|
|||
|
|||
Cita:
A ver si alguien hace un resumen antes de que lo leamos. |
#3342
|
|||
|
|||
Cita:
|
#3343
|
|||
|
|||
cambio esquema
Señores,
ya han actualizado el esquema de envio con los nuevos cambios en cabecera y registroalta/registroanulacion etc Si intentais enviar con el anterior da error. |
#3344
|
|||
|
|||
Inicio verifactu
Veremos si el inicio de verifactu se retrasa hasta el 29-07-2025 o se indica un plazo posterior
|
#3345
|
||||
|
||||
No sé por qué motivo no me importa el .wsdl. ¿Hay algo especial que hacer? porque lo que hago es (Delphi Berlin): Component-Import WSDL, poner la url del wsdl y darle "palante" hasta el final, también he probado poniendo que use el SOAP 1.2 y nada, me da este error:
![]() Gracias y un saludo.
__________________
Be water my friend. |
#3346
|
|||
|
|||
El certificado no es correcto, o no se ha seleccionado correctamente
Cita:
Entiendo que con lo de "cir", te refieres al nif. ¿No? El certificado es el mío personal - de la FNMT - y las pruebas las estoy realizando con un emisor de facturas con mi nombre y NIF. Pero el error, es el que comento con código 403 - El certificado no es correcto, o no se ha seleccionado correctamente. Creo que el error, no es en la validación del XML como tal, porque ni llega a validarlo. No devuelve un XML de respuesta de error... sino un HTML, como código de error de ese tipo. Les consulté, y me contestaron que en ese tipo de errores, devolvían un HTML (la misma página de error que si conectas a sus servicios, y no te validas). Al existir un error previo a la validación del XML (de certificado según ellos), creo que ni siquera valida Y es que no se me ocurre nada más, ya que entiendo que solamente hay que instalar dicho certificado en el almacén Personal. Al menos en TicketBai, funciona correctamente así desde siempre. Muchas gracias |
#3347
|
|||
|
|||
Cita:
Entonces no se me ocurre otra cosa que no sea que hay algún error en la llamada desee donde lees el certificad, que el firewall esté cortando algo o tengas desactivado algo de llamadas tsl.. |
#3348
|
|||
|
|||
Cita:
|
#3349
|
|||
|
|||
otra curiosidad
Sobre lo que acaban de publicar en el boe:
sobre el hash anterior lo que tiene que ir en la HuellaAnterior: Cita:
|
#3350
|
|||
|
|||
A ver si alguien puede consultar esto
Hola, los que trabajamos en programas de escritorio tenemos aqui un problema:
Cita:
Por favor que alguien haga la consulta, yo los tengo bombardeados. Me respondo: Si no hay conexion ya hay que marcar incidencia pase lo que pase. |
#3351
|
|||
|
|||
Cita:
|
#3352
|
||||
|
||||
Cita:
Gracias pero me dice que no existe la url: https://www2.agenciatributaria.gob.e...cturacion.wsdl sin embargo la de preproducción si que existe: https://prewww2.aeat.es/static_files...cturacion.wsdl ¿Alguien se ha descargado ya el fichero? Saludos.
__________________
Be water my friend. |
#3353
|
|||
|
|||
No pone nada de plazos ? no lo veo
|
#3354
|
|||
|
|||
probablemente lo dirán en la reunión de ahora
|
#3355
|
|||
|
|||
Cita:
Cita:
Se me ocurre que si no puedo verificar la fecha que no emita la factura aunque deje facturar hasta que se solucione y pongo el mensaje ese que dicen que hay problemas. Última edición por ermendalenda fecha: 28-10-2024 a las 12:17:45. |
#3356
|
|||
|
|||
Cita:
Me refiero en las cabeceras del xml en referencia a los XSD has puesto el prewww2. y es www2.agenciatributaria.gob.es/ |
#3357
|
||||
|
||||
Cita:
En el App.config teneis que poner que usais la identificacion con certificado, asi: Cita:
Código:
<client> <endpoint address="https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV2SOAP" binding="basicHttpBinding" bindingConfiguration="VNifV2SoapBinding" contract="ChecaNifsActivos.VNifV2" name="VNifPort1" /> <endpoint address="https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP" binding="basicHttpBinding" bindingConfiguration="sfVerifactu" contract="ServicioVerifactu.sfPortTypeVerifactu" name="SistemaVerifactuPruebas" /> <endpoint address="https://prewww10.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP" binding="basicHttpBinding" bindingConfiguration="sfVerifactu1" contract="ServicioVerifactu.sfPortTypeVerifactu" name="SistemaVerifactuSelloPruebas" /> </client> <bindings> <basicHttpBinding> <binding name="VNifV2SoapBinding"> <security mode="Transport"> <transport clientCredentialType="Certificate" /> </security> </binding> <binding name="VNifV2SoapBinding1" /> <binding name="sfVerifactu"> <security mode="Transport"> <transport clientCredentialType="Certificate" /> </security> </binding> <binding name="sfVerifactu1"> <security mode="Transport"> <transport clientCredentialType="Certificate" /> </security> </binding> <binding name="sfVerifactu2" /> <binding name="sfRequerimiento" /> </basicHttpBinding> <customBinding> <binding name="sfVerifactu"> <textMessageEncoding messageVersion="Soap11" writeEncoding="utf-8" /> <httpsTransport /> </binding> </customBinding> </bindings> Código:
public static X509Certificate2 ElegirCertificado() { try { X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates; X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false); X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Selección de Certificados", "Seleccione un certificado de la lista para firmar la factura electrónica", X509SelectionFlag.SingleSelection); X509Certificate2Enumerator Certificado = scollection.GetEnumerator(); X509Certificate2 cert = new X509Certificate2(); if (scollection.Count > 0) { X509Certificate2Enumerator en = scollection.GetEnumerator(); en.MoveNext(); cert = en.Current; if (DateTime.Now > cert.NotAfter) { throw new Exception("Certificado caducado"); } else { return cert; } } if (fcollection.Count == 0) { MessageBox.Show("No hay certificados electrónicos instalados en tu equipo"); } else { if (scollection.Count == 0) { MessageBox.Show("No has seleccionado ningún certificado"); } } store.Close(); var temp = scollection.OfType<X509Certificate2>(); var cert1 = scollection.OfType<X509Certificate2>().Where(x => x.Subject == "CN=FNMT-RCM").First(); // + Program.configTaller.NombreTaller).First(); return cert; } catch (Exception ex) { // throw ex; } //X509Store store = new X509Store(StoreLocation.CurrentUser); //store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); //X509Certificate2Collection certificates = store.Certificates; //X509Certificate2Collection foundCertificates = certificates.Find(X509FindType.FindByTimeValid, DateTime.Now, false); //var cert = foundCertificates.OfType<X509Certificate>().Where(x => x.Subject == "CN="+Program.configTaller.NombreTaller).First(); return null; } Luego simplemente lo exportamos a bytes con una contraseña por nuestra seguridad. Código:
var certificado = ConfigDB.ElegirCertificado();// CertificadoSeleccionado(); if(null != certificado) { string caducidad = certificado.GetExpirationDateString(); Program.certificado = certificado.Export(X509ContentType.Cert, Program.passcertificado);<-- Este es el password que usaremos para guardar/usar el certificado. txtCaducidad.Text = caducidad; ConfigDB.ActualizarCertificado(1, Program.certificado, caducidad); } |
#3358
|
||||
|
||||
Cita:
Pues perdóname pero no acabo de enterarme. Entiendo que para generar el nuevo "Sistemafacturacion.pas" tengo que importar el nuevo .wsdl que está en: https://prewww2.aeat.es/static_files...cturacion.wsdl y he probado como me dices con: https://www2.aeat.es/static_files/co...cturacion.wsdl y me dice que no existe.
__________________
Be water my friend. |
#3359
|
|||
|
|||
Cita:
Código PHP:
Sé que ha habido cambios en el wsdl hace 3 dias, asegurate que sea la última version. |
#3360
|
|||
|
|||
Cita:
Hay que pasar todos los esquemas involucrados en un determinado WSDL, y dejar los HTML en el mismo repertorio. La transformación que uso está derivada de una que encontró hace años (y tiene aún más años) y que creo es de uso libre. Código:
<?xml version="1.0" encoding="UTF-8"?> <!-- Stylesheet for NHSiS Schemas - David Brazier 17/11/00 Work in progress, free for use as-is. (C) Common Services Agency 2000 Modifications (C) 2017-2024 Antoine Leca (free to use) --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsl:output encoding="UTF-8"/> <xsl:strip-space elements="*"/> <xsl:template match="xsd:schema"> <html> <head> <title>Schema: <xsl:value-of select="@targetNamespace"/> </title> </head> <style> table { border-collapse: collapse } td { vertical-align: top } </style> <!-- for testing: td { border: 1px solid blue; vertical-align: top } --> <body> <h3>Schema: <xsl:value-of select="@targetNamespace"/></h3> <p>Version: <xsl:value-of select="@version"/> </p> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="xsd:import"> <hr/> <i>Import Schema <xsl:value-of select="@namespace"/> from <a> <xsl:attribute name="href"> <xsl:value-of select="@schemaLocation"/>.html </xsl:attribute> {<xsl:value-of select="@schemaLocation"/>} </a> </i> </xsl:template> <xsl:template match="xsd:element"> <xsl:if test="..=/"> <hr/> </xsl:if> <table> <tr> <td colspan="2"> <b> <xsl:value-of select="@name"/> </b> <xsl:if test="@type"> : <a> <!-- <xsl:variable name="prefix" select="substring-before(name(), concat(':', local-name()) )"/> --> <xsl:variable name="prefix" select="substring-before(@type,':')"/> <xsl:variable name="ns" select="namespace::*[name()=$prefix]"/> <!-- bug if name(.) contains a namespace... (= if #default namespace is NOT xsd) Could check that namespace::*[name()=''] == "http://www.w3.org/2001/XMLSchema" BUGBUG following does not work (double declaration?) <xsl:choose> <xsl:when test="contains(name(), ':')"> <xsl:variable name="ns0" select="namespace::*[substring-after(name(.),':')=$prefix]"/> </xsl:when> <xsl:otherwise> <xsl:variable name="ns" select="namespace::*[name()=$prefix]"/> </xsl:otherwise> </xsl:choose> --> <xsl:choose> <xsl:when test="@type = 'string' or @type = 'double' "> <b><xsl:value-of select="@type"/></b> </xsl:when> <xsl:when test="not($prefix)"> <xsl:attribute name="href">#<xsl:value-of select="@type"/></xsl:attribute> <b>!<xsl:value-of select="@type"/>!</b> </xsl:when> <xsl:when test="$ns=/xsd:schema/@targetNamespace"> <xsl:attribute name="href">#<xsl:value-of select="substring-after(@type,':')"/></xsl:attribute> </xsl:when> <xsl:when test="/xsd:schema/xsd:import[@namespace=$ns]"> <xsl:attribute name="href"><xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>.html#<xsl:value-of select="substring-after(@type,':')"/></xsl:attribute> {<xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>} </xsl:when> </xsl:choose> <xsl:value-of select="substring-after(@type,':')"/> </a> </xsl:if> (<xsl:choose> <xsl:when test="@minOccurs"><xsl:value-of select="@minOccurs"/></xsl:when> <xsl:otherwise>1</xsl:otherwise> </xsl:choose>-<xsl:choose> <xsl:when test="@maxOccurs"><xsl:value-of select="@maxOccurs"/></xsl:when> <xsl:otherwise>1</xsl:otherwise> </xsl:choose>) </td> </tr> <tr> <td width="25"/> <td> <xsl:apply-templates select="*"/> </td> </tr> </table> </xsl:template> <xsl:template match="xsd:simpleType"> <xsl:if test="..=/"> <hr/> </xsl:if> <table> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <tr> <td colspan="2"> <i>type </i><b> <xsl:value-of select="@name"/> </b>: <xsl:value-of select="@type"/> </td> </tr> <tr> <td width="25"/> <td> <xsl:apply-templates select="*"/> </td> </tr> </table> </xsl:template> <xsl:template match="xsd:complexType"> <xsl:if test="..=/"> <hr/> </xsl:if> <table> <xsl:if test="@name"> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <tr> <td colspan="2"> <i>type </i><b> <xsl:value-of select="@name"/> </b>: <xsl:value-of select="@type"/> </td> </tr> </xsl:if><!-- test="@name" --> <tr> <td width="25"/> <td> <xsl:apply-templates select="*"/> </td> </tr> </table> </xsl:template> <xsl:template match="xsd:sequence"> <xsl:if test="..=/"> <hr/> </xsl:if> <table> <tr> <td width="25" style="border-right: 1px solid black"/> <td> <xsl:apply-templates select="*"/> </td> </tr> </table> </xsl:template> <xsl:template match="xsd:choice"> <xsl:if test="..=/"> <hr/> </xsl:if> <table> <tr> <td width="25" style="vertical-align: middle; border-right: double black"> choice </td> <td> <xsl:apply-templates select="*"/> </td> </tr> </table> </xsl:template> <xsl:template match="xsd:extension"> <i>extends </i> <xsl:variable name="prefix" select="substring-before(@base,':')"/> <xsl:variable name="ns" select="namespace::*[name()=$prefix]"/> <a> <xsl:choose> <xsl:when test="@base = 'string' or @base = 'double' "> <!-- bug: missing @href; can we simply drop it? --> <b><xsl:value-of select="@base"/></b> </xsl:when> <xsl:when test="not($prefix)"> <xsl:attribute name="href">#<xsl:value-of select="@base"/></xsl:attribute> <xsl:value-of select="@base"/> </xsl:when> <xsl:when test="$ns=/xsd:schema/@targetNamespace"> <xsl:attribute name="href">#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute> <xsl:value-of select="substring-after(@base,':')"/> </xsl:when> <xsl:when test="/xsd:schema/xsd:import[@namespace=$ns]"> <xsl:attribute name="href"><xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>.html#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute> {<xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>} <xsl:value-of select="substring-after(@base,':')"/> </xsl:when> </xsl:choose> </a> <xsl:apply-templates select="*"/> </xsl:template> <xsl:template match="xsd:restriction"> <xsl:choose> <xsl:when test="contains(@base, ':')"> <xsl:variable name="prefix" select="substring-before(@base,':')"/> <xsl:variable name="ns" select="namespace::*[name()=$prefix]"/> <i>is new </i> <a> <xsl:choose> <xsl:when test="@base = 'string' or @base = 'double' "> <b><xsl:value-of select="@base"/></b> </xsl:when> <xsl:when test="not($prefix)"> <xsl:attribute name="href">#<xsl:value-of select="@base"/></xsl:attribute> <xsl:value-of select="@base"/> </xsl:when> <xsl:when test="$ns=/xsd:schema/@targetNamespace"> <xsl:attribute name="href">#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute> <xsl:value-of select="substring-after(@base,':')"/> </xsl:when> <xsl:when test="/xsd:schema/xsd:import[@namespace=$ns]"> <xsl:attribute name="href"><xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>.html#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute> {<xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>} <xsl:value-of select="substring-after(@base,':')"/> </xsl:when> </xsl:choose> </a> </xsl:when> <xsl:when test="./xsd:enumeration"> <!-- nothing --> </xsl:when> <xsl:otherwise> <i><<xsl:value-of select="@base"/>></i> </xsl:otherwise> </xsl:choose> <xsl:apply-templates select="*"/> </xsl:template> <xsl:template match="xsd:length"> [<xsl:value-of select="@value"/>] </xsl:template> <xsl:template match="xsd:minLength"> [<xsl:value-of select="@value"/> .. </xsl:template> <xsl:template match="xsd:maxLength"> <!-- add [0.. if there are no minLength --> <xsl:if test="not(../xsd:minLength)">[0..</xsl:if> <xsl:value-of select="@value"/>] </xsl:template> <xsl:template match="xsd:enumeration"> "<xsl:value-of select="@value"/>" <xsl:apply-templates select="*"/> </xsl:template> <xsl:template match="xsd:pattern"> <i> like </i>/<xsl:value-of select="@value"/>/ <xsl:apply-templates select="*"/> </xsl:template> <xsl:template match="xsd:annotation"> <xsl:for-each select="xsd:documentation"> <small> <xsl:value-of select="."/> </small> <br/> </xsl:for-each> <xsl:for-each select="xsd:appinfo"> <small> <i> <xsl:value-of select="."/> </i> </small> <br/> </xsl:for-each> </xsl:template> </xsl:stylesheet> |
![]() |
|
|
![]() |
||||
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 |
![]() |
|