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


.

Problema con la función "InterpretaMensaje" de TimbreFiscal

Este es el foro para resolver dudas y hacer comentarios del Codigo Fuente para Delphi de generacion y timbrado que se ofrece aqui en el foro
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Cerrado
Czar
Mensajes: 24
Registrado: Mar Mar 29, 2011 8:55 am

Problema con la función "InterpretaMensaje" de TimbreFiscal

Mensaje por Czar »

Que tal Dado, buenas tardes.

Tengo una aplicación para timbrar con TimbreFiscal y utilizo tus librerías para ello. Pues bien trataré de explicarme. Mandé timbrar un XML, Diverza me devuelve el timbre y yo lo inserto en mi XML. Posteriormente yo le envío el XML a mi cliente. Mi cliente al validarl el XML obtiene como respuesta (de 2 validadores distintos) un mensaje de "Sello del SAT inválido".

Hasta aquí mi razonamiento es de que si está timbrado, es porque ya está avalado y validado por el PAC. Entonces levanto un ticket a Diverza para preguntarle el por qué de este error. Diverza me devuleve en un correo el Timbre que ellos generaron,y al comparar la el sello de mi XML original contra el que Diverza me regresa, veo que difieren por 3 caracteres. Anexo ambas cadenas:

Mi Sello:
nAM6q21YfeVLrDIHhjdDviGDukkXJYm8R/TQiZZQhHBADOBwFvNOfN7Kl1l5szp4m8oHG9br44Ztb7JheOOFL5vuyuck96DRIPr3m67SHhIt3ojyWJzUyEJq6P7LzCV5B9A/s7 tfd hscC6oQGLS1vIBjvQJDsbYJCYVWx2EGSuI=

Sello de Diverza:
nAM6q21YfeVLrDIHhjdDviGDukkXJYm8R/TQiZZQhHBADOBwFvNOfN7Kl1l5szp4m8oHG9br44Ztb7JheOOFL5vuyuck96DRIPr3m67SHhIt3ojyWJzUyEJq6P7LzCV5B9A/s7 ns2 hscC6oQGLS1vIBjvQJDsbYJCYVWx2EGSuI=

Aparentemente iguales, salvo por esos 3 caracteres que subrayo y pongo en rojo. Cuando veo esto, me pongo a investigar mas en el código fuente y encuento en la función InterpretaMensaje, que está en la unidad TimbreFiscalMx.pas, algo como lo siguiente:

Código: Seleccionar todo

//Timbrefiscal.mx usa un monton de namespace que no vienen al caso:
	Msg := AnsiReplaceStr(Msg,'ns2','tfd');
    // PARCHE CRITICO: 1 - 15/Jun/2011 - http://www.validacfd.com/phpbb3/viewtopic.php?f=24&t=592&p=6170&hilit=update#p6170
    // "detalle tecnico acerca de los "namespace" del timbre, resulta que debe llevar un "schemalocation" que
    // TIMBREFISCAL DEBERIA ENVIAR PERO NO LO HACE."
Existe ya un topico en el foro pero ya se encuentra cerrado, es: http://www.validacfd.com/phpbb3/viewtop ... date#p6170

Por lo que me he podido dar cuenta, la cadena original que me devolvió Diverza, tenía una secuencia "ns2" que no tiene nada que ver con los namespaces, sin embargo se dio esa combinación de caracteres y ojalá que sea hasta ahora el único caso. Por lo pronto pasé a inhibir esa linea (Msg := AnsiReplaceStr(Msg,'ns2','tfd');) para evitar en lo sucesivo volver a tener este problema.

La pregunta es si las demás líneas AnsiReplace que tiene esta función de "interpretaMensaje" son necesarias? o que pasa si no se dejan tal cual para evitar riesgo de que se vaya a alterar el mensaje original y provocar que se altere el sello?

Gracias
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Problema con la función "InterpretaMensaje" de TimbreFis

Mensaje por Dado »

Antes que nada NO HAGAS ESO !!! NO DESACTIVES, POR NINGUN MOTIVO LA INSTRUCCION

Msg := AnsiReplaceStr(Msg,'ns2','tfd');

