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 24-03-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola buenas, claro, tienes un problema si quieres usar un servidor externo que además no es tuyo y quieres usar certificado de dispositivo,para ello el propietario del servidor tendria que solicitar dicho certificado, ¿Que haria yo?:
*Pide el certificado de dispositivo del equipo que hace la llamada.
*Aloja un php en el servidor mandale el xml y el certificado de dispostivo de cada equipo local(que puede estar alojado en una carpeta en vez de enviarlo en cada llamada), al enviar la llamada tienes que especificar con que certificado firrmar.

Des esta forrma estas usando un servicio externo pero en realidad estas firmando con tu dispositivo.


Por otro lado si quieres asegurarte un pelín más:

*La llamada al php que te devuelva el xml firmado y desde el equipo local haces el envio y guarda en el que quieras, mientras puedas dar acceso..


Saludos
Para la firma en la nube es habitual usar servidores de nube donde se alojan los certificados para realizar firmas, pero con una seguridad para evitar que se acceda a esos certificados por otras personas, HSM (Hardware Security Module),
Responder Con Cita
  #2  
Antiguo 25-03-2022
Alkavanyatur Alkavanyatur is offline
Registrado
 
Registrado: mar 2022
Posts: 1
Poder: 0
Alkavanyatur Va por buen camino
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
Responder Con Cita
  #3  
Antiguo 25-03-2022
DemonAscun DemonAscun is offline
Miembro
 
Registrado: mar 2021
Posts: 11
Poder: 0
DemonAscun Va por buen camino
Porque tardas 2 segundos en obtener el QR? Nosotros trabajamos también con grandes volúmenes de facturas y el proceso que consume más tiempo es el firmado de la factura al tener que encolar las facturas para conservar el encadenamiento. Una vez firmada ya la factura la generación del QR es instantáneo e independiente del envío.
Responder Con Cita
  #4  
Antiguo 25-03-2022
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 Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
ME imagino que como todos el cuello de botella lo tienes a la hora de firmar el fichero xml. Si es así lo único que puedes hacer es cambiar la forma de firmar los xml, si usas el programa de hacienda este es un poco lento en firmar. Hasta que no se firma uno no se puede hacer el siguiente factura, ya que depende de esta.
Responder Con Cita
  #5  
Antiguo 25-03-2022
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Cita:
Empezado por Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
Hola Alkavanyatur,

2 segundos es una barbaridad de tiempo para generar y firmar el XML.
Sólo se me ocurren varios casos en que se pudiese tardar tanto:

1- Que la generación y firma del XML la hagas sobre un servidor en Internet que esté situado en la superficie de la Luna (justo un ping de 2 segundos)
2- Que utilices para la firma el software Autofirma-Tortuga del Ministerio de Hacienda (un auténtico ejemplo de software ultralento)
3- Que para el proceso utilices red con protocolo TCP/Paloma_mensajera_lenta

Si quieres un sistema de firma rápida en red, te basta con montar un simple microordenador Raspberry PI de unos 30€ en tu propia red local con el software de firma firmador.php de nuestro colega (y nunca bien alabado) Bilbur.
Con este sistema, lo normal será que no pases de 10 milisegundos en tiempo para obtener la firma.

Con 1.000 facturas por minuto el Raspberry Pi estará aburrido por tan poca carga de trabajo

Saludos
Responder Con Cita
  #6  
Antiguo 01-06-2022
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
Cita:
Empezado por Sistel Ver Mensaje
Hola Alkavanyatur,

2 segundos es una barbaridad de tiempo para generar y firmar el XML.
Sólo se me ocurren varios casos en que se pudiese tardar tanto:

1- Que la generación y firma del XML la hagas sobre un servidor en Internet que esté situado en la superficie de la Luna (justo un ping de 2 segundos)
2- Que utilices para la firma el software Autofirma-Tortuga del Ministerio de Hacienda (un auténtico ejemplo de software ultralento)
3- Que para el proceso utilices red con protocolo TCP/Paloma_mensajera_lenta

Si quieres un sistema de firma rápida en red, te basta con montar un simple microordenador Raspberry PI de unos 30€ en tu propia red local con el software de firma firmador.php de nuestro colega (y nunca bien alabado) Bilbur.
Con este sistema, lo normal será que no pases de 10 milisegundos en tiempo para obtener la firma.

Con 1.000 facturas por minuto el Raspberry Pi estará aburrido por tan poca carga de trabajo

Saludos

Estoy preparando una API en PHP
Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc)
Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada"


Gracias
Responder Con Cita
  #7  
Antiguo 02-06-2022
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Cita:
Empezado por bilbur Ver Mensaje
Estoy preparando una API en PHP
Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc)
Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada"
Gracias
Hola bilbur,

El fichero JSON que se envía a mi API contiene sólo los datos básicos:
- Identificación del emisor
- Datos del destinatario (si lo hay, como en el caso de factura completa)
- Tipo de factura y características esenciales
- Líneas de detalle (nombres de productos, importes unitarios, cantidades, descuentos, tipo de IVA, ...)

No se envían ni serie, ni número ni fecha de factura ni datos económicos ni total.
La API se encarga de:
- Verificar los datos que le llegan
- Recabar los datos de la última factura (de ese tipo) del emisor desde la base de datos
- Crear líneas de detalles adicionales si hay descuentos globales en la factura
- Calcular datos económicos como bases, cuotas de IVA, totales, ...
- Asignar serie, número y fecha de factura
- Crear el XML
- Firmar el XML
- Comprobar la validez del XML firmado (con el esquema XSD)
- Grabar los datos de la factura, los detalles y los importes en la base de datos
- Devolver un JSON con todos los datos calculados (bases, cuotas, totales, líneas de detalle), serie, número y fecha de la factura y códigos TBAI y QR
- Enviar a la correspondiente Hacienda Foral el XML TicketBAI y registrar el envío en la base de datos.

Opté porque la API lo haga todo y retorne todo lo necesario para crear el documento de la factura.
No puedo confiar en que llegue, del emisor, el total correcto o el número de factura o fecha correcta. Prefiero que eso lo genere mi API.

Saludos

Última edición por Sistel fecha: 02-06-2022 a las 09:13:31.
Responder Con Cita
  #8  
Antiguo 03-06-2022
Avatar de Eric Mtz
Eric Mtz Eric Mtz is offline
Miembro
 
Registrado: jun 2021
Ubicación: Vitoria-Gasteiz
Posts: 43
Poder: 0
Eric Mtz Va por buen camino
Question Una ayudita

Buenas a todos, tengo un pequeño dolor de muelas:

Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo:

"No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..."

La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar?

Gracias y buen finde!
Responder Con Cita
  #9  
Antiguo 03-06-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 Eric Mtz Ver Mensaje
Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo:

"No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..."

La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar?
¿Exactamente qué XSD es el que te da problemas?
¿El error que obtienes, te da ejecutando algún código (dices que la generación parace correcta)? Puedes poner el código.
__________________
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
  #10  
Antiguo 25-03-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
Lo más parecido que me ha pasado es al meter un bmp en un pdf de más de 4 megas. Mira si la generación del qr puedes reducir le el tamaño, suelen tener varias opciones de tamaño para cuando el contenido es grabde
Responder Con Cita
  #11  
Antiguo 25-03-2022
joselugrk joselugrk is offline
Miembro
 
Registrado: abr 2021
Posts: 29
Poder: 0
joselugrk Va por buen camino
Question Petición de Consulta a Bizkaia

Hola y muchas gracias por vuestra colaboración,

Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error:

Date: Fri, 25 Mar 2022 16:38:49 GMT
Server: JBoss-EAP/7
Content-Encoding: gzip
eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación)
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?=
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: application/xml; charset=UTF-8
Content-Length: 0

El XML que envío es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd">
<Cabecera>
<Modelo>140</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>C00</Operacion>
<Version>1.0</Version>
<Ejercicio>2022</Ejercicio>
<ObligadoTributario>
<NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas)
<ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FiltroConsultaIngresosConSG>
<CabeceraFactura>
<SerieFactura>VT21</SerieFactura>
</CabeceraFactura>
<NumPaginaConsulta>1</NumPaginaConsulta>
</FiltroConsultaIngresosConSG>
</lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion>

Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...?

Saludos y buen fin de semana,
Joselu
Responder Con Cita
  #12  
Antiguo 25-03-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por joselugrk Ver Mensaje
Hola y muchas gracias por vuestra colaboración,

Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error:

Date: Fri, 25 Mar 2022 16:38:49 GMT
Server: JBoss-EAP/7
Content-Encoding: gzip
eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación)
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?=
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: application/xml; charset=UTF-8
Content-Length: 0

El XML que envío es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd">
<Cabecera>
<Modelo>140</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>C00</Operacion>
<Version>1.0</Version>
<Ejercicio>2022</Ejercicio>
<ObligadoTributario>
<NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas)
<ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FiltroConsultaIngresosConSG>
<CabeceraFactura>
<SerieFactura>VT21</SerieFactura>
</CabeceraFactura>
<NumPaginaConsulta>1</NumPaginaConsulta>
</FiltroConsultaIngresosConSG>
</lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion>

Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...?

Saludos y buen fin de semana,
Joselu
La verdad que no he llegado ahí, pero parece que no corresponde llo que estas poniendo en <FiltroConsultaIngresosConSG> con lo pone en el xsd de la definición correctamente:
<complexType name="FiltroConsultaIngresosConFacturaType">
<sequence>
<element name="Destinatario" type="tiposcomplejosocumentoType" minOccurs="0"/>
<element name="CabeceraFactura" type="tiposconsulta:CabeceraFacturaConsultaType" minOccurs="0"/>
<element name="Epigrafe" type="tiposbasicos:stringMax7Digits" minOccurs="0"/>
<element name="Estado" type="enum:EstadoRegistroConsultaEnum" minOccurs="0"/>
<element name="NumPaginaConsulta" type="tiposbasicos:intPositiveType"/>
</sequence>
</complexType>
Responder Con Cita
  #13  
Antiguo 28-03-2022
joselugrk joselugrk is offline
Miembro
 
Registrado: abr 2021
Posts: 29
Poder: 0
joselugrk Va por buen camino
Thumbs up Solucionado

Cita:
Empezado por ermendalenda Ver Mensaje
La verdad que no he llegado ahí, pero parece que no corresponde llo que estas poniendo en <FiltroConsultaIngresosConSG> con lo pone en el xsd de la definición correctamente:
<complexType name="FiltroConsultaIngresosConFacturaType">
<sequence>
<element name="Destinatario" type="tiposcomplejosocumentoType" minOccurs="0"/>
<element name="CabeceraFactura" type="tiposconsulta:CabeceraFacturaConsultaType" minOccurs="0"/>
<element name="Epigrafe" type="tiposbasicos:stringMax7Digits" minOccurs="0"/>
<element name="Estado" type="enum:EstadoRegistroConsultaEnum" minOccurs="0"/>
<element name="NumPaginaConsulta" type="tiposbasicos:intPositiveType"/>
</sequence>
</complexType>
Hola Ermendalenda,

Al final el problema era que estaba llamando a la a la URI de alta, modificación y anulación y debía ser a la de consulta:
https://pruesarrerak.bizkaia.eus/N3B4001M/kontsulta

Saludos y muchas gracias,
Joselu
Responder Con Cita
  #14  
Antiguo 28-03-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 5
Irreo Va por buen camino
Cita:
Empezado por Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?

No sé si te servirá, pero yo hago lo siguiente:
- Lo primero de todo genero el registro de factura vacío, con solo el número, y fecha y hora de expedición.
- Genero un registro en la "cola" de facturas para ese ID.
- Empiezo a procesar los datos enviados (factura, líneas detalle, etc.)
- Actualizo la tabla de factura con los datos definitivos, guardo las líneas de factura en otra tabla etc.
- Genero XML, QR, etc...


La instrucción SQL que utilizo genera el número y actualiza al mismo tiempo por lo que nunca se van a repetir. Tengo una tabla de "configuración" donde guardo el último número para cada CIF y serie (son dos empresas).

Código PHP:
$sql "UPDATE tb_config ".
    
" SET factura_siguiente = (@factura_siguiente := factura_siguiente) + 1 ".
    
" WHERE id_serie = ".fQuote($eDb->real_escape_string($seriesId));
fQuery($sql);

$sql "SELECT @factura_siguiente AS factura_siguiente";
$rsNextInvoice fQuery($sql); 
Es decir, podrías por un lado hacer una llamada para simplemente generar la factura y obtener su ID, y después seguir haciendo tus cosas, y en principio ya da igual que tardes 2 segundos, porque si otro proceso va a generar otra factura, se le asignará el siguiente número.
Responder Con Cita
  #15  
Antiguo 27-03-2022
chenech chenech is offline
Miembro
 
Registrado: dic 2013
Posts: 138
Poder: 13
chenech Va por buen camino
XML de ejemplo

Buenas tardes, alguien tiene un XML de una factura de ejemplo antes de firmar y no le importaria compartir?
Mil gracias...

Al intentar con AutoFirma me da el siguiente mensaje:

[Fatal Error] :15:32: Byte no vßlido 1 de la secuencia UTF-8 de 1 bytes
<afirma><result>false</result><response><msg>Error en la operacion de firma: Las firmas XAdES Enveloped solo pueden realizarse sobre datos XML</msg></response></afirma>

Creo que me falta algo en el pie del XML referente a Signatures.
Ayuda, gracias.
Responder Con Cita
  #16  
Antiguo 28-03-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 chenech Ver Mensaje
Al intentar con AutoFirma me da el siguiente mensaje:

[Fatal Error] :15:32: Byte no vßlido 1 de la secuencia UTF-8 de 1 bytes
<afirma><result>false</result><response><msg>Error en la operacion de firma: Las firmas XAdES Enveloped solo pueden realizarse sobre datos XML</msg></response></afirma>
Revisa que no estés generando el fichero con la codificación incorrecta (UTF8 sin BOM), lo del Byte 1 es sospehoso en ese sentido.
La correcta es UTF8.
De todas formas te adjunto un XML sin firmar.
Archivos Adjuntos
Tipo de Archivo: zip XML_TicketBAI.zip (1,0 KB, 22 visitas)
__________________
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
  #17  
Antiguo 28-03-2022
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Signo en descuentos globales

Hola,

Como ya habíamos comentado en otras ocasiones, para registrar un descuento global de la factura (por ejemplo un descuento pronto pago), es preciso añadir una línea de detalle para ese descuento.
En esa línea de detalle hay que poner, en Cantidad, -1 y en ImporteUnitario el importe, en positivo, correspondiente al descuento, antes de IVA.
Quedamos en que en ImporteUnitario no se permitían importes negativos.

Leo en https://web.araba.eus/documents/1050...ES+%281%29.pdf
Cita:
Para incluir un descuento total de la factura (por ejemplo: pronto pago) incluya una línea que
recoja en el ImporteTotal el importe del descuento en negativo.
Ejemplo: Si queremos aplicar un descuento pronto pago de un 5% a una venta con <Importeunitario>
de 600 y <Importe total>de 726, añadiríamos una nueva línea de detalle del siguiente modo:
<DescripcionDetalle>Descuento pronto pago</DescripcionDetalle>
<Cantidad>1.00</Cantidad>
<ImporteUnitario>-30.00</ImporteUnitario> (sin IVA. En negativo. Se ha calculado 600* 5% = 30)
<ImporteTotal>-36.30</ImporteTotal> (con IVA 21%)
Extrañado de esta peculiaridad de Álava, les he consultado y me han respondido:
Cita:
Realmente en Araba nos da igual que indiquéis la "Cantidad" negativa e "Importe unitario" positivo o "Cantidad" positiva e "Importe unitario" negativo, lo que importa es que el resultado de la misma sea negativo. Es decir, que el "Importe Total" sea negativo, ya que se está indicando un descuento.
Podéis enviarlo como mejor le venga a vuestro software para que os valga para todas las administraciones.
Así que sí, Álava se desmarca admitiendo ImporteUnitario en negativo.
Curioso que cada una de las tres Haciendas Forales tenga criterios diferentes para TicketBAI.

Saludos
Responder Con Cita
  #18  
Antiguo 28-03-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 Sistel Ver Mensaje
Así que sí, Álava se desmarca admitiendo ImporteUnitario en negativo.
Curioso que cada una de las tres Haciendas Forales tenga criterios diferentes para TicketBAI.
Saludos
Me da la impresión de que los más restrictivos y "especilitos" son los de Vizcaya.
La actitud en este caso de Álava me parece bastante correcta y sensata (y pensando un poco en nosotros):
"Podéis enviarlo como mejor le venga a vuestro software para que os valga para todas las administraciones."


__________________
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
  #19  
Antiguo 28-03-2022
chenech chenech is offline
Miembro
 
Registrado: dic 2013
Posts: 138
Poder: 13
chenech Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Revisa que no estés generando el fichero con la codificación incorrecta (UTF8 sin BOM), lo del Byte 1 es sospehoso en ese sentido.
La correcta es UTF8.
De todas formas te adjunto un XML sin firmar.
Muchas gracias Germán, tenia dos errores, uno en la cabecera, solucionado con el ejemplo que has enviado, muchas gracias.
El otro era en los parámetros de AutoFirma, que he visto en otros post ejemplos y ya me funciona.
Mil gracias.
Responder Con Cita
  #20  
Antiguo 28-03-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 5
Irreo Va por buen camino
EDIT: Solucionado, explicación abajo

