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)

rci 20-10-2021 11:04:28

Cita:

Empezado por HerensugeBeltz (Mensaje 543609)
No podéis utilizar un certificado basado en fichero? Si usáis la clase X509Certificate2, con el método Import podéis cargar el certificado y, en teoría, asignárselo al objeto HttpWebRequest.

Por cierto, según la información de Microsoft:
We don't recommend that you use HttpWebRequest for new development. Instead, use the System.Net.Http.HttpClient class.


Hola HerensugeBeltz, disculpa no habia visto tu respuesta. Muchas gracias también.


Ya utilizamos la clase X509Certificate2 y tenemos el certificado y lo asignamos al objeto HttpWebRequest. Por lo que se al asignarle el certificado le indicas cual tiene que utilizar y luego se va al almacén de certificados del usuario y busca si allí encuentra el certificado que le has indicado.



Si, ya leí que Microsoft no recomienda usar HttpWebRequest sino HttpClient :( pero me suena que al principio lo intentamos con HttpClient y no pudimos hacerlo y al final utilizamos HttpWebRequest.



Ahora estoy intentando algo y creo que me va a funcionar. cuando lo confirme lo comparto.


Saludos y muchas gracias

elcharlie 20-10-2021 11:05:56

Cita:

Empezado por keys (Mensaje 543617)
Muchas gracias.

¿Puedes generar un factura sin serie?, si lo hago con serie funciona, pero si es sin serie no funciona.

Gracias.

Siempre hay que usar serie de factura. Eso creo yo
Ahora mismo el único error que me dá es al reemplazar el símbolo + de la url por %2B, que me supongo que todavía no lo tendrán controlado.

hago_preguntas 20-10-2021 11:10:11

Cita:

Empezado por keys (Mensaje 543613)
Hola me acaban de comunicar de hacienda que ya lo han solucionado.



Pero sigo sin conseguir que me funcione. Has tenido en cuenta a la hora de calcular el crc la / del final. Puedes poner un ejemplo?

Gracias

Lo de la barra / al final, debe ser simplemente si la url que lleva a la factura la tiene o no, pero el cálculo es el mismo para todos (respetando el orden de los parámetros y haciendo codificación url de los mismos) en la url de pruebas si la tiene y debería de ir en el cálculo del crc y en la de producción aparentemente no la tiene y no debería de ir, es lo que yo entiendo.

HerensugeBeltz 20-10-2021 11:11:28

Cita:

Empezado por elcharlie (Mensaje 543619)
Siempre hay que usar serie de factura. Eso creo yo.

Según la documentación, la serie es opcional. Entiendo que sólo es obligatoria en determinados casos (por ejemplo lo comentado recientemente en este foro: se te cae el sistema y emites las facturas a mano. Una vez solucionado el problema das de alta esas facturas con una serie especial).

Corregidme si me equivoco.

hago_preguntas 20-10-2021 11:23:09

Según el fichero xsd, es opcional:

Cita:

<complexType name="CabeceraFacturaType">
<sequence>
<element name="SerieFactura" type="T:TextMax20Type" minOccurs="0"/>
<element name="NumFactura" type="T:TextMax20Type"/>
<element name="FechaExpedicionFactura" type="T:FechaType"/>
<element name="HoraExpedicionFactura" type="T:HoraType"/>
<element name="FacturaSimplificada" type="T:SiNoType" minOccurs="0"/>
<element name="FacturaEmitidaSustitucionSimplificada" type="T:SiNoType" minOccurs="0"/>
<element name="FacturaRectificativa" type="T:FacturaRectificativaType" minOccurs="0"/>
<element name="FacturasRectificadasSustituidas" type="T:FacturasRectificadasSustituidasType" minOccurs="0" />
</sequence>
</complexType>
y la documenentación de las especificaciones funcionales indica:
Cita:

Serie de la factura.
 Clave: s
 Valor: serie de la factura según la normativa de facturación. Debe corresponder con
la serie incluida en el fichero TBAI (campo “SerieFactura”).
Quizás haya que poner el valor en blanco algo como:
Cita:

&s

keys 20-10-2021 11:31:40

Cita:

Empezado por elcharlie (Mensaje 543619)
Siempre hay que usar serie de factura. Eso creo yo
Ahora mismo el único error que me dá es al reemplazar el símbolo + de la url por %2B, que me supongo que todavía no lo tendrán controlado.

Como dicen los compañeros lo normal es no tener serie de factura y por eso es opcional. Sólo en determinados casos hay que usar serie en las facturas.

keys 20-10-2021 11:34:53

Cita:

Empezado por hago_preguntas (Mensaje 543622)
Según el fichero xsd, es opcional:



y la documenentación de las especificaciones funcionales indica:


Quizás haya que poner el valor en blanco algo como:

Estoy haciendo lo mismo que en resto de las haciendas cuando no hay serie. Es decir dejarlo en blanco &s=&nf=

espinete 20-10-2021 11:44:01

Cita:

Empezado por unomasmas (Mensaje 543600)
Una cosa es la generación de la factura (del XML firmado y con QR generado) y otra el envío. Son procesos independientes. Puedes (debes) firmar el XML y generar su correspondiente código QR antes de imprimir (de hecho, lo necesitas para imprimirlo en la factura). Una vez generada puede enviarse inmediatamente o quedarse ahí y enviarla después junto con otras...

Gracias por la aclaración. Estaba acostumbrado a la factura electrónica de algunos países de Latinoamérica y, como ellos no requieren el "encadenamiento" me estaba liando intentando hacerlo igual con Ticketbai.

No obstante, me surge entonces otra duda... Si la generación y firma del XML hay que hacerla en el momento de hacer la venta (ya que se necesita el QR para imprimirlo en la factura o tícket), PERO el envío puede ser ahora o dentro de unos días... ¿debo entonces guardar en algún sitio el XML firmado, ya que me hará falta para adjuntarlo al XML del envío de facturas, no?

Me refiero a Bizkaia, pero supongo que se aplica también a Gipuzkoa y Araba, ya que pueden ocurrir errores de conexión, etc. y necesitemos hacer los envíos más adelante.

En el envío, sea de la provincia que sea, se necesita el XML firmado de la factura. Si el envío se puede hacer en cualquier otro momento, independientemente de la firma, necesitaré ese XML a posteriori, por lo que en algún sitio habrá que guardarlo, no?

No es un poco locura almacenar los XML de (presumiblemente) miles de facturas, ya sea en archivos sueltos o en la propia base de datos?

elcharlie 20-10-2021 11:54:59

Cita:

Empezado por keys (Mensaje 543624)
Estoy haciendo lo mismo que en resto de las haciendas cuando no hay serie. Es decir dejarlo en blanco &s=&nf=

Desconocía el dato, gracias por la aclaración, siempre se aprende algo. La verdad es que me hubiera ido bien saberlo antes, pero bueno, ya lo tenemos puesto para que siempre envíe serie. Aun así, alguien ha probado a generar el QR con los caracteres %2B? porque a mi esos son los que me da error. Error que no me dá en las otras diputaciones.

adolphsys 20-10-2021 13:15:04

La comprobación QR en Araba ya funciona
 
Ya pueden comprobarse las facturas subidas a Araba en el entorno de pruebas, y no es necesario suprimir el slash final de la URL para el cálculo del CRC, o sea funciona como Vizcaya y Guipúzcoa.

keys 20-10-2021 13:51:40

Cita:

Empezado por adolphsys (Mensaje 543628)
Ya pueden comprobarse las facturas subidas a Araba en el entorno de pruebas, y no es necesario suprimir el slash final de la URL para el cálculo del CRC, o sea funciona como Vizcaya y Guipúzcoa.

Pruebalo con un factura sin serie.

edari 20-10-2021 14:03:03

Pues efectivamente ya funciona



Cita:

Empezado por keys (Mensaje 543629)
Pruebalo con un factura sin serie.


https://pruebas-ticketbai.araba.eus/...=280.74&cr=189

keys 20-10-2021 14:03:43

Me contestan esto de hacienda de alava.

Cita:

Os confirmamos que teníamos problemas en la consulta de facturas sin informar la serie. Por favor, probarlo de nuevo porque ya debería estar solucionado.

Ahora ya funciona bien tanto con serie como sin serie.

edari 20-10-2021 14:15:00

Cita:

Empezado por keys (Mensaje 543629)
Pruebalo con un factura sin serie.




Funciona unos sí y otros no :eek::eek:


Be patient

Creo que el problema, el mío, me salen mal los QR que añado yo el %2B

David M 20-10-2021 15:44:39

Cita:

Empezado por edari (Mensaje 543632)
Funciona unos sí y otros no :eek::eek:


Be patient

Creo que el problema, el mío, me salen mal los QR que añado yo el %2B

A mí tampoco me funciona si contiene %2F ("/")

elcharlie 20-10-2021 16:13:17

Cita:

Empezado por David M (Mensaje 543633)
A mí tampoco me funciona si contiene %2F ("/")

Yo en la url el único carácter que reemplazo es el símbolo + por %2B, con el símbolo / no he tenido ningún problema en las demás diputaciones.

edari 20-10-2021 16:43:16

Cita:

Empezado por David M (Mensaje 543633)
A mí tampoco me funciona si contiene %2F ("/")




Contestado



Buenas tardes edari,


El CRC lo habéis calculado sobre https://pruebas-ticketbai.araba.eus/...00988&i=189.35 y https://pruebas-ticketbai.araba.eus/...00989&i=176.16
Debéis de generarlo sobre https://pruebas-ticketbai.araba.eus/...00988&i=189.35 y https://pruebas-ticketbai.araba.eus/...00989&i=176.16
Si los generáis como os indico, manteniendo los caracteres del Identificativo TicketBAI sin codificarlos, os funciona correctamente:Un saludo.





Y efectivamente funciona.


p.d.
Tanto costaba ir de la mano con Guipuzcoa con esto? Vizcaya no sé como va porque todavía no he podido subir nada

David M 20-10-2021 16:47:40

Cita:

Empezado por elcharlie (Mensaje 543634)
Yo en la url el único carácter que reemplazo es el símbolo + por %2B, con el símbolo / no he tenido ningún problema en las demás diputaciones.

Anda! Pues tienes razón!
En Álava si no reemplazo el símbolo / por %2F me muestra la consulta del QR perfectamente.
He probado de las dos formas en Gipuzkoa y me acepta tanto con la / como con %2F.
Yo creo que al principio no aceptaba la / y por eso lo tengo programado así.
Esperaré a ver si al final admiten las dos formas en Álava también.

Gracias elcharlie!

David M 20-10-2021 16:50:58

Cita:

Empezado por edari (Mensaje 543635)
Contestado


Y efectivamente funciona.


p.d.
Tanto costaba ir de la mano con Guipuzcoa con esto? Vizcaya no sé como va porque todavía no he podido subir nada

Vaya tela...
Gracias por compartir la explicación.

APO 20-10-2021 17:21:14

Hola a todos, soy otra "víctima" :confused: del TicketBAI que estoy empezando a encontrarme con los primeros problemas. Ante todo, agradeceros a todos por las aportaciones en este foro ya que son de muchísima ayuda ^\||/qP:-)

El primer problema que me encuentro es cómo cargar los certificados en la constante ACertificateList de la función NetHTTPClient1NeedClientCertificate. He leído en algún post anterior que lo hace el procedimiento DoGetClientCertificates, pero ¿cómo lo hago para llamar a este procedimiento? Perdonar mi ignorancia, pero es que estoy muy verde en todo este asunto. El error que me da al enviar el XML es "Empty certificate list", supongo porque tengo que cargar el certificado primero.
Código Delphi [-]
procedure TfrmEnvelm.NetHTTPClient1NeedClientCertificate(const Sender: TObject; const ARequest: TURLRequest; const ACertificateList: TCertificateList; var AnIndex: Integer);
var
  i: Integer;
begin
  for i := 0 to ACertificateList.Count - 1 do
  begin

    if SameText(ACertificateList[i].Subject, mi_certificado.Caption) then
    begin
      AnIndex := i;
      break;
    end;
  end;
end;
Muchas gracias!!!:)


La franja horaria es GMT +2. Ahora son las 06:46:24.

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