Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco (https://www.clubdelphi.com/foros/showthread.php?t=94264)

ermendalenda 23-09-2021 17:46:48

Cita:

Empezado por Ramon88 (Mensaje 543083)
Estas en todo! si vienes por Valencia estas invitado a una buena paella! jeje

Buff que recuerdos arroz a la banda y fideua a la parte hacia mi padre, que era de Alicante de La. Vila

Neftali [Germán.Estévez] 23-09-2021 18:43:30

Cita:

Empezado por Ramon88 (Mensaje 543079)
No puedo usar la DLL.
Error:
Asegurese de que tiene acceso al archivo y de que es un ensamblado o componente COM válido.


Pues he vuelto a probar lo que hay en el ZIP y me funciona.
Tienes la DLL, el EXE que la llama y el código fuente.


Puedes probar a hacer un proyecto nuevo con la llamada. Es sencillo:


Código Delphi [-]
program testDLL;

{$APPTYPE CONSOLE}

{$R *.res}


uses
  ShareMem,
  Vcl.forms,
  WinAPI.Windows,
  VCL.Dialogs,
  System.SysUtils;

type
  TfunctionCRC8S = function(const AText:string): byte;
  TfunctionCRC8P = function(const AText:PAnsiChar): byte;

var
  str, fName:String;
  b:byte;
  h:cardinal;
  fs:TfunctionCRC8S;
  fp:TfunctionCRC8P;
begin

  // Nombre
  fName := ExtractFilePath(Application.ExeName) + 'crc8.dll';
  // comprobamos si existe, si no existe ya no continuamos
  if not FileExists(fName) then
    raise Exception.Create('No se encuentra la DLL  en: ' + sLineBreak + fName);
  // Cargar la DLL
  h := LoadLibrary(PChar(fName));
  if (h < 32) then
    raise Exception.Create('No se ha podido cargar la DLL');

  // buscar los métodos dentro de la DLL
  fs := GetProcAddress(h, 'crc8S');
  fp := GetProcAddress(h, 'crc8P');
  // Los ha encontrado
  if Assigned(fs) and Assigned(fp) then begin

    WriteLn('Escribir cadena de entrada o vacío para salir: ');
    ReadLn(Str);
    while (Str <> string.empty) do begin

      // Probarlo con parámetro string
      b := fs(Str);
      WriteLn('Cadena de entrada: ' + str);
      writeLn('Salida (string): ' + string.Format('%.3d',[b]));
      writeLn('-------------------------------');

      // Parámetro AnsiChar
      b := fp(PAnsiChar(Str));
      WriteLn('Cadena de entrada: ' + str);
      writeLn('Salida (PAnsiChar): ' + string.Format('%.3d',[b]));
      writeLn('-------------------------------');
      writeln(' ');

      // vuelta a empezar...
      WriteLn('Escribir cadena de entrada o vacío para salir: ');
      readLn(Str);
    end;
  end;
end.


¿Lo has probado con el EXE?
¿Estás llamando a la DLL desde otro lenguaje?

Ramon88 23-09-2021 19:08:05

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 543088)
Pues he vuelto a probar lo que hay en el ZIP y me funciona.
Tienes la DLL, el EXE que la llama y el código fuente.


Puedes probar a hacer un proyecto nuevo con la llamada. Es sencillo:


Código Delphi [-]program testDLL; {$APPTYPE CONSOLE} {$R *.res} uses ShareMem, Vcl.forms, WinAPI.Windows, VCL.Dialogs, System.SysUtils; type TfunctionCRC8S = function(const AText:string): byte; TfunctionCRC8P = function(const AText:PAnsiChar): byte; var str, fName:String; b:byte; h:cardinal; fs:TfunctionCRC8S; fp:TfunctionCRC8P; begin // Nombre fName := ExtractFilePath(Application.ExeName) + 'crc8.dll'; // comprobamos si existe, si no existe ya no continuamos if not FileExists(fName) then raise Exception.Create('No se encuentra la DLL en: ' + sLineBreak + fName); // Cargar la DLL h := LoadLibrary(PChar(fName)); if (h < 32) then raise Exception.Create('No se ha podido cargar la DLL'); // buscar los métodos dentro de la DLL fs := GetProcAddress(h, 'crc8S'); fp := GetProcAddress(h, 'crc8P'); // Los ha encontrado if Assigned(fs) and Assigned(fp) then begin WriteLn('Escribir cadena de entrada o vacío para salir: '); ReadLn(Str); while (Str <> string.empty) do begin // Probarlo con parámetro string b := fs(Str); WriteLn('Cadena de entrada: ' + str); writeLn('Salida (string): ' + string.Format('%.3d',[b])); writeLn('-------------------------------'); // Parámetro AnsiChar b := fp(PAnsiChar(Str)); WriteLn('Cadena de entrada: ' + str); writeLn('Salida (PAnsiChar): ' + string.Format('%.3d',[b])); writeLn('-------------------------------'); writeln(' '); // vuelta a empezar... WriteLn('Escribir cadena de entrada o vacío para salir: '); readLn(Str); end; end; end.



