Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


CARTA PORTE V3.1

ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03


.

Valida CFD y caracteres especiales.

La Razon de ser de este sitio, aqui va a ver anuncios, comentarios dudas y quejas de este programa de validacion de Comprobantes Fiscales Digitales.
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Valida CFD y caracteres especiales.

Mensaje por dcerick »

// En el caso del & se deberá usar la secuencia &

// En el caso del “ se deberá usar la secuencia "

// En el caso del < se deberá usar la secuencia <

// En el caso del > se deberá usar la secuencia >

// En el caso del ‘ se deberá usar la secuencia &apos;


Hola Mr Dado,


Estoy validando en ValidaCFD el CFDi que adjunto (ojo es de prueba) y noto que no está calculando el apostrofo en base a la secuencia &apos; me pone la siguiente cadena original:
||3.0|2011-03-04T13:29:07|ingreso|Pago en una sola exhibición|700.00|812.00|TSY0903048C8|Try System, S.A. de C.V.|Alvaro Obregon|37|3>|Col. Roma Norte|Nuevo Leon|Monterrey|Nuevo Leon|Mexico|95460|Alvaro Obregon|37|3>|Col. Roma Norte|Nuevo Leon|Monterrey|Nuevo Leon|Mexico|95460|CAUR390312S87|Juan & José & "Niño"|Topochico|52|A&apos;B|Jardines del Valle|Nuevo Leon|Monterrey|Nuevo Leon|Mexico|64001|5|PZA|PCLOKA|COMPUTADORA & GENERI&apos;CA|100.00|500.00|1|PAR|SANDALIA|SANDALIA PLAYA|200.00|200.00|IVA|16.00|112.00||
Por otro lado yo dejo mi cadena original así:
||3.0|2011-03-04T13:45:05|ingreso|Pago en una sola exhibición|700.00|812.00|TSY0903048C8|Try System, S.A. de C.V.|Alvaro Obregon|37|3>|Col. Roma Norte|Nuevo Leon|Monterrey|Nuevo Leon|Mexico|95460|Alvaro Obregon|37|3>|Col. Roma Norte|Nuevo Leon|Monterrey|Nuevo Leon|Mexico|95460|CAUR390312S87|Juan & José & "Niño"|Topochico|52|A&apos;B|Jardines del Valle|Nuevo Leon|Monterrey|Nuevo Leon|Mexico|64001|5|PZA|PCLOKA|COMPUTADORA & GENERI&apos;CA|100.00|500.00|1|PAR|SANDALIA|SANDALIA PLAYA|200.00|200.00|IVA|16.00|112.00||
Como puedes ver, yo no estoy poniendo tal cual el contendio del XML, pero pues el ValidaCFD me dice:
El sello del Emisor SI es valido
Se uso SHA-1 para sellar y el CFD es del 2011 o posterior - OK
Yo ahorita no sé si aplicar un parser a mi cadena original para que deje los & < > " ' tal cual y no con la secuencia de escape, pero pues por lo pronto te dejo le detalle con el apostrofo.

Saludos,
erick.aragon @ live.com.mx
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: Valida CFD y caracteres especiales.

Mensaje por acanas »

Yo le hago así:

Código: Seleccionar todo

/// <summary>
        /// Metodo para validar cadenas para XML segun W3C
        /// </summary>
        /// <param name="strValor">Cadena de entrada para analizar</param>
        /// <returns>Cadena procesada</returns>
        public string ValidaXmlW3G(string strValor)
        {
            if (String.IsNullOrEmpty(strValor))
                return String.Empty;
            //Validar los caracteres de entrada para que puedan ser usados en XML segun los parametros
            //establecidos por el www.w3.org.

            /* En el caso del & se deberá usar la secuencia &
             En el caso del “ se deberá usar la secuencia "
             En el caso del < se deberá usar la secuencia <
             En el caso del > se deberá usar la secuencia >
             En el caso del ‘ se deberá usar la secuencia &apos;
            Ejemplos:
            Para representar nombre=“Juan & José & “Niño”” se usará nombre=”Juan & José &
            "Niño"”*/

            //&amp &
            if (strValor.Contains("&"))
                strValor = strValor.Replace("&", "&amp");

            //&quot "
            if (strValor.Contains("\""))
                strValor = strValor.Replace("\"", "&quot");


            //&lt <
            if (strValor.Contains("<"))
                strValor = strValor.Replace("<", "&lt");

            //&gt >
            if (strValor.Contains(">"))
                strValor = strValor.Replace(">", "&gt");

            //&apos `
            if (strValor.Contains("`"))
                strValor = strValor.Replace("`", "&apos");
            strValor = strValor.Trim();
            return strValor;
        }

        /// <summary>
        /// Metodo para reconvertir caracteres modificados aptos para XML a su valor original
        /// </summary>
        /// <param name="strValor">Cadena de entrada para analizar</param>
        /// <returns>Cadena procesada</returns>
        public string ReverseXmlW3G(string strValor)
        {
            if (String.IsNullOrEmpty(strValor))
                return String.Empty;
            //Validar los caracteres de entrada para que puedan ser usados en XML segun los parametros
            //establecidos por el www.w3.org.

            /* En el caso del & se deberá usar la secuencia &
             En el caso del “ se deberá usar la secuencia "
             En el caso del < se deberá usar la secuencia <
             En el caso del > se deberá usar la secuencia >
             En el caso del ‘ se deberá usar la secuencia &apos;
            Ejemplos:
            Para representar nombre=“Juan & José & “Niño”” se usará nombre=”Juan & José &
            "Niño"”*/

            //&amp &
            if (strValor.Contains("&amp"))
                strValor = strValor.Replace("&amp", "&");

            //&quot "
            if (strValor.Contains("&quot"))
                strValor = strValor.Replace("&quot", "\"");

            //&lt <
            if (strValor.Contains("&lt"))
                strValor = strValor.Replace("&lt", "<");

            //&gt >
            if (strValor.Contains("&gt"))
                strValor = strValor.Replace("&gt", ">");

            //&apos `
            if (strValor.Contains("&apos"))
                strValor = strValor.Replace("@apos", "`");
            strValor = strValor.Trim();
            return strValor;
        }
