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


.

TERCER UPDATE CRITICO PARA TIMBREFISCALMX

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
Avatar de Usuario
Dado
Mensajes: 15981
Registrado: Mar Jul 06, 2010 7:56 pm

TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Mensaje por Dado »

Si el RFC del emisor o del receptor lleva un ampersand ( & ) entonces se tiene problemas para timbrar.

El problema radica en que se esta enviando literalmente el caracter & sin hacer la correspondiente conversion a su representacion XML, es decir, convertirlo a &

Debido a que ya en otras partes del codigo he necesitado de esta conversion la propuesta para solucionar este problema es que en la unidad cfdUtils del "Codigo Basico de Factura Electronica Version febrero - 2011 declaren una funcion de la siguiente forma :

(si no usan "mi" codigo entonces declaren esta funcion en la misma unidad TimbreFiscalMx)

Código: Seleccionar todo

function XMLEncode(cad : string) : string;
begin
	cad := AnsiReplaceStr(cad,'&','&');
	cad := AnsiReplaceStr(cad,'<','<');
	cad := AnsiReplaceStr(cad,'>','>');
	Result := cad;
end;
Y en la unidad TimbreFiscalMx.pas hagan el siguiente cambio :
SOAPMsg := ReqHeader + UTF8Encode(CFD.Datos.XML) +
AnsiReplaceStr(AnsiReplaceStr(ReqFooter,'%rfcemisor%',XMLEncode(CFD.Datos.Emisor.Rfc)),
'%rfcreceptor%',XMLEncode(CFD.Datos.Receptor.Rfc));
Les recuerdo que ya habia publicado dos updates al codigo, aqui estan los mensajes :

http://www.validacfd.com/phpbb3/viewtop ... date#p6170

http://www.validacfd.com/phpbb3/viewtop ... =140#p6573

Tambien les informo que TODOS LOS UPDATE son actualizados de forma automatica en la liga de donde descargaron originalmente el codigo, es decir, si le dan clic otra vez a htp://dl.dropbox.com/u/101/0-TimbreFiscalMX_%28Ywvz%29.rar** podran descargar la ultima version ya actualizada

**La liga mostrada NO ES REAL, la verdadera liga esta en el mail que les envie cuando compraron el codigo

La correccion tambien aplica para la libreria dll, solo tienen que descargar la ultima version dando clic a la liga que les envie por mail cuando hicieron su compra
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
poliman
Mensajes: 89
Registrado: Jue Dic 30, 2010 8:32 pm

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Mensaje por poliman »

Hola DADO.

Yo te compre el codigo para TimbreFiscal, pero a mi no me enviaste una liga, me lo enviaste como archivo adjunto, y el codigo que tengo difiere mucho porque yo solo tengo 13 namespaces y no se si es ahy en donde va.

Código: Seleccionar todo

function TTimbreEngine.InterpretaMensaje(var Msg: string): TTipoRespuesta;
Result := trError;

  if pos('selloSAT=', Msg) > 0 then // bingo! tenemos un timbre
  begin
    ini := pos('<S:Body>', Msg) + 8;
    fin := pos('</S:Body>', Msg);
    Msg := copy(Msg, ini, fin - ini);

    // Timbrefiscal.mx usa un monton de namespace que no vienen al caso:
...
...
...
 Msg := AnsiReplaceStr(Msg, 'xmlns:ns13="http://new.webservice.namespace"',
      '');

    Result := trTimbre;
  end
  else
  begin
    Msg := AnsiReplaceStr(Msg, '<S:', '<');

¿Es en la primera parte del codigo ? o ¿despues del else ?

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

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Mensaje por Dado »

poliman escribió:Hola DADO.

Yo te compre el codigo para TimbreFiscal, pero a mi no me enviaste una liga, me lo enviaste como archivo adjunto, y el codigo que tengo difiere mucho porque yo solo tengo 13 namespaces y no se si es ahy en donde va.

Código: Seleccionar todo