Te toco la de malas tener la diezmillonesima factura con un ns2 y eso no se vuelve a repetir en otros 10 millones de facturas

PERO!! si quitas esa instruccion vas a tener problemas CON TODA TU FACTURACION, CON EL 100% DE TUS FACTURAS.

Estas advertido
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
Czar
Mensajes: 24
Registrado: Mar Mar 29, 2011 8:55 am

Re: Problema con la función "InterpretaMensaje" de TimbreFis

Mensaje por Czar »

DADO escribió:Antes que nada NO HAGAS ESO !!! NO DESACTIVES, POR NINGUN MOTIVO LA INSTRUCCION

Msg := AnsiReplaceStr(Msg,'ns2','tfd');

Te toco la de malas tener la diezmillonesima factura con un ns2 y eso no se vuelve a repetir en otros 10 millones de facturas

PERO!! si quitas esa instruccion vas a tener problemas CON TODA TU FACTURACION, CON EL 100% DE TUS FACTURAS.

Estas advertido
Por qué? que es lo que realmente está haciendo esta línea? y como puedo prevenir que el cambio no se haga en donde no se deba de hacer? Hay otras lineas más explícitas como por ejemplo:

Código: Seleccionar todo

Msg := AnsiReplaceStr(Msg,'xmlns:ns3="http://www.buzonfiscal.com/TimbradoCFDI/"','xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"');
En tal caso no creo que haya mayor problema, porque la referencia es explícita, pero "Msg := AnsiReplaceStr(Msg,'ns2','tfd');" puede ser una referencia más vaga
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Problema con la función "InterpretaMensaje" de TimbreFis

Mensaje por Dado »

Pfffff, sabes quien es que esta haciendo puras mensadas ???

Aqui esta un timbre, es de este mismisimo instante 23 de julio de 2012 a las 8:37 asi es EXACTAMENTE COMO SE RECIBE DE TIMBRE FISCAL no le he quitado ni siquiera el envoltorio SOAP
<?xml version="1.0" encoding="UTF-8" ?>
- <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
- <S:Body>
<ns2:TimbreFiscalDigital xmlns:ns2="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:ns3="http://www.buzonfiscal.com/TimbradoCFDI/" xmlns:ns4="http://www.buzonfiscal.com/ns/xsd/bf/RequestTimbraCFDI" xmlns:ns5="http://www.sat.gob.mx/cfd/3" xmlns:ns6="http://www.buzonfiscal.com/ns/xsd/bf/TimbradoCFD" xmlns:ns7="http://www.sat.gob.mx/detallista" xmlns:ns8="http://www.sat.gob.mx/terceros" xmlns:ns9="http://www.sat.gob.mx/ecc" xmlns:ns10="http://www.sat.gob.mx/implocal" xmlns:ns11="http://www.sat.gob.mx/ecb" xmlns:ns12="http://www.sat.gob.mx/divisas" xmlns:ns13="http://www.sat.gob.mx/donat" xmlns:ns14="http://www.buzonfiscal.com/ns/referenceID/v1" xmlns:ns15="http://new.webservice.namespace" selloSAT="FqMjKy8BHtJy2QdheLDJip/0Lt2w/jIxfCvLs3TfZqS6mFBm6Lxg33X/w4BVxWeMJ9hb17yhOI4GwqBZg7L15fLaNrPQzt9GAPEGW5+FpRHUTLF0G43nsedmr94BX8rqCO6i+KC+BRVHySUcBBLEFnqqm+cZJ5Yl60DfE3jI7bg=" noCertificadoSAT="20001000000100003992" selloCFD="NSm3KcVkM44XWchPj9WqRVh/PtNr+CTHIbZbf5qhgwxn/HliKZ1budLM2U/K1RIv92VaoRoJ9COtEqUewfq+TCprJsN9SO+gz29QFyQ5g+Aqfr8AHMT8q4q+/3f2TpacM6/bQm9aoY1fJJKfj7BIaaTje03W9VbBv9oeTdky1Rw=" FechaTimbrado="2012-07-23T20:38:57" UUID="4f24bfb0-92fb-46a1-a200-fa997d4a4bde" version="1.0" />
</S:Body>
</S:Envelope>
ya viste donde ponen el ns2 ?