y lo integro así con todos los atributos que sean cadena:

Código: Seleccionar todo

 /// <summary>
        /// Atributo opcional para precisar el nombre o razón social del contribuyente receptor.
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string nombre
        {
            get
            {
                return this.nombreField;
            }
            set
            {
                this.nombreField = ValidaXmlW3G(value);
            }
        }
Ya al generar la cadena original pues me queda con los caracteres reemplazados puesto que solo de esa manera el xml puede ser válido y pues hasta ahorita el validador del SAT me pasa perfecto el sello digital (CFD y CFDI) sin problemas.
Zyphersoft Development
Avatar de Usuario
Dado
Mensajes: 15981
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Valida CFD y caracteres especiales.

Mensaje por Dado »

dcerick escribió: Estoy validando en ValidaCFD el CFDi que adjunto (ojo es de prueba) y noto que no está calculando el apostrofo en base a la secuencia &apos; me pone la siguiente cadena original:

Saludos,
Creo que se te olvido anexar el XML, subelo pa' darle una checada
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: Valida CFD y caracteres especiales.

Mensaje por dcerick »

Adjunto.
Adjuntos
Respuesta_TSY0903048C8_040311132907.zip
(2.33 KiB) Descargado 400 veces
erick.aragon @ live.com.mx
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: Valida CFD y caracteres especiales.

Mensaje por dcerick »

Código: Seleccionar todo

 //&apos `
            if (strValor.Contains("&apos"))
                strValor = strValor.Replace("@apos", "`");

Acanas supongo que tecleaste ese código o por que razon tienes arroba, otra cosa, creo que te falta el punto y coma (&apos;) para terminar cada secuencia de escape.

El detalle no es como convertirlo pero gracias por poner tu fuente siempre es bueno ver como le hacen otras personas. Mi duda es, porque aunque y otro programador lo haga "mal", el validacfd y el sat nos dice que es correcto :o .

Algo mas :shock: , este tema lo inicie porque Edicom no me deja timbrar un XML con un RFC con &, me dice que es muy largo el RFC, osea lo validan vs el XSD... tenia que ser un pac 8-) .
Saludos,
erick.aragon @ live.com.mx
Avatar de Usuario
Dado
Mensajes: 15981
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Valida CFD y caracteres especiales.

Mensaje por Dado »

dcerick escribió:Adjunto.
Vaya! nunca habia visto esta curiosidad, resulta que estas DOBLE-CODIFICANDO los caracteres, esto es lo
que tiene internamente grabado :
doblecode.jpg
doblecode.jpg (107.28 KiB) Visto 11114 veces
Dice Computadora &amp; Generi&&apos;

que se traduce como COMPUTADORA & GENERI&apos;CA

RECOMENDACION. NO HAGAS TU LA CODIFICACION !! deja que tu lenguaje de programacion se haga cargo, normalmente ya esta en "automatico" ese asunto.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: Valida CFD y caracteres especiales.

Mensaje por dcerick »

DADO escribió:
dcerick escribió:Adjunto.
Vaya! nunca habia visto esta curiosidad, resulta que estas DOBLE-CODIFICANDO los caracteres, esto es lo
que tiene internamente grabado :
doblecode.jpg
Dice Computadora &amp; Generi&&apos;

que se traduce como COMPUTADORA & GENERI&apos;CA

RECOMENDACION. NO HAGAS TU LA CODIFICACION !! deja que tu lenguaje de programacion se haga cargo, normalmente ya esta en "automatico" ese asunto.
jajaja y vieras antes de irme a comer lo abrí y ví eso nombre="Juan &amp; José &amp; &quot;Niño&quot;">....
Que programa usas tu para abrirlo de esa forma?
erick.aragon @ live.com.mx
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: Valida CFD y caracteres especiales.

Mensaje por dcerick »

Listo adjunto XML sin meter la codificación "manual"....

Es exactamente lo que comenta dado, para que los demas tengan ese cuidado xD... Igual dado tu validacfd me decia que era sello correcto :oops: !plop.
Adjuntos
SIGN_TSY0903048C8_040311171358.xml
(4.05 KiB) Descargado 418 veces
erick.aragon @ live.com.mx
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: Valida CFD y caracteres especiales.

Mensaje por acanas »

Entonces el XSD del SAT cfdv3.xsd esta mal al restringir el tamaño del RFC puesto que pueden haber caracteres especiales que ocupen las secuencias de escape. Entonces si uno codifica mal un xml el validador del SAT se hace de la vista gorda?
Zyphersoft Development
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: Valida CFD y caracteres especiales.

Mensaje por acanas »

oops jaja dcerick entonces al serializar el XML en .NET solito te convierte los caracteres especiales? Voy a probar porque yo estoy atorado en .NET 2.0 por razones administrativas y pues segun yo no me los convertia solitos los caracteres especiales.
Zyphersoft Development
Cerrado