function TTimbreEngine.InterpretaMensaje(var Msg: string): TTipoRespuesta;
Result := trError;

  if pos('selloSAT=', Msg) > 0 then // bingo! tenemos un timbre
  begin
    ini := pos('<S:Body>', Msg) + 8;
    fin := pos('</S:Body>', Msg);
    Msg := copy(Msg, ini, fin - ini);

    // Timbrefiscal.mx usa un monton de namespace que no vienen al caso:
...
...
...
 Msg := AnsiReplaceStr(Msg, 'xmlns:ns13="http://new.webservice.namespace"',
      '');

    Result := trTimbre;
  end
  else
  begin
    Msg := AnsiReplaceStr(Msg, '<S:', '<');

¿Es en la primera parte del codigo ? o ¿despues del else ?

Gracias.
Ya te envie un mail con las ligas para la descarga.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
poliman
Mensajes: 89
Registrado: Jue Dic 30, 2010 8:32 pm

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Mensaje por poliman »

DADO escribió:
poliman escribió:Hola DADO.

Yo te compre el codigo para TimbreFiscal, pero a mi no me enviaste una liga, me lo enviaste como archivo adjunto, y el codigo que tengo difiere mucho porque yo solo tengo 13 namespaces y no se si es ahy en donde va.

Código: Seleccionar todo

function TTimbreEngine.InterpretaMensaje(var Msg: string): TTipoRespuesta;
Result := trError;

  if pos('selloSAT=', Msg) > 0 then // bingo! tenemos un timbre
  begin
    ini := pos('<S:Body>', Msg) + 8;
    fin := pos('</S:Body>', Msg);
    Msg := copy(Msg, ini, fin - ini);

    // Timbrefiscal.mx usa un monton de namespace que no vienen al caso:
...
...
...
 Msg := AnsiReplaceStr(Msg, 'xmlns:ns13="http://new.webservice.namespace"',
      '');

    Result := trTimbre;
  end
  else
  begin
    Msg := AnsiReplaceStr(Msg, '<S:', '<');

¿Es en la primera parte del codigo ? o ¿despues del else ?

Gracias.
Ya te envie un mail con las ligas para la descarga.
Recibido.

Muchas gracias DADO.
:)
pstriegl
Mensajes: 5
Registrado: Mar Feb 01, 2011 11:12 am

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Mensaje por pstriegl »

hola DADO

hace un tiempo te compre el codigo fuente para timbrar en buzon fiscal.
Apenas la ultima semana tenia chance de usarlo.
Siempre recibi en el mensaje del PAC Socket Error: ????????????????????????????? y algo
Eso fue porque meti el .pem que manda el timbre fiscal en los dos parametros del la funccion
TimbreEngine.Solicita(CFD,'https://demotf.buzonfiscal.com/timbrado ... estaDelPAC)

Depues de muchos intentos me di cuenta que meter el rfc.pem {el que manda el timbre fiscal} en el primer campo de 'c:CertificadoDemoTimbreFiscalMx.pem' y en el segundo campo del
'c:CertificadoDemoTimbreFiscalMx.pem' meti un .pem generado de la suguiente manera
openssl rsa -in rfc.pem {el que manda el timbre fiscal} -out llave.pem y el llave.pem pongo en el segundo campo.

Tambien registre el rfc.pfx {que manda el timbre fiscal} en windows con la contraseña que poporcionan (pero de tantas pruebas ya no se si fue parte de eso).

Asi ya estoy timbrando bien con timbre fiscal.

Solo les digo eso porque me costo mucho tiempo para generar CFDI con timbrado con el codigo y no he visto ningun lado como solucionarlo, ni en validaCFD o en el foro de timbre fiscal.

saludos
albertoac
Mensajes: 17
Registrado: Lun Ene 03, 2011 1:02 pm

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Mensaje por albertoac »

Hay Alguien que me pueda pasar el codigo para timbrar con TIMBREFISCAL en C Sharp .Net para cuando es un RFC con & ampersand. Agradeceria me pudieran pasar algun tip y seran recompensados.

Saludos,

Alberto
Cerrado