¿Lo has probado con el EXE?
¿Estás llamando a la DLL desde otro lenguaje?


Si, lo estaba probando con .Net, agregando la dll como referencia para luego poder usarla, y ahí me daba el error.
Igual tengo que instalarlo como comenta ermendalenda. No obstannte voy a ver si funciona con la función que he encontrado, si no ya me lio a probar...


Gracias!

keys 24-09-2021 08:25:07

Cita:

Empezado por HerensugeBeltz (Mensaje 543069)
¿Habéis probado wmic baseboard get serialnumber?
Debería daros el nº de serie de la placa, que debería coincidir con el de la pegatina.

Probamos de mil maneras y no había nada que devolviera un número. Tambien lo intentaron los de Izenpe y al final obtaron por lo de mirar la pegatina de la placa.

unomasmas 24-09-2021 08:36:32

URLs de conexión
 
Tengo las URLs para la conexión en pruebas y tengo las urls para la consulta de los códigos QR reales...
Entorno real
Consulta Araba = "https://ticketbai.araba.eus/TBAI/QRTBAI"
Consulta Biakaia = "https://batuz.eus/QRTBAI/"
Consulta Gipuzkoa = "https://tbai.egoitza.gipuzkoa.eus/qr/"

Entorno pruebas
Envio Araba = "https://pruebas-ticketbai.araba.eus/TicketBAI/v1/facturas/"
Envío Bizkaia = "https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena"
Envío Gipuzkoa = "https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta"
Consulta Gipuzkoa = "https://tbai.prep.gipuzkoa.eus/qr/"

No encuentro:
-URLs del entorno real para envío de facturas
Envio Araba =
Envío Bizkaia =
Envío Gipuzkoa =
-URLs de Araba y Bizkaia para entorno de pruebas para consulta de facturas a través del código QR
Consulta Araba =
Consulta Biakaia =

¿Alguien me las puede facilitar, por favor?
Gracias.

iMia 24-09-2021 09:09:05

Cita:

Empezado por unomasmas (Mensaje 543096)
Tengo las URLs para la conexión en pruebas y tengo las urls para la consulta de los códigos QR reales...
Entorno real
Consulta Araba = "https://ticketbai.araba.eus/TBAI/QRTBAI"
Consulta Biakaia = "https://batuz.eus/QRTBAI/"
Consulta Gipuzkoa = "https://tbai.egoitza.gipuzkoa.eus/qr/"

Entorno pruebas
Envio Araba = "https://pruebas-ticketbai.araba.eus/TicketBAI/v1/facturas/"
Envío Bizkaia = "https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena"
Envío Gipuzkoa = "https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta"
Consulta Gipuzkoa = "https://tbai.prep.gipuzkoa.eus/qr/"

No encuentro:
-URLs del entorno real para envío de facturas
Envio Araba =
Envío Bizkaia =
Envío Gipuzkoa =
-URLs de Araba y Bizkaia para entorno de pruebas para consulta de facturas a través del código QR
Consulta Araba =
Consulta Biakaia =

¿Alguien me las puede facilitar, por favor?
Gracias.

está 4 paginas atrás....
pero lo vuelvo a dejar aqui...

Código:


TEST.INI

[Araba]
URLAlta=https://pruebas-ticketbai.araba.eus/TicketBAI/v1/facturas/
URLAnulacion=https://pruebas-ticketbai.araba.eus/TicketBAI/v1/anulaciones/
URLQR=https://ticketbai.araba.eus/TBAI/QRTBAI
SigPolicyID=https://ticketbai.araba.eus/tbai/sinadura/
SigPolicyHash=iOgvkX7/yHIDRRiPy/LYQ0UUn7QV8/11D1BFbs8yMuQ=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://ticketbai.araba.eus/tbai/sinadura/
[Bizcaya]
URLAlta=https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLAnulacion=https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena 
URLQR=https://batuz.eus/QRTBAI/
SigPolicyID=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
SigPolicyHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
[Gipuzkoa]
URLAlta=https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta
URLAnulacion=https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/anulacion
URLQR=https://tbai.prep.gipuzkoa.eus/qr/
SigPolicyID=https://www.gipuzkoa.eus/ticketbai/sinadura
SigPolicyHash=6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.gipuzkoa.eus/ticketbai/sinadura

Código:

PRODUCCION.INI

[Araba]
URLAlta=
URLAnulacion=
URLQR=https://ticketbai.araba.eus/TBAI/QRTBAI
SigPolicyID=https://ticketbai.araba.eus/tbai/sinadura/
SigPolicyHash=iOgvkX7/yHIDRRiPy/LYQ0UUn7QV8/11D1BFbs8yMuQ=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://ticketbai.araba.eus/tbai/sinadura/
[Bizcaya]
URLAlta=https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLAnulacion=https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLQR=https://batuz.eus/QRTBAI/
SigPolicyID=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
SigPolicyHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
[Gipuzkoa]
URLAlta=https://tbai-z.egoitza.gipuzkoa.eus/sarrerak/alta
URLAnulacion=https://tbai-z.egoitza.gipuzkoa.eus/sarrerak/baja
URLQR=https://tbai.egoitza.gipuzkoa.eus/qr/
SigPolicyID=https://www.gipuzkoa.eus/ticketbai/sinadura
SigPolicyHash=6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.gipuzkoa.eus/ticketbai/sinadura

