Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1061  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Hola,
Alguien sabe como recuperar la firma de un xml firmado con Chilckat?


Saludos
La mejor forma es con un analizador (parser) XML. El problema es hacerse con uno bueno.

Yo lo necesitaba para otras cosas y al final tuve que hacérmelo. No es difícil, aunque requiere bastantes horas de trabajo para pulirlo, pero una vez hecho es una delicia poder procesar cualquier XML sin despeinarse.

Si quieres salir del paso, puedes buscar "<ds:SignatureValue" en el texto. Una vez encontrado tienes que buscar el siguiente '>', apuntar la posición, buscar el siguiente '<', apuntar la posición, y extraer el fragmento comprendido entre las dos posiciones.
Responder Con Cita
  #1062  
Antiguo 15-07-2021
Avatar de b4aronDeLaBirr4
b4aronDeLaBirr4 b4aronDeLaBirr4 is offline
Miembro
 
Registrado: jul 2021
Posts: 67
Poder: 3
b4aronDeLaBirr4 Va por buen camino
Genial! Voy a probar, muchas gracias! Pero cómo te aseguras que lo envías con esa codificación? Porque lo tengo en el código en varios puntos y luego lo tengo adjuntado en el header de la petición. Tú cómo lo estás haciendo?
Responder Con Cita
  #1063  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por skatologiko Ver Mensaje
A Guipuzcoa. Si envío un NIF español, sí que llega

<Destinatarios>
<IDDestinatario>
<NIF>NL855820627B01</NIF>
<ApellidosNombreRazonSocial>ITX MERKEN B.V.</ApellidosNombreRazonSocial>
</IDDestinatario>
</Destinatarios>

Y me da el siguiente error:
Error: El fichero de alta TicketBAI no cumple el esquema XSD. Detalle del error: cvc-pattern-valid: Value 'NL855820627B01' is not facet-valid with respect to pattern '(([a-z|A-Z]{1}\d{7}[a-z|A-Z]{1})|(\d{8}[a-z|A-Z]{1})|([a-z|A-Z]{1}\d{8}))' for type 'NIFType'.</Descripcion>
Para los destinatarios extranjeros tiene que usar la definición "IDOtroType" del XSD
Responder Con Cita
  #1064  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje


Y el IDOtro:

¡No me digas que tienes una herramienta que analiza XSD!

¡LA QUIERO! ¡PORFI, PORFI, PORFI...
Responder Con Cita
  #1065  
Antiguo 15-07-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Cita:
Empezado por b4aronDeLaBirr4 Ver Mensaje
Genial! Voy a probar, muchas gracias! Pero cómo te aseguras que lo envías con esa codificación? Porque lo tengo en el código en varios puntos y luego lo tengo adjuntado en el header de la petición. Tú cómo lo estás haciendo?
Yo tengo el mismo problema de error en tránsito, le he metido utf-8 por todo slo sitios y sigo igual, alguien puede poner la firma y envío con Chilkat en VB6? estoy encallado. La firma está bien o eso dicen todos los validadores. Uso el ejemplo que genera las tools de Chilkat.
Responder Con Cita
  #1066  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Me apunto a lo de los CRC8. Ahí va mi aportación en C++:

Código:
static const unsigned char tabla_crc8[]=
{
  0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15,0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D,
  0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65,0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D,
  0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5,0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA,0xCD,
  0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85,0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD,
  0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2,0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA,
  0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2,0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A,
  0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32,0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A,
  0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42,0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A,
  0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C,0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4,
  0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC,0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4,
  0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C,0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44,
  0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C,0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34,
  0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B,0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63,
  0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B,0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13,
  0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB,0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83,
  0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB,0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 
};
 

uchar CRC8(const unsigned char *dat)
{
  if(dat==nullptr)return(0xff);
  int lng=strlen(dat);
  uchar crc=0;

  for(int cta=0;cta<lng;cta++)crc=tabla_crc8[(crc ^ dat[cta]) & 0xff];

  return(crc);
}
Responder Con Cita
  #1067  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por b4aronDeLaBirr4 Ver Mensaje
Genial! Voy a probar, muchas gracias! Pero cómo te aseguras que lo envías con esa codificación? Porque lo tengo en el código en varios puntos y luego lo tengo adjuntado en el header de la petición. Tú cómo lo estás haciendo?
Tengo mi propia función de conversión. Sé que Chilkat tiene varias formas de convertirlo aunque no las he usado.

IMPORTANTE: recuerda que hay que convertirlo a UTF8 antes de firmarlo.
Responder Con Cita
  #1068  
Antiguo 15-07-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por edari Ver Mensaje
Porque lo que es imposible es calcular el crc desde cmd con un comando al estilo del autofirmacommandline.exe al que le puedas pasar los parámetros de manera externa, verdad?

Mi lenguaje tiene complicado llamar a dll externas y recuperar como parámetro el resultado y me estoy volviendo un poco gilipichis para encontrar la manera

Mírate este mensaje del hilo, a ver si te sirve:
http://clubdelphi.com/foros/showpost...&postcount=606
También puedes hacerlo directamente en un EXE si te es más útil.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #1069  
Antiguo 15-07-2021
Avatar de b4aronDeLaBirr4
b4aronDeLaBirr4 b4aronDeLaBirr4 is offline
Miembro
 
Registrado: jul 2021
Posts: 67
Poder: 3
b4aronDeLaBirr4 Va por buen camino
Lo mismo yo, aunque en C#
Responder Con Cita
  #1070  
Antiguo 15-07-2021
Avatar de b4aronDeLaBirr4
b4aronDeLaBirr4 b4aronDeLaBirr4 is offline
Miembro
 
