SDK Java / Android

SDK para Java con soporte completo para Android (API 21+). Usa un patrón Builder para la creación del cliente y OkHttp como cliente HTTP.

Instalación

Maven:

xml
<dependency>
<groupId>do.com.ssd.ecfx</groupId>
<artifactId>ecf-dgii-sdk-java</artifactId>
<version>1.0.0</version>
</dependency>

Gradle:

typescript
implementation 'do.com.ssd.ecfx:ecf-dgii-sdk-java:1.0.0'

Uso rápido

python
import com.ssd.ecfx.EcfClient;
EcfClient client = new EcfClient.Builder()
.baseUrl("https://api.test.ecfx.ssd.com.do")
.apiKey("tu-api-key") // o usa ECF_DGII_API_KEY env var
.build();
// Enviar ECF con polling automático
EcfResponse result = client.sendEcf("rnc-empresa", ecfData);
System.out.println(result.getImpresionUrl());
System.out.println(result.getCodSec());
System.out.println(result.getFechaFirma());

Configuración de Polling

java
EcfClient client = new EcfClient.Builder()
.baseUrl("https://api.prod.ecfx.ssd.com.do")
.apiKey("tu-api-key")
.pollingMaxDurationMs(120000) // Timeout: 120 segundos (default)
.pollingIntervalMs(1000) // Intervalo: 1 segundo (default)
.build();

Cliente Frontend

El EcfFrontendClient proporciona acceso de solo lectura con cache de token cifrado en disco por defecto.

python
import com.ssd.ecfx.EcfFrontendClient;
EcfFrontendClient frontend = new EcfFrontendClient.Builder()
.baseUrl("https://api.prod.ecfx.ssd.com.do")
.getToken(() -> fetchTokenFromBackend())
.build();
// Consultar estado
EcfStatus status = frontend.getEcfStatus("track-id");

Compilar desde fuente

bash
./mvnw clean install

Android: El SDK es compatible con Android API 21+. Usa OkHttp y ThreeTenBP para máxima compatibilidad.