PD. Edito para mejorarlo con 2 inis... asi no hay que ir cambiando los nombres de campos del ini...
Se podria mejorar aún mas dejando el tema de firmas en otro ini, ja que es comun para los dos entornos...

iMia 24-09-2021 09:30:23

Cita:

Empezado por iMia (Mensaje 543017)
Es que no se coge por ningún sitio...
Si ellos han recibido y leído mi request para saber que la factura ya existe, no puede nunca un bad request...
La comunicación ha ido bien a nivel de protocolo... por lo tanto es 200 no es 400...

Bueno, les he escrito exponiendo los motivos por los que no debería ser un error 400.

A ver qué contestan, por que cambiarlo,, no tengo esperanzas que lo cambien... ya van muy pillados en tiempo como para ponerse a cambiar algo que "les" funciona (aunque sin lógica)..

Pues me han contestado, que:

Cita:

En relación al error “400 Bad Request” estamos revisando lo que nos comenta y procederemos a solventarlo para modificar su comportamiento.

En cuanto se encuentre disponible en el entorno de Pruebas, les informaremos personalmente dirigiéndonos a este correo desde el que nos escriben.
Sólo puedo decir que chapó por ellos... #:-)##:-)##:-)##:-)#v:-)v ||-||

rci 24-09-2021 09:40:38

gracias
 
Cita:

Empezado por iMia (Mensaje 543097)
está 4 paginas atrás....
pero lo vuelvo a dejar aqui...

Código:


TEST.INI

[Araba]
URLAlta=https://pruebas-ticketbai.araba.eus/TicketBAI/v1/facturas/
URLAnulacion=https://pruebas-ticketbai.araba.eus/TicketBAI/v1/anulaciones/
URLQR=https://ticketbai.araba.eus/TBAI/QRTBAI
SigPolicyID=https://ticketbai.araba.eus/tbai/sinadura/
SigPolicyHash=iOgvkX7/yHIDRRiPy/LYQ0UUn7QV8/11D1BFbs8yMuQ=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://ticketbai.araba.eus/tbai/sinadura/
[Bizcaya]
URLAlta=https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLAnulacion=https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena 
URLQR=https://batuz.eus/QRTBAI/
SigPolicyID=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
SigPolicyHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
[Gipuzkoa]
URLAlta=https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta
URLAnulacion=https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/anulacion
URLQR=https://tbai.prep.gipuzkoa.eus/qr/
SigPolicyID=https://www.gipuzkoa.eus/ticketbai/sinadura
SigPolicyHash=6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.gipuzkoa.eus/ticketbai/sinadura

Código:

PRODUCCION.INI

[Araba]
URLAlta=
URLAnulacion=
URLQR=https://ticketbai.araba.eus/TBAI/QRTBAI
SigPolicyID=https://ticketbai.araba.eus/tbai/sinadura/
SigPolicyHash=iOgvkX7/yHIDRRiPy/LYQ0UUn7QV8/11D1BFbs8yMuQ=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://ticketbai.araba.eus/tbai/sinadura/
[Bizcaya]
URLAlta=https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLAnulacion=https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLQR=https://batuz.eus/QRTBAI/
SigPolicyID=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
SigPolicyHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
[Gipuzkoa]
URLAlta=https://tbai-z.egoitza.gipuzkoa.eus/sarrerak/alta
URLAnulacion=https://tbai-z.egoitza.gipuzkoa.eus/sarrerak/baja
URLQR=https://tbai.egoitza.gipuzkoa.eus/qr/
SigPolicyID=https://www.gipuzkoa.eus/ticketbai/sinadura
SigPolicyHash=6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.gipuzkoa.eus/ticketbai/sinadura

PD. Edito para mejorarlo con 2 inis... asi no hay que ir cambiando los nombres de campos del ini...
Se podria mejorar aún mas dejando el tema de firmas en otro ini, ja que es comun para los dos entornos...


Me he fijado que en SigPolicyURI estas poniento lo mismo que en SigPolicyID.


Yo en SigPolicyURI pongo lo mismo para todas las diputaciones y de momento no se queja en ningún caso:
"https://www.euskadi.eus/contenidos/informacion/ticketbai/es_14815/adjuntos/TicketBAI_Politica_firma_v_1_0.pdf"