Registrado: jul 2021
Posts: 67
Poder: 3
b4aronDeLaBirr4 Va por buen camino
¿Y en qué consiste esa función de conversión?
Responder Con Cita
  #1071  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por b4aronDeLaBirr4 Ver Mensaje
¿Y en qué consiste esa función de conversión?
Código:
std::string cdfCodificarUtf8(const char *txt)
{
  int lnga=MultiByteToWideChar(CP_ACP,0,txt,-1,nullptr,0);
  WCHAR *tmpa=new WCHAR[lnga];
  MultiByteToWideChar(CP_ACP,0,txt,-1,tmpa,lnga);

  int lngb=WideCharToMultiByte(CP_UTF8,0,tmpa,-1,nullptr,0,nullptr,nullptr);
  char *tmpb=new char[lngb];
  WideCharToMultiByte(CP_UTF8,0,tmpa,-1,tmpb,lngb,nullptr,nullptr);

  std::string dst=tmpb;

  delete tmpa;
  delete tmpb;

  return(dst);
}
Responder Con Cita
  #1072  
Antiguo 15-07-2021
Avatar de b4aronDeLaBirr4
b4aronDeLaBirr4 b4aronDeLaBirr4 is offline
Miembro
 
Registrado: jul 2021
Posts: 67
Poder: 3
b4aronDeLaBirr4 Va por buen camino
Gracias! pero me refería más que nada a lo qué codificas. Es el XML sin firmar y luego lo firmas?
Responder Con Cita
  #1073  
Antiguo 15-07-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 128
Poder: 4
tejano Va por buen camino
Cita:
Empezado por edari Ver Mensaje
Porque lo que es imposible es calcular el crc desde cmd con un comando al estilo del autofirmacommandline.exe al que le puedas pasar los parámetros de manera externa, verdad?



Mi lenguaje tiene complicado llamar a dll externas y recuperar como parámetro el resultado y me estoy volviendo un poco gilipichis para encontrar la manera
Hola Edari, yo he encontrado un programa en Java que por línea de comando te deja el archivo dónde tu quieras y luego es leer el contenido de ese archivo

java -jar c:\amis\exes\crc8.jar -a crc8 -q "txt:CODIGO_TBAI" -F #CHECKSUM >archivo_destino

Si te interesa te paso el programa
Responder Con Cita
  #1074  
Antiguo 15-07-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Yo tengo el mismo problema de error en tránsito, le he metido utf-8 por todo slo sitios y sigo igual, alguien puede poner la firma y envío con Chilkat en VB6? estoy encallado. La firma está bien o eso dicen todos los validadores. Uso el ejemplo que genera las tools de Chilkat.
El error era pq el nombre del cliente tenía un acento. ya podia ir probando cosas



Saludos
Responder Con Cita
  #1075  
Antiguo 15-07-2021
edari edari is offline
Miembro
 
Registrado: jun 2021
Posts: 177
Poder: 3
edari Va por buen camino
Cita:
Empezado por tejano Ver Mensaje
Hola Edari, yo he encontrado un programa en Java que por línea de comando te deja el archivo dónde tu quieras y luego es leer el contenido de ese archivo

java -jar c:\amis\exes\crc8.jar -a crc8 -q "txt:CODIGO_TBAI" -F #CHECKSUM >archivo_destino

Si te interesa te paso el programa



Me interesa porque he estado mirando la otra opción del amigo neftali y me da la sensación de que no puedo pasarle el código por parámetro sino que se me para en cada uno de ellos para pedirme y darme el resultado, lo cual no me es muy práctico porque en mi proceso normal una empresa puede imprimir de una tacada 300 facturas seguidas y necesito buscar algo más como lo que me dices tú.
Responder Con Cita
  #1076  
Antiguo 15-07-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 128
Poder: 4
tejano Va por buen camino
Cita:
Empezado por edari Ver Mensaje
Me interesa porque he estado mirando la otra opción del amigo neftali y me da la sensación de que no puedo pasarle el código por parámetro sino que se me para en cada uno de ellos para pedirme y darme el resultado, lo cual no me es muy práctico porque en mi proceso normal una empresa puede imprimir de una tacada 300 facturas seguidas y necesito buscar algo más como lo que me dices tú.
Creo que va adjunto
Archivos Adjuntos
Tipo de Archivo: zip crc8.zip (178,2 KB, 19 visitas)
Responder Con Cita
  #1077  
Antiguo 15-07-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Crc8

Alguna función para calcular el CRC8 para VB6?


Gracias
Responder Con Cita
  #1078  
Antiguo 15-07-2021
edari edari is offline
Miembro
 
Registrado: jun 2021
Posts: 177
Poder: 3
edari Va por buen camino
Cita:
Empezado por tejano Ver Mensaje
Creo que va adjunto

Uff, te debo una cerveza bien grande.
Responder Con Cita
  #1079  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por b4aronDeLaBirr4 Ver Mensaje
Gracias! pero me refería más que nada a lo qué codificas. Es el XML sin firmar y luego lo firmas?
Sí. Si lo firmas y después lo codificas puede cambiar la firma.
Responder Con Cita
  #1080  
Antiguo 15-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Yo tengo el mismo problema de error en tránsito, le he metido utf-8 por todo slo sitios y sigo igual, alguien puede poner la firma y envío con Chilkat en VB6? estoy encallado. La firma está bien o eso dicen todos los validadores. Uso el ejemplo que genera las tools de Chilkat.
Ten en cuenta que ese error también lo puede ocasionar un problema en el XML. Echa un vistazo a los encabezados de la respuesta. A mí, en una ocasión, me dijo tan claro lo que pasaba que no me lo creía.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3547 Hace 1 Semana 18:06:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 21:22:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi