Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Quizas tenga algo que ver esto de la barra. Lo estoy probando pero no me sale el mismo crc.

Cita:
URL de acceso a la aplicación web de lectura del QR, específica para cada Administración tributaria:
o Araba/Álava: https://ticketbai.araba.eus/TBAI/QRTBAI (sin “/” para el cálculo del CRC).
o Bizkaia: https://batuz.eus/QRTBAI/ (con “/” al final para el cálculo del CRC).
o Gipuzkoa: https://tbai.egoitza.gipuzkoa.eus/qr/ (con “/” al final para el cálculo del CRC).
Responder Con Cita
  #2  
Antiguo 19-10-2021
Avatar de YellowStone
YellowStone YellowStone is offline
Miembro
 
Registrado: feb 2007
Ubicación: Adeje
Posts: 165
Poder: 20
YellowStone Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Quizas tenga algo que ver esto de la barra. Lo estoy probando pero no me sale el mismo crc.

La url de pruebas para los códigos QR en Álava es esta, según la guía de pruebas:


https://pruebas-ticketbai.araba.eus/tbai/qrtbai/

Pero también falla.
Responder Con Cita
  #3  
Antiguo 20-10-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Cita:
Empezado por YellowStone Ver Mensaje
La url de pruebas para los códigos QR en Álava es esta, según la guía de pruebas:


https://pruebas-ticketbai.araba.eus/tbai/qrtbai/

Pero también falla.
Ya la direccion ya se que es la que ponéis, pero me refiero por tener en cuenta o no la / para calcular el crc. Que parece que se calcula distinto que en las otras haciendas. Por cierto hoy el propio enlace del ejemplo de la hacienda de ALAVA da error.

https://pruebas-ticketbai.araba.eus/...2537.70&cr=017
Responder Con Cita
  #4  
Antiguo 20-10-2021
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 193
Poder: 14
elcharlie Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Ya la direccion ya se que es la que ponéis, pero me refiero por tener en cuenta o no la / para calcular el crc. Que parece que se calcula distinto que en las otras haciendas. Por cierto hoy el propio enlace del ejemplo de la hacienda de ALAVA da error.

https://pruebas-ticketbai.araba.eus/...2537.70&cr=017
Yo me supongo que estarán arreglándolo, me dá a mí la sensación de que algo mal tenian.
Responder Con Cita
  #5  
Antiguo 20-10-2021
sEngine sEngine is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 5
sEngine Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Ya la direccion ya se que es la que ponéis, pero me refiero por tener en cuenta o no la / para calcular el crc. Que parece que se calcula distinto que en las otras haciendas. Por cierto hoy el propio enlace del ejemplo de la hacienda de ALAVA da error.

https://pruebas-ticketbai.araba.eus/...2537.70&cr=017

esa no me va pero el QR que generé yo ayer, hoy si que me funciona
Responder Con Cita
  #6  
Antiguo 20-10-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Cita:
Empezado por sEngine Ver Mensaje
esa no me va pero el QR que generé yo ayer, hoy si que me funciona
Hola me acaban de comunicar de hacienda que ya lo han solucionado.

Cita:
Hemos tenido un problema técnico a la hora de implantar la consulta del QR en el entorno de Pruebas. En principio ya os debería funcionar.
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
Responder Con Cita
  #7  
Antiguo 20-10-2021
sEngine sEngine is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 5
sEngine Va por buen camino
Lo hago igual que para las demas haciendas
un QR que va



https://pruebas-ticketbai.araba.eus/...&i=94.5&cr=122
Responder Con Cita
  #8  
Antiguo 20-10-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Muchas gracias.

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

Gracias.
Responder Con Cita
  #9  
Antiguo 20-10-2021
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 193
Poder: 14
elcharlie Va por buen camino
Cita:
Empezado por keys Ver Mensaje
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
A mi tampoco me funciona, no sé lo que es.
Edito:
Me funcionan algunos y otros no, los que no me funcionan son los que tienen el símbolo +, que reemplazo por %2B

Última edición por elcharlie fecha: 20-10-2021 a las 11:00:40.
Responder Con Cita
  #10  
Antiguo 20-10-2021
hago_preguntas hago_preguntas is offline
Registrado
 
Registrado: oct 2021
Posts: 8
Poder: 0
hago_preguntas Va por buen camino
Cita:
Empezado por keys Ver Mensaje
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.
Responder Con Cita
  #11  
Antiguo 19-10-2021
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Question C# .Net envio TBAI desde un servicio => certificados

Buenas tardes, nuestra aplicación está desarrollada en c# .Net y para el envío a las diputaciones forales utilizamos System.Net.HttpWebRequest


Nuestra idea es que las facturas se vayan enviando desde un servicio desatendido, que esté funcionando en el servidor.
Ya lo tenemos implementado y dentro del entorno de desarrollo funciona correctamente.

El problema lo tenemos cuando lo ejecutamos como servicio, que arranca con el usuario del sistema local (System).

En ese caso las diputaciones nos contestan con una excepción (cada una con un mensaje distinto) pero que indica que no ha encontrado el certificado de cliente para el envío.

Hemos visto que HttpWebRequest para envar a TicketBAI debe tener el certificado en el almacén de certificados del usuario (instalado en el navegador) y además debemos indicar que certificado del almacén se utilizará para el envio añadiendolo en la propiedad ClientCertificates del HttpWebRequest. Por ejemplo:

Código:
    var httpWebRequest = HttpWebRequest.CreateHttp(url);
    httpWebRequest.AllowAutoRedirect = true;
    httpWebRequest.ClientCertificates.Add(this.certificate);
    httpWebRequest.Method = "POST";
    …
Pues bien, parece que cuando ejecutamos como servicio de windows, como arranca con el usuario system, el HttpWebRequest no tiene acceso al almacén de certificados de los otros usuarios, por ejemplo el usuario con que se inicia sesión en el servidor y donde instalamos el certificado en el navegador.

Alguien que trabaje con .Net y utilice un servicio de windows para el envío nos puede echar un cable por favor?


Muchas gracias!!
Responder Con Cita
  #12  
Antiguo 19-10-2021
adolphsys adolphsys is offline
Miembro
 
Registrado: abr 2006
Posts: 76
Poder: 21
adolphsys Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Buenas tardes, nuestra aplicación está desarrollada en c# .Net y para el envío a las diputaciones forales utilizamos System.Net.HttpWebRequest


Nuestra idea es que las facturas se vayan enviando desde un servicio desatendido, que esté funcionando en el servidor.
Ya lo tenemos implementado y dentro del entorno de desarrollo funciona correctamente.

El problema lo tenemos cuando lo ejecutamos como servicio, que arranca con el usuario del sistema local (System).

En ese caso las diputaciones nos contestan con una excepción (cada una con un mensaje distinto) pero que indica que no ha encontrado el certificado de cliente para el envío.

Hemos visto que HttpWebRequest para envar a TicketBAI debe tener el certificado en el almacén de certificados del usuario (instalado en el navegador) y además debemos indicar que certificado del almacén se utilizará para el envio añadiendolo en la propiedad ClientCertificates del HttpWebRequest. Por ejemplo:

Código:
    var httpWebRequest = HttpWebRequest.CreateHttp(url);
    httpWebRequest.AllowAutoRedirect = true;
    httpWebRequest.ClientCertificates.Add(this.certificate);
    httpWebRequest.Method = "POST";
    …
Pues bien, parece que cuando ejecutamos como servicio de windows, como arranca con el usuario system, el HttpWebRequest no tiene acceso al almacén de certificados de los otros usuarios, por ejemplo el usuario con que se inicia sesión en el servidor y donde instalamos el certificado en el navegador.

Alguien que trabaje con .Net y utilice un servicio de windows para el envío nos puede echar un cable por favor?


Muchas gracias!!
Hola, si nos detallas un poco más el problema tal vez alguien pueda ayudarte:
  • Te refieres a un servicio de Windows puro y duro, o se consume mediante Internet Information Services (IIS)?
  • Se trata de un entorno Terminal Services?
  • Cómo se conectan los usuarios?
  • Cada uno tendrá su propio certificado o utilizan todos el mismo?
Aunque no trabajo en .Net, si el certificado está instalado para el usuario XXX lógicamente no será accesible por el usuario YYY.
Responder Con Cita
  #13  
Antiguo 19-10-2021
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Cita:
Empezado por adolphsys Ver Mensaje
Hola, si nos detallas un poco más el problema tal vez alguien pueda ayudarte:
  • Te refieres a un servicio de Windows puro y duro, o se consume mediante Internet Information Services (IIS)?
  • Se trata de un entorno Terminal Services?
  • Cómo se conectan los usuarios?
  • Cada uno tendrá su propio certificado o utilizan todos el mismo?
Aunque no trabajo en .Net, si el certificado está instalado para el usuario XXX lógicamente no será accesible por el usuario YYY.

Hola adolphsys, muchas gracias por la respuesta.


Si, me refiero a un servicio de windows puro y duro. Tenemos una aplicación de consola que hace el envio. Si lo ejecutamos como aplicación funciona correctamente, porque lo estamos ejecutando con el usuario X que tiene el certificado instalado en su almacén de certificados.


Si arrancamos la aplicación desde un servicio de windows, hacemos que arranque con el usuario del sistema local (System) y luego no tiene acceso al almacén de certificados del usuario X.

Si configuramos el servicio para que arranque con el usuario X, luego funciona pero pensamos que no es buena idea, porque por ejemplo, si el usuario cambia el password, el servicio deja de funcionar, por eso queremos que arranque con el usuario del sistema local, como viene por defecto.




A parte tenemos la aplicación TPV en cada ordenador, esa aplicación genera el xml, lo firma, lo guarda e imprime la factura.

La aplicación de envio solo está en el servidor y va cogiendo las facturas firmadas en el orden correcto y las va enviando.


El certificado es el mismo para todos. Cada ordenador con TPV tiene el certificado instalado para firmar.

En el servidor también hay el certificado instalado para poder enviar.


Creo que el problema es del componente que utilizamos System.Net.HttpWebRequest que por lo que parece siempre busca en el almacén de certificados del usuario y claro...

No se si alguién que utilice C# .Net usa otro componente para enviar TicketBAI



Muchas gracias!
Responder Con Cita
  #14  
Antiguo 19-10-2021
unomasmas unomasmas is offline
Miembro
 
Registrado: dic 2019
Posts: 194
Poder: 7
unomasmas Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola adolphsys, muchas gracias por la respuesta.


Si, me refiero a un servicio de windows puro y duro. Tenemos una aplicación de consola que hace el envio. Si lo ejecutamos como aplicación funciona correctamente, porque lo estamos ejecutando con el usuario X que tiene el certificado instalado en su almacén de certificados.


Si arrancamos la aplicación desde un servicio de windows, hacemos que arranque con el usuario del sistema local (System) y luego no tiene acceso al almacén de certificados del usuario X.

Si configuramos el servicio para que arranque con el usuario X, luego funciona pero pensamos que no es buena idea, porque por ejemplo, si el usuario cambia el password, el servicio deja de funcionar, por eso queremos que arranque con el usuario del sistema local, como viene por defecto.




A parte tenemos la aplicación TPV en cada ordenador, esa aplicación genera el xml, lo firma, lo guarda e imprime la factura.

La aplicación de envio solo está en el servidor y va cogiendo las facturas firmadas en el orden correcto y las va enviando.


El certificado es el mismo para todos. Cada ordenador con TPV tiene el certificado instalado para firmar.

En el servidor también hay el certificado instalado para poder enviar.


Creo que el problema es del componente que utilizamos System.Net.HttpWebRequest que por lo que parece siempre busca en el almacén de certificados del usuario y claro...

No se si alguién que utilice C# .Net usa otro componente para enviar TicketBAI



Muchas gracias!
Yo no lo tengo como servicio y posiblemente eso cambie las cosas pero no necesariamente tienes que coger el certifcado del almacén. Puedes pasarle un certificado concreto, con lo que sería igual qué usuario se conecte.

Código:
HttpWebRequest.ClientCertificates = new X509CertificateCollection() { certificado };
Responder Con Cita
  #15  
Antiguo 20-10-2021
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Cita:
Empezado por unomasmas Ver Mensaje
Yo no lo tengo como servicio y posiblemente eso cambie las cosas pero no necesariamente tienes que coger el certifcado del almacén. Puedes pasarle un certificado concreto, con lo que sería igual qué usuario se conecte.

Código:
HttpWebRequest.ClientCertificates = new X509CertificateCollection() { certificado };



Hola unomasmas, muchas gracias por la respuesta.
Ya le paso el certificado concreto, de la misma forma que se hace con el código que has indicado, añadiendolo a la colección ClientCertificates:
Código:
 httpWebRequest.ClientCertificates.Add(this.certificate);
Yo entiendo que esto sirve para decirle cual de los certificados del almacén tiene que utilizar. Pero si no están en el almacén de certificados del usuario (instalados en el navegador) no funciona el post de httpWebRequest para TicketBAI porque no encuentra certificado de cliente.