Creo que lo saqué de la web de ticketBAI general ( https://www.euskadi.eus/ticketbai ) pero no estoy seguro.



Muchas gracias

unomasmas 24-09-2021 09:45:50

Cita:

Empezado por iMia (Mensaje 543097)
está 4 paginas atrás....
pero lo vuelvo a dejar aqui...

Código:


TEST.INI

[Araba]
URLAlta=https://pruebas-ticketbai.araba.eus/TicketBAI/v1/facturas/
URLAnulacion=https://pruebas-ticketbai.araba.eus/TicketBAI/v1/anulaciones/
URLQR=https://ticketbai.araba.eus/TBAI/QRTBAI
SigPolicyID=https://ticketbai.araba.eus/tbai/sinadura/
SigPolicyHash=iOgvkX7/yHIDRRiPy/LYQ0UUn7QV8/11D1BFbs8yMuQ=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://ticketbai.araba.eus/tbai/sinadura/
[Bizcaya]
URLAlta=https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLAnulacion=https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena 
URLQR=https://batuz.eus/QRTBAI/
SigPolicyID=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
SigPolicyHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
[Gipuzkoa]
URLAlta=https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta
URLAnulacion=https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/anulacion
URLQR=https://tbai.prep.gipuzkoa.eus/qr/
SigPolicyID=https://www.gipuzkoa.eus/ticketbai/sinadura
SigPolicyHash=6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.gipuzkoa.eus/ticketbai/sinadura

Código:

PRODUCCION.INI

[Araba]
URLAlta=
URLAnulacion=
URLQR=https://ticketbai.araba.eus/TBAI/QRTBAI
SigPolicyID=https://ticketbai.araba.eus/tbai/sinadura/
SigPolicyHash=iOgvkX7/yHIDRRiPy/LYQ0UUn7QV8/11D1BFbs8yMuQ=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://ticketbai.araba.eus/tbai/sinadura/
[Bizcaya]
URLAlta=https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLAnulacion=https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena
URLQR=https://batuz.eus/QRTBAI/
SigPolicyID=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
SigPolicyHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
[Gipuzkoa]
URLAlta=https://tbai-z.egoitza.gipuzkoa.eus/sarrerak/alta
URLAnulacion=https://tbai-z.egoitza.gipuzkoa.eus/sarrerak/baja
URLQR=https://tbai.egoitza.gipuzkoa.eus/qr/
SigPolicyID=https://www.gipuzkoa.eus/ticketbai/sinadura
SigPolicyHash=6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=
SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
SigPolicyURI=https://www.gipuzkoa.eus/ticketbai/sinadura

PD. Edito para mejorarlo con 2 inis... asi no hay que ir cambiando los nombres de campos del ini...
Se podria mejorar aún mas dejando el tema de firmas en otro ini, ja que es comun para los dos entornos...


Muchas gracias :-). Disculpa que no viese tu anterior post. Este es un foro muy activo y no puedo entrar todos los días con lo que cada que lo hago tengo unas cuantas páginas para leer. Llegué hasta la página 75 y lo dejé ahí (ni se me ocurrió pensar que estaría respondida esta cuestión tan hace poco :-). Te agradezco que te hayas tomado la molestia de responder nuevamente. Muchas gracias

ermendalenda 24-09-2021 11:09:14

Comprobacion tipo disco
 
1 Archivos Adjunto(s)
Hola, debido a las caracteristicas de multiplies configuraciones de mi software (respecto a multiempresa), y para eviitar fraudes escribiendo en soportes extraibles, discos ram.. no se me ocurria otra cosa que cortar lo que he podido(aunque aún se escapa algo) , aquí os dejo un ejecutable por si a alguien le interesa en las que compruebo el tipo de disco del path que le envio (El problema lo tengo es si ponen un path de red, que no se como comprobar que tipo de soporte se usa, lo veo complicado), auque de todas formas me grabe en mi servidor cada factura que generen así evito un posible intento..

Se ejecuta
Tipo_disco.exe Path
devuelve tipodisco.txt con 2 lineas
1.El path enviado
2.El tipo de disco

Valores de Tipo devueltos:
Case 0
TIPOd = "NoDiskFound"
Case 1
TIPOd = "NoDiskFound"
Case 2
TIPOd = "External"
Case 3
TIPOd = "Ok (Fijo)"
Case 4
TIPOd = "NetworkDisk"
Case 5
TIPOd = "DVD/CD"
Case 6
TIPOd = "RamDisk"
Case Else
TIPOd = "Unknow"

David M 24-09-2021 11:20:37

¿Os funciona el envío a Gipuzkoa?
 
Buenas,
¿Os funciona hoy el envío a Gipuzkoa?
Me rechaza el envío con el mensaje: Error: Certificado remitente incorrecto (revocado o no homologado)
Uso un certificado de persona física de la FNMT desde el principio que no está caducado, y estoy dado de alta con mi DNI.

Saludos,
David M

iMia 24-09-2021 11:34:21

Cita:

Empezado por unomasmas (Mensaje 543100)
Muchas gracias :-). Disculpa que no viese tu anterior post. Este es un foro muy activo y no puedo entrar todos los días con lo que cada que lo hago tengo unas cuantas páginas para leer. Llegué hasta la página 75 y lo dejé ahí (ni se me ocurrió pensar que estaría respondida esta cuestión tan hace poco :-). Te agradezco que te hayas tomado la molestia de responder nuevamente. Muchas gracias