Buenas tardes,

A ver si alguien puede arrojarme algo de luz, porque tengo delante una pared y estoy dando palos de ciego.

Tengo ya funcionando el proceso de generar una factura, el XML y el QR.

Me he puesto con el tema de enviar a Hacienda, y por ahora he conseguido que me llegue el aviso de "001 - no se ha usado certificado de cliente".

- He generado un certificado de dispositivo usando la web de Izenpe (es gratuito).
- Se ha creado un P12, que he convertido a PEM y CRT con open_ssl, y lo he subido a Plesk.
- El certificado no puedo usarlo directamente en un dominio porque dice que "la conexión no es segura".
- Para probar a enviar algo firmado, me he descargado el Autofirma y he firmado usando ese certificado P12. En principio parece que OK.
- Al intentar subir por PHP este XML, me dice que no se ha usado certificado SSL.

En sí, el dominio desde el que envío los datos, tiene un certificado Let's Encrypt que funciona correctamente, pero no sé si esto se llega a usar o detectar.

He estado mirando diferentes opciones, y he visto que desde PHP se puede especificar qué fichero quieres usar como certificado.

Por un lado he probado esto:

Código PHP:
    // XML a Hacienda
    
$opts = array(
        
"ssl" => array(
            
"local_cert" => "/var/www/vhosts/xx/bai.pem",
            
"locak_pk" => "/var/www/vhosts/xx/bai_key.pem",
            
"passphrase" => "xxxxxx",
            
"allow_self_signed"    => true,
            
"cafile" =>'/var/www/vhosts/xxx/bai.pem',
            
"capath" =>'/var/www/vhosts/xxx/',
            
"verify_peer" => false
        
),
        
"http" => array (
            
"method" => "POST",
            
"header" =>
              
"Accept-language: es\r\n".
              
"Content-type: application/xml;charset=UTF-8\r\n",
            
"content" => $xml
        
)
    );
    
$context stream_context_create($opts);

    
$haciendaResult file_get_contents($eHaciendaUrlfalse$context); 
Decir que he estado jugando poniendo y quitando parámetros "local_pk", "ca_file", etc... sin resultado satisfactorio. He puesto el último ejemplo usado.

El error es este:

Código:
<br />
<b>Warning</b>:  file_get_contents(): Unable to set private key file `/var/www/vhosts/xxx/dkbai.pem' in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br />
<br />
<b>Warning</b>:  file_get_contents(): Failed to enable crypto in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br />
<br />
<b>Warning</b>:  file_get_contents(tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta): Failed to open stream: operation failed in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br />
Después he probado con CURL:

Código PHP:
$ch curl_init();

curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_CAINFO'/var/www/vhosts/xxx/bai.pem');

curl_setopt($chCURLOPT_URL$eHaciendaUrl);
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_SSH_PRIVATE_KEYFILE'/var/www/vhosts/xxx/bai_key.pem');
curl_setopt($chCURLOPT_SSLCERT'/var/www/vhosts/xxx/bai.pem');
curl_setopt($chCURLOPT_SSLCERTPASSWD"xxxxxx");
curl_setopt($chCURLOPT_POSTFIELDS$xml);
curl_setopt($chCURLOPT_FOLLOWLOCATION0);
curl_setopt($chCURLOPT_REFERER$eHaciendaUrl);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt ($chCURLOPT_VERBOSE 1);

curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);

$ch_result curl_exec($ch); 
Y el resultado es el siguiente:

Código:
58unable to load client key: -8178 (SEC_ERROR_BAD_KEY)
Básicamente, no solo no tengo ni idea de qué está pasando o cómo solucionarlo. Ni siquiera se si voy bien encaminado intentando enviar así los XML.

¿Alguien me ilumina un poco el camino?

Entiendo que quizás es algún problema con el fichero de la Key, pero no me hago idea el qué...

Gracias!
Saludos.

EDIT: SOLUCIONADO!!

El problema era el comando que utilicé para convertir el P12 en PEM. Un usuario de Stackoverflow dice que se le solucionó con este comando:

Código:
openssl pkcs12 -in keyname.p12 -out keyname.pem -nodes -clcerts
Y me ha servido al parecer, porque ahora el error es Hacienda es "004", de que falta algún campo, etc.... pero yo diría que el primer obstáculo ya sido sorteado.

Última edición por Irreo fecha: 28-03-2022 a las 17:45:46. Razón: Problema solucionado.
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 01:35:37.


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