De hecho en la documentacion de microsoft ya lo indica:
https://docs.microsoft.com/es-es/dot...t?view=net-5.0

hay la frase:
Cita:
Para la autenticación de cliente con HttpWebRequest , el certificado de cliente debe estar instalado en el almacén de certificados del usuario actual.
Supongo que tu también lo tienes en el almacén y por eso te funciona cuando no es un servicio de windows.


Muchas gracias de todas formas, a ver si hay suerte.
Responder Con Cita
  #16  
Antiguo 21-10-2021
unomasmas unomasmas is offline
Miembro
 
Registrado: dic 2019
Posts: 194
Poder: 7
unomasmas Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola unomasmas, muchas gracias por la respuesta.
Ya le paso el certificado concreto, de la misma forma que se hace con el código que has indicado, añadiendolo a la colección ClientCertificates:
Código:
 httpWebRequest.ClientCertificates.Add(this.certificate);
Yo entiendo que esto sirve para decirle cual de los certificados del almacén tiene que utilizar. Pero si no están en el almacén de certificados del usuario (instalados en el navegador) no funciona el post de httpWebRequest para TicketBAI porque no encuentra certificado de cliente.

De hecho en la documentacion de microsoft ya lo indica:
https://docs.microsoft.com/es-es/dot...t?view=net-5.0

hay la frase:

Supongo que tu también lo tienes en el almacén y por eso te funciona cuando no es un servicio de windows.

Muchas gracias de todas formas, a ver si hay suerte.
Gracias por tu respuesta. Efectivamente, yo lo cargo de un fichero, pero también lo tengo en el almacén y seguramente por eso me funciona. No hay nada como leer (pero no lo había hecho). ¡Qué curioso! Intento ayudarte y me ayudas tú a mi. Gracias.
Responder Con Cita
  #17  
Antiguo 20-10-2021
Avatar de HerensugeBeltz
HerensugeBeltz HerensugeBeltz is offline
Miembro
 
Registrado: may 2021
Ubicación: Hondarribia
Posts: 90
Poder: 6
HerensugeBeltz Va por buen camino
Cita:
Empezado por rci Ver Mensaje
... Tenemos una aplicación de consola que hace el envio. Si lo ejecutamos como aplicación funciona correctamente, porque lo estamos ejecutando con el usuario X que tiene el certificado instalado en su almacén de certificados.

Si arrancamos la aplicación desde un servicio de windows, hacemos que arranque con el usuario del sistema local (System) y luego no tiene acceso al almacén de certificados del usuario X.

Si configuramos el servicio para que arranque con el usuario X, luego funciona pero pensamos que no es buena idea, porque por ejemplo, si el usuario cambia el password, el servicio deja de funcionar, por eso queremos que arranque con el usuario del sistema local, como viene por defecto.

A parte tenemos la aplicación TPV en cada ordenador, esa aplicación genera el xml, lo firma, lo guarda e imprime la factura.

La aplicación de envio solo está en el servidor y va cogiendo las facturas firmadas en el orden correcto y las va enviando.

El certificado es el mismo para todos. Cada ordenador con TPV tiene el certificado instalado para firmar.

En el servidor también hay el certificado instalado para poder enviar.

Creo que el problema es del componente que utilizamos System.Net.HttpWebRequest que por lo que parece siempre busca en el almacén de certificados del usuario y claro...
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.
Responder Con Cita
  #18  
Antiguo 20-10-2021
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Cita:
Empezado por HerensugeBeltz Ver Mensaje
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
Responder Con Cita
  #19  
Antiguo 20-10-2021
adolphsys adolphsys is offline
Miembro
 
Registrado: abr 2006
Posts: 76
Poder: 21
adolphsys Va por buen camino
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.
Responder Con Cita
  #20  
Antiguo 21-10-2021
unomasmas unomasmas is offline
Miembro
 
Registrado: dic 2019
Posts: 194
Poder: 7
unomasmas Va por buen camino
Cita:
Empezado por rci Ver Mensaje
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.
Supongo que es debido a que los métodos de System.Net.Http.HttpClient son asíncronos; me parece haber leído que la comunicación con los servicios de las Diputaciones ha de ser síncrono. Lo dejo aquí pero no estoy muy seguro de esto, así que corregidme si no estoy en lo cierto. Gracias

Suerte con esa nueva vía!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 3716 19-01-2026 20:01: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:36:12.


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
Copyright 1996-2007 Club Delphi