Cita:

Empezado por rci (Mensaje 543099)
Me he fijado que en SigPolicyURI estas poniento lo mismo que en SigPolicyID.
Yo en SigPolicyURI pongo lo mismo para todas las diputaciones y de momento no se queja en ningún caso:
"https://www.euskadi.eus/contenidos/informacion/ticketbai/es_14815/adjuntos/TicketBAI_Politica_firma_v_1_0.pdf"
Creo que lo saqué de la web de ticketBAI general ( https://www.euskadi.eus/ticketbai ) pero no estoy seguro.
Muchas gracias

De nada a los dos... ||-||
para eso estamos por aquí... para ayudarnos a resolver los problemas más rápido compartiendo recursos y experiencias...

^\||/

rci 24-09-2021 13:14:13

Certificado remitente incorrecto (revocado o no homologado)
 
Cita:

Empezado por David M (Mensaje 543102)
Buenas,
¿Os funciona hoy el envío a Gipuzkoa?
Me rechaza el envío con el mensaje: Error: Certificado remitente incorrecto (revocado o no homologado)
Uso un certificado de persona física de la FNMT desde el principio que no está caducado, y estoy dado de alta con mi DNI.

Saludos,
David M


Hola David M, a mi me ocurre igual, ayer envié un mensaje y hoy me han respondido que vuelva a probarlo y les diga si sigue ocurriendo. A mi me sigue ocurriendo y así se lo he comunicado. A ver si encuentran la solución.


A ti te sigue dando ése error?


Muchas gracias

ermendalenda 24-09-2021 13:31:30

Cita:

Empezado por rci (Mensaje 543104)
Hola David M, a mi me ocurre igual, ayer envié un mensaje y hoy me han respondido que vuelva a probarlo y les diga si sigue ocurriendo. A mi me sigue ocurriendo y así se lo he comunicado. A ver si encuentran la solución.


A ti te sigue dando ése error?


Muchas gracias

Hola acabo de enviarlo con certificado de Empresa a Guipuzkoa, y aceptado.

rci 24-09-2021 13:37:17

Error en Gipuzkoa con certificado de persona física
 
Cita:

Empezado por ermendalenda (Mensaje 543105)
Hola acabo de enviarlo con certificado de Empresa a Guipuzkoa, y aceptado.


Gracias ermendalenda, con un certificado de persona juridica no tenemos problema (almenos yo)

El error en Gipuzkoa es con un certificado de persona física de la FNMT, lo pedí con mi dni electrónico tal como se explica en algun post de este foro.
Hace unos dias me funcionó pero ayer y hoy no.

yasmNote 24-09-2021 13:38:45

Hoy me da error el entorno de pruebas
 
Cita:

Empezado por David M (Mensaje 543102)
Buenas,
¿Os funciona hoy el envío a Gipuzkoa?
Me rechaza el envío con el mensaje: Error: Certificado remitente incorrecto (revocado o no homologado)
Uso un certificado de persona física de la FNMT desde el principio que no está caducado, y estoy dado de alta con mi DNI.

Saludos,
David M

Sí, ami me está dando el mismo error y hace dos días no, y no he tocado nada del código...¿Estarán haciendo algun cambio?

David M 24-09-2021 14:05:57

Cita:

Empezado por rci (Mensaje 543104)
Hola David M, a mi me ocurre igual, ayer envié un mensaje y hoy me han respondido que vuelva a probarlo y les diga si sigue ocurriendo. A mi me sigue ocurriendo y así se lo he comunicado. A ver si encuentran la solución.


A ti te sigue dando ése error?


Muchas gracias

Sí, me sigue dando el error.
He mandado consulta a soporte y me han pedido que les envíe la parte pública de mi certificado para analizar el problema.
A ver si dan con el problema. Cuando sepa algo os digo.
Por lo menos me quedo más tranquilo sabiendo que os pasa a más gente.
Gracias!

Band 24-09-2021 18:37:44

A mi el entorno de pruebas de Guipuzkoa me funciona correctamente.

De certificado uso el sello de entidad.

unomasmas 24-09-2021 19:16:34

Cita:

Empezado por Ramon88 (Mensaje 543084)
Termino de encontrar una función en .Net que si no me equivoco funciona bien.
Código:

    Function CRC_8(ByVal Txt As String) As Byte
        Dim Poly() As Byte = {1, 0, 0, 0, 0, 0, 1, 1, 1}
        Dim MessageBits As New List(Of Byte)
        Dim MsgBinString As String = ""
        'Compute the message binary
        For Each C As Char In Txt
            Dim S As String = Convert.ToString(Asc(C), 2)
            If S.Length < 8 Then S = New String("0"c, 8 - S.Length) & S

            MsgBinString &= S
        Next
        For Each C As Char In MsgBinString
            If C = "0"c Then MessageBits.Add(0) Else MessageBits.Add(1)
        Next
        'add 8 bits set to zero
        MessageBits.AddRange(New Byte() {0, 0, 0, 0, 0, 0, 0, 0})
        'compute CRC
        While MessageBits.Count > 8
            If MessageBits(0) = 0 Then
                MessageBits.RemoveAt(0)
                Continue While
            End If
            For x = 0 To 8 '<--9 bits
                MessageBits(x) = MessageBits(x) Xor Poly(x)
            Next
        End While
        'put the result in byte format and return
        Dim Result As Byte = 0
        For x = 0 To 7
            Result = Result Or (MessageBits(7 - x) << x)
        Next
        Return Result
    End Function





Yo uso esta clase que adapté de una versión PHP publicada en este foro (creo):
Código:

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

    /**
    * Calculate the CRC value with data from input string.
    * @param input input string
    * @return The calculated CRC value. Left padding with zeros.
    * // --NO: @throws UnsupportedEncodingException //
    */
    public static string GetCrc8(string input) {
        try
        {
            byte[] data = System.Text.Encoding.UTF8.GetBytes(input);
            int len = data.Length;
            byte crc = 0;
            for (int i = 0; i < len; i++)
                crc = _crc8Table[(crc ^ data[i]) & 0xff];
            long a = (crc & 0xFFL);
            return a.ToString("D3");
        }
        catch (System.Exception ex)
        {
            throw new System.Exception(ex.Message);
        }
    }
}