OK, reconozco que no tuve vision para imaginar que el ns2 no solo podia aparecer en el namespace del timbre, pero dime, TIMBREFISCAL ES UNO DE LOS PAC QUE MAS TIMBRES HAN PROCESADO y no puedo creer que hagan ese tipo de mugre.

........solo por si no lo distingues, el timbre se recibe asi :

ns2:TimbreFiscalDigital

y eso esta MUY MAL, deberia ser asi :

tfd:TimbreFiscalDigital

Y no hay absolutamente ninguna duda de que asi debe ir, el namespace oficial del SAT es "tfd"

.......continua en el siguiente mensaje porfavor dame otros 10 minutos
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Problema con la función "InterpretaMensaje" de TimbreFis

Mensaje por Dado »

Continuo........

Sigo reconociendo mi poca falta de imaginacion al no pensar que un "ns2" podria estar en cualquier lado, se me hizo facil programar que remplace tfd->ns2

Mi recomendacion seria entonce hacerlo mas "quirurgicamente", talves asi :

Código: Seleccionar todo

Msg := AnsiReplaceStr(Msg,'<ns2','<tfd');
Msg := AnsiReplaceStr(Msg,'xmlns:ns2','xmlns:tfd');
Creo que con eso se cambiaria exactamente lo que se requiere, analiza mi codigo y dame tu opinion.

Los demas AnsiReplaceStr es para borrar lo que honestamente se me hace ridiculo poner y que solo agregan informacion inutil, sirve para borrar todas estas cosas :

Código: Seleccionar todo

xmlns:ns4="http://www.buzonfiscal.com/ns/xsd/bf/RequestTimbraCFDI"
 xmlns:ns5="http://www.sat.gob.mx/cfd/3" 
xmlns:ns6="http://www.buzonfiscal.com/ns/xsd/bf/TimbradoCFD" 
xmlns:ns7="http://www.sat.gob.mx/detallista" 
xmlns:ns8="http://www.sat.gob.mx/terceros" 
xmlns:ns9="http://www.sat.gob.mx/ecc" 
xmlns:ns10="http://www.sat.gob.mx/implocal" 
xmlns:ns11="http://www.sat.gob.mx/ecb" 
xmlns:ns12="http://www.sat.gob.mx/divisas" 
xmlns:ns13="http://www.sat.gob.mx/donat"
xmlns:ns14="http://www.buzonfiscal.com/ns/referenceID/v1" 
xmlns:ns15="http://new.webservice.namespace"
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
Czar
Mensajes: 24
Registrado: Mar Mar 29, 2011 8:55 am

Re: Problema con la función "InterpretaMensaje" de TimbreFis

Mensaje por Czar »

Cierto Dado, acabo de comentar la línea en cuestión y ya vi el por qué del desmadre, cierto, ahora incluso veo mas ns's que no había antes jaja pero bueno, creo que como mencionas, la corrección puede ir por ese lado, hacer un reemplazo un poco más explicito ampliando la cadena. Mi aporte era más en el sentido de que me ocurrió la desgracia, como dices, quizás la probabilidad de que ocurriera era muy baja y de que vuelva a suceder lo es más, pero como dice el tal Murphy si hay la más mínima probabilidad de que pase ... entonces ten por seguro de que pasará! :(
Procedo a hacer la corrección así como la planteas, y cada vez me decepciono más de Diverza, he tenido no sabes, innumerables broncas con ellos, pero la más grande es la falta de atención por parte de ellos. En fin, valdrá la pena evaluar otro PAC y el cambio del sistema :(

Saludos y mil gracias por tu pronta respuesta y espero que les sirva a otros esta experiencia negativa
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Problema con la función "InterpretaMensaje" de TimbreFis

Mensaje por Dado »

Estoy para servirte, en este momento hago mis propias pruebas y corrijo tambien mi codigo.

Cuando gustes te mando informacion de ECODEX PAC tiene precios muy competitivos y he trabajado de maravilla.

Saludos,
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
Cerrado