___________________________________________________________________
NOTA MODERADOR: Voy a aprovechar este segundo mensaje para colocar aquí la recopilación de códigos utiles que tenemos aquí, para que sea más accesible.
__________________________________________________________________________
ESCENARIOS
Primero aclarar que tenemos 2 escenarios en cuanto a lo que tenemos que programar. Tienen partes comunes y partes diferentes.[list]
PASOS DEL PROCESO
Los 3 primeros pasos son iguales en ambos escenarios y el cuarto paso (envío) varía en la forma del envío y en la información que se envía.
PASO 1) Generar el fichero XML de la factura
PASO 2) Firmar el XML
* Se puede firmar con
los componentes SecureBlackBox (pago)
(
https://www.clubdelphi.com/foros/sho...postcount=1792)
(
https://www.clubdelphi.com/foros/sho...&postcount=272)
(
http://www.clubdelphi.com/foros/show...&postcount=279)
* Parece que se puede firmar también con el
software gratuito de Autofirma del Gobierno de España. Incluye programa para línea de commandos.
(
https://www.clubdelphi.com/foros/sho...&postcount=374)
(
https://www.clubdelphi.com/foros/sho...&postcount=746)
(
https://www.clubdelphi.com/foros/sho...&postcount=681)
* En este hilo también comentan que se pueden usar con componentes de chillkat:
https://www.chilkatsoft.com
Y aquí el código de ejemplo (Chilkat):
https://www.clubdelphi.com/foros/showpost.php?p=540583&postcount=482
(y siguientes mensajes)
* Firmar utilizando
Autofirma
https://www.clubdelphi.com/foros/sho...postcount=2935
PASO 3) Generar TBAI y Código QR
* Implementacion
CRC para php
(
https://www.clubdelphi.com/foros/sho...&postcount=111)
* Implementacion
CRC para Delphi
* Implementación de una DLL para calcular el CRC8
(
https://www.clubdelphi.com/foros/sho...&postcount=607)
(
https://www.clubdelphi.com/foros/sho...&postcount=113)
(
https://www.clubdelphi.com/foros/sho...&postcount=114)
(
https://www.clubdelphi.com/foros/sho...&postcount=279)
* Implementación en C++ Builder:
(
https://www.clubdelphi.com/foros/sho...postcount=2973)
El último paso (que se refiere al envío y a la información que se envía) es diferente en ambos escenarios. A continuación se muestran hilos que trabajan en ambos.
BIZKAIA (BATUZ) Y GUIPUZKOA y ALAVA (TICKETBAI)
PASO 4) Enviar el fichero
Los ficheros XML
se envían en paquetes de 1000 (máximo) dentro de otro fichero que
se comprime con gzip.
Este envío se hace cada 4 días (si estás en el SII) o cada trimestre
Hay varias formatos de envío (140, 240,...)
*
Opcion1: TNetHTTPClient
(
https://www.clubdelphi.com/foros/sho...&postcount=288)
(
https://www.clubdelphi.com/foros/sho...&postcount=310)
(
https://www.clubdelphi.com/foros/sho...&postcount=331)
(
https://www.clubdelphi.com/foros/sho...&postcount=338)
(
https://www.clubdelphi.com/foros/sho...&postcount=410)
* Opción2: TRESTClient + TRESTRequest + TRESTResponse
(
https://www.clubdelphi.com/foros/sho...&postcount=406)
*
Opcion3: TsbxHTTPClient (SecureBlackBox)
(
https://www.clubdelphi.com/foros/sho...&postcount=350)
https://www.clubdelphi.com/foros/sho...postcount=3463
* Opción4: Utilizando commandos CURL
(
https://www.clubdelphi.com/foros/sho...&postcount=769)
(
https://www.clubdelphi.com/foros/sho...&postcount=737)
(
https://www.clubdelphi.com/foros/sho...&postcount=746)
(
https://www.clubdelphi.com/foros/sho...&postcount=889)
(
https://www.clubdelphi.com/foros/sho...postcount=2996)
https://www.clubdelphi.com/foros/sho...postcount=4078
*
Fichero BAT con commandos CURL
* Opción 5: Utilizando las Indy + OpenSSL
(
https://www.clubdelphi.com/foros/sho...&postcount=946)
(
https://www.clubdelphi.com/foros/sho...postcount=2300)
(
https://www.clubdelphi.com/foros/sho...postcount=1811)
Para comprimir el archivo a gzip:
(
https://www.clubdelphi.com/foros/sho...&postcount=345)
Para descomprimir
(
https://www.clubdelphi.com/foros/sho...&postcount=427)
Codificación del fichero (dentro del gzip):
(
https://www.clubdelphi.com/foros/sho...&postcount=349)
Comprimir/descomprimir con 7ZIP
(
https://www.clubdelphi.com/foros/sho...&postcount=772)
Comprimir con el commando TAR de Windows:
(
https://www.clubdelphi.com/foros/sho...&postcount=723)
OTROS CÓDIGOS y LENGUAJES...
Visual Basic
Para conseguir datos del equipo (serial):
Ejecutable en VB,
código fuente,
DLL MSVBVM50.DLL necesaria para ejecutarlo
PHP
Caducidad de los certificados en PHP:
https://www.clubdelphi.com/foros/sho...postcount=2004
Envío utilizando PHP+POST y PHP+CURL
https://www.clubdelphi.com/foros/sho...postcount=2964
C++Builder
Envío utilizando SecureBlackBox
https://www.clubdelphi.com/foros/showpost.php?p=543496&postcount=1856
Funcion para calcular crc8:
https://www.clubdelphi.com/foros/showpost.php?p=546330&postcount=2973
C#
Obtener cadena del código QR en C#
https://www.clubdelphi.com/foros/sho...postcount=1825
Actualizaré los likns del primer mensaje con este.
NOTA: Si alguien quiere hacer alguna correción o completar este mensaje, decidlo y lo añado.