ermendalenda 25-09-2021 14:05:48

Duda. Se ha acabado el trimestre y al hacer los consumidores finales, me doy cuenta de que hay una factura de 10. 000 euros por error.
Que veis mejor anulación o rectificación? Teniendo en cta que estamos ya a día 18 del mes siguente al trimestre y no quiero declara esa factura para no pagar una pasta de impuestos, pero que tampoco me caiga una inspección por no declararlo por cruce de datos.

unomasmas 25-09-2021 14:32:04

Cita:

Empezado por ermendalenda (Mensaje 543120)
Duda. Se ha acabado el trimestre y al hacer los consumidores finales, me doy cuenta de que hay una factura de 10. 000 euros por error.
Que veis mejor anulación o rectificación? Teniendo en cta que estamos ya a día 18 del mes siguente al trimestre y no quiero declara esa factura para no pagar una pasta de impuestos, pero que tampoco me caiga una inspección por no declararlo por cruce de datos.


Factura rectificativa, sin duda. La anulación, según entendí por la explicación de uno de los expertos de Gipuzkoa en la videoconferencia sobre el servicio ZUZENDU, se da en supuestos contados y además es problemática porque, según entiendo yo, complica el encadenamiento (debes dejar la factura anulada para que el encadenamiento no se rompa y te queda ahí tocando las narices para la contabilidad). Así que, prácticamente siempre, entiendo yo, procede hacer factura rectificativa por error en factura original...

ermendalenda 25-09-2021 14:48:36

Cita:

Empezado por unomasmas (Mensaje 543121)
Factura rectificativa, sin duda. La anulación, según entendí por la explicación de uno de los expertos de Gipuzkoa en la videoconferencia sobre el servicio ZUZENDU, se da en supuestos contados y además es problemática porque, según entiendo yo, complica el encadenamiento (debes dejar la factura anulada para que el encadenamiento no se rompa y te queda ahí tocando las narices para la contabilidad). Así que, prácticamente siempre, entiendo yo, procede hacer factura rectificativa por error en factura original...

OK gracias. Tampoco quería usar yo la anulación que es demasiado "permisiva". Voy a intentar que no se contemplen las de anulación.

Ramon88 27-09-2021 11:13:59

Qr
 
Alguien sabria decirme si este QR esta correcto?


https://tbai.egoitza.gipuzkoa.eus/qr...=512.00&cr=065

chuski1212 27-09-2021 11:27:27

Hola, buenos días,

Estoy implementando el caso de rectificar una factura que no ha sido valida. Para ello, segun los ejemplos en Guipuzkoa, es posible enviar una factura rectificativa con los importes en negativo.

Al enviar el fichero XML con los importes en negativo recibo el siguiente error:

<Codigo>002</Codigo>
<Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. Detalle del error: cvc-pattern-valid: Value '-10.00' is not facet-valid with respect to pattern '\d{1,3}(\.\d{0,2})?' for type 'Tipo3.2Type'.</Descripcion>

Por lo que veo, hay una RegEx de validación que no espera un símbolo negativo.

Alguien sabe como puedo entonces enviar valores negativos?

Muchas gracias!! :)

sEngine 27-09-2021 11:37:11

Cita:

Empezado por Ramon88 (Mensaje 543127)
Alguien sabria decirme si este QR esta correcto?


https://tbai.egoitza.gipuzkoa.eus/qr...=512.00&cr=065


Lo estas mandando al real o al de pruebas? porque el de pruebas en lugar de "egoitza" es "prep"

Ramon88 27-09-2021 12:00:44

Cita:

Empezado por sEngine (Mensaje 543129)
Lo estas mandando al real o al de pruebas? porque el de pruebas en lugar de "egoitza" es "prep"


Pruebas!!!!
Gracias!

ermendalenda 27-09-2021 13:03:57

Cita:

Empezado por chuski1212 (Mensaje 543128)
Hola, buenos días,

Estoy implementando el caso de rectificar una factura que no ha sido valida. Para ello, segun los ejemplos en Guipuzkoa, es posible enviar una factura rectificativa con los importes en negativo.

Al enviar el fichero XML con los importes en negativo recibo el siguiente error:

<Codigo>002</Codigo>
<Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. Detalle del error: cvc-pattern-valid: Value '-10.00' is not facet-valid with respect to pattern '\d{1,3}(\.\d{0,2})?' for type 'Tipo3.2Type'.</Descripcion>

Por lo que veo, hay una RegEx de validación que no espera un símbolo negativo.

Alguien sabe como puedo entonces enviar valores negativos?

Muchas gracias!! :)

A mi me ha funcionado poniendo las unidades del producto en negativo, importe unitario en positivo y total en negativo.
A parte de los valores totales en los campos correspondientes de la factura rectificada

Band 27-09-2021 17:07:35

Cita:

Empezado por ermendalenda (Mensaje 543133)
A mi me ha funcionado poniendo las unidades del producto en negativo, importe unitario en positivo y total en negativo.
A parte de los valores totales en los campos correspondientes de la factura rectificada


Yo hago igual y esta para mi es la mejor opción.

ermendalenda 27-09-2021 18:11:17

Cita:

Empezado por Ramon88 (Mensaje 543127)
Alguien sabria decirme si este QR esta correcto?


https://tbai.egoitza.gipuzkoa.eus/qr...=512.00&cr=065




De todas formas estaría mal calculado el primer CR, con lo cual el segundo CR tampoco correspondería.
Cita:

EL primer Crc8 (para el identificador TBAI) respecto a "https://tbai.egoitza.gipuzkoa.eus/qr/?id=TBAI-B46648192-200921-COO4txcktuJnk-" es 097
El segundo crc8 respecto a la imagen QR "https://tbai.egoitza.gipuzkoa.eus/qr/?id=TBAI-B46648192-200921-COO4txcktuJnk-097&s=TB-2021-S&nf=59264&i=512.00"=000
El resultado de QR sería:
https://tbai.egoitza.gipuzkoa.eus/qr...COO4txcktuJnk-097&s=TB-2021-S&nf=59264&i=512.00&cr=000

Ramon88 27-09-2021 18:23:04

Cita:

Empezado por ermendalenda (Mensaje 543140)
De todas formas estaría mal calculado el primer CR, con lo cual el segundo CR tampoco correspondería.

Seguro?? Me esta funcionando el enlace


Pongo uno que termino de crear ahora mismo... y le das y abre.
https://tbai.prep.gipuzkoa.eus/qr/?i...=512.00&cr=160

Ramon88 27-09-2021 18:25:19

Una pregunta, leí por aqui, que para comprobar que el estado del servidor es correcto, lanzais un xml vacio? es posible que sea asi? lei que era sin body, pero se realmente que hay que quitar.

ermendalenda 27-09-2021 18:34:31

Cita:

Empezado por Ramon88 (Mensaje 543141)
Seguro?? Me esta funcionando el enlace


Pongo uno que termino de crear ahora mismo... y le das y abre.
https://tbai.prep.gipuzkoa.eus/qr/?i...=512.00&cr=160

sí perdona, está correcta, habia calculado el crc8 con la url incluida:confused:
Una observación por si no lo has tenido en cuenta: la firma puede contener caracteres que den fallos al intentar ir a la url, ejemplo "/", en ese caso tienes que poner el valor URI, pero en el identificador ssi tienes que poner la barra "/", en los 2 casos el primer CR sería el mismo, pero el segundo cr habria que calcularlo respecto al indetificador con el URI.

Ramon88 27-09-2021 18:35:47

Cita:

Empezado por ermendalenda (Mensaje 543143)
sí perdona, está correcta, habia calculado el crc8 con la url incluida:confused:

Es que es un follón de narices! :eek:

unomasmas 27-09-2021 20:15:27

Cita:

Empezado por Ramon88 (Mensaje 543127)
Alguien sabria decirme si este QR esta correcto?

https://tbai.egoitza.gipuzkoa.eus/qr...=512.00&cr=065

Hice los cálculos y me da lo que a ti :-).
Sin embargo, ten en cuenta que la url que estás usando es la de producción; no la de pruebas. La de pruebas es: https://tbai.prep.gipuzkoa.eus/qr/
Supongo que ya lo sabes, pero por si no...

unomasmas 27-09-2021 20:20:35

Cita:

Empezado por ermendalenda (Mensaje 543143)
... la firma puede contener caracteres que den fallos al intentar ir a la url, ejemplo "/", en ese caso tienes que poner el valor URI, pero en el identificador ssi tienes que poner la barra "/", en los 2 casos el primer CR sería el mismo, pero el segundo cr habria que calcularlo respecto al indetificador con el URI.

Perdona, no entiendo a qué te refieres. ¿Eres tan amable de poner un caso práctico, please, con el resultado que debiera tener, por favor?

Gracias. :-)

ermendalenda 27-09-2021 21:54:38

Cita:

Empezado por unomasmas (Mensaje 543147)
Perdona, no entiendo a qué te refieres. ¿Eres tan amable de poner un caso práctico, please, con el resultado que debiera tener, por favor?

Gracias. :-)


Fijaos que en el siguiente Identificador:
TBAI-00000006Y-270921-i8l17Dnn7IdR/-231

Hay una barra "/" en la firma, en el caracter numero 13
i8l17Dnn7IdR/

En este caso, si generaramos el QR(el dibujo) tal cual, no funcionaria la URL,
para que funcionara tendriamos que convertir el caracter "/" al código URI(Codigo URL, el que se genera en las direcciones cuando escribimos)


Yo lo que hago es que siempre paso la firma a codigo URI(URL)
https://batuz.eus/QRTBAI/?id=TBAI-00...&i=2.70&cr=041


Ahora vamos a lo del CR:

1.Generamos el identificador:
TBAI-00000006Y-270921-i8l17Dnn7IdR/-
2.Calculamos el CRC8
231

3.Generamos El identificador TBAI
TBAI-00000006Y-270921-i8l17Dnn7IdR/-231

4.Generamos el QR y le agregamos el mismo CRC8(aunque parezca extraño)
https://batuz.eus/QRTBAI/?id=TBAI-00...&nf=527&i=2.70

5.Calculamos el segundo CRC8, pero esta vez a partir del codigo generado anterior con el URI o URIS que hayas querido (aún más extraño, pero es la normativa)
041
https://batuz.eus/QRTBAI/?id=TBAI-00...&i=2.70&cr=041

Y listo
(Lo que si hay quee tener claro que el identificador tiene que estar escrito en la factura con su barra "/" aunque en el QR esté traducida la barra

Para generar el URI solo hay que obtener el Hexadecimal del Ascii del caracter

Para generar el URI en VB:

Código:

Codigo_uri=TEXT_TO_codigo_uri(texto_origen)
FUNCTION TEXT_TO_codigo_uri(bufo)

    For a = 1 To Len(bufo)
        sql_buff = Mid(bufo, a, 1)
        sql_buff = LTrim(Hex(Asc(sql_buff)))
        If Len(sql_buff) = 1 Then
            sql_buff = "0" & sql_buff
        End If
        TEXT_TO_codigo_uri = TEXT_TO_codigo_uri & "%" & sql_buff
       
    Next
END FUNCTION


Saludos

ermendalenda 28-09-2021 09:04:32

Cita:

Empezado por Ramon88 (Mensaje 543142)
Una pregunta, leí por aqui, que para comprobar que el estado del servidor es correcto, lanzais un xml vacio? es posible que sea asi? lei que era sin body, pero se realmente que hay que quitar.

Supongo que solo manda un archivo xml con cabecera: <?xml version="1.0" encoding="UTF-8" ?>


Se me ocurre que sea para estar constantemente (cada cierto tiempo) escaneando el estado del servicio, por tener un indicador en pantalla, que tampoco es mala idea

Neftali [Germán.Estévez] 28-09-2021 09:20:01

Cita:

Empezado por ermendalenda (Mensaje 543148)
Fijaos que en el siguiente Identificador:
TBAI-00000006Y-270921-i8l17Dnn7IdR/-231
...

Buena explicación.
^\||/^\||/^\||/^\||/

Cita:

Empezado por unomasmas (Mensaje 543147)
no entiendo a qué te refieres. ¿Eres tan amable de poner un caso práctico, please, con el resultado que debiera tener, por favor?

Dentro de este mismo hilo, en esta página (páginas 30, 31 y 32) ya tratamos el tema de los caractres especiales.
Por si le quieres echar un vistazo.

ermendalenda 28-09-2021 10:09:53

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 543150)
Buena explicación.
^\||/^\||/^\||/^\||/



Dentro de este mismo hilo, en esta página (páginas 30, 31 y 32) ya tratamos el tema de los caractres especiales.
Por si le quieres echar un vistazo.

Estoy pensando que como estemos escaneando el servicio continuamente van a ser miles de conexiones a la vez. Buff. Eso va a ser contraproducente.

HerensugeBeltz 28-09-2021 10:49:15

Cita:

Empezado por ermendalenda (Mensaje 543149)
Supongo que solo manda un archivo xml con cabecera: <?xml version="1.0" encoding="UTF-8" ?>

Correcto. EL proceso es muy rápido y puedes usarlo con un temporizador o antes de realizar cualquier envío.


La franja horaria es GMT +2. Ahora son las 16:03:02.

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