Página 1 de 1

TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Publicado: Jue Abr 14, 2011 8:50 am
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

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Publicado: Jue Abr 14, 2011 7:21 pm
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.

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Publicado: Vie Abr 15, 2011 9:18 am
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.

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Publicado: Vie Abr 15, 2011 12:18 pm
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.
:)

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Publicado: Mié Jun 01, 2011 8:28 pm
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

Re: TERCER UPDATE CRITICO PARA TIMBREFISCALMX

Publicado: Sab Oct 15, 2011 2:43 pm
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