# Integrazione degli account e degli acquisti Licentivo

Questa guida descrive il fornitore Licentivo attuale. I commercianti che usano un altro sistema di licenze possono scegliere il [fornitore HTTP personalizzato](/it/launch-documents/external-licensing/); tale modalità non chiama Licentivo e non richiede la sua chiave API.

## Configurazione amministrativa

1. Creare prodotti e politiche in Licentivo.
2. Configurare una chiave amministrativa in lettura/scrittura in **Impostazioni di sistema → Licentivo** di Launch. L'origine Licentivo è fissa: `https://www.licentivo.com`.
3. Scegliere la politica per ogni versione del piano di vendita Launch. Launch legge il prodotto, la versione della politica e le impostazioni di visualizzazione dell'esecuzione.
4. Launch registra connessioni separate di fiducia degli account sandbox/live sotto la propria unica connessione amministrativa Licentivo, includendo la chiave pubblica di firma dell'identità e l'origine del commerciante.

La chiave amministrativa rimane cifrata sul server del commerciante. I file di installazione del client contengono soltanto informazioni pubbliche di instradamento e chiavi pubbliche fissate del prodotto.

## Sequenza delle API sul server

Tutti i percorsi seguenti si trovano su Licentivo e vengono chiamati da Launch con la propria credenziale amministrativa:

| Endpoint | Scopo |
| --- | --- |
| `GET /api/v1/products` | Individuazione dei prodotti |
| `GET /api/v1/policies`, `GET /api/v1/policies/{id}` | Individuazione delle politiche e controlli delle versioni |
| `GET /api/v1/launch/connections` | Individua le connessioni di fiducia per origine/ambiente |
| `POST /api/v1/launch/connections`, `PUT /api/v1/launch/connections/{id}` | Registra/aggiorna le chiavi pubbliche dell'identità e l'instradamento |
| `PUT /api/v1/launch/connections/{id}/plans/{plan}` | Registra la versione immutabile del piano di vendita e la mappatura della politica Licentivo |
| `POST /api/v1/launch/connections/{id}/events` | Invia un'istantanea assoluta e con versione dell'acquisto |
| `GET /api/v1/launch/connections/{id}/events/{event}` | Recupera/consulta il risultato originale |
| `POST /api/v1/launch/connections/{id}/events/{event}/retry` | Riprova lo stesso evento dopo la revisione |
| `POST /api/v1/launch/connections/{id}/session-revocations` | Notifica la revoca dell'account/della sessione |
| `GET /api/v1/launch/connections/{id}/session-revocations/{event}` | Verifica la ricevuta di revoca |

Launch registra i pagamenti verificati, la copertura pagata immutabile e l'attività in uscita in un'unica transazione locale. Un worker invia le date assolute complete dell'acquisto e un ID evento stabile. Soltanto una ricevuta `applied` conferma la sincronizzazione; la sola ricezione HTTP non la conferma.

I rimborsi e gli storni confermati rimuovono la copertura dell'ordine corrispondente. L'istantanea completa successiva può conservare un acquisto di base attivo, ridurne la durata, ripristinare un piano inferiore o terminare tutta la copertura. I tentativi successivi non aggiungono mai ulteriori giorni. Le vecchie associazioni di licenze emesse usano eventi di migrazione espliciti anziché riprodurre automaticamente vecchi comandi amministrativi.

## Procedura dell'applicazione del cliente

1. L'applicazione accede a Launch usando una sessione desktop dell'account.
2. `POST /api/v1/software/products/{id}/identity` su Launch restituisce un'attestazione di identità valida al massimo 120 secondi, vincolata alla sessione reale, al prodotto, all'ambiente, all'emittente e al destinatario.
3. Il pacchetto Launch la passa in memoria all'SDK ufficiale, che la scambia con Licentivo tramite `POST /api/v1/launch/exchange`.
4. Licentivo emette la credenziale del dispositivo e il permesso firmato. L'SDK verifica ogni azione protetta, la politica dei dispositivi, lo stato di esecuzione e la regola offline.

Un accesso Launch, un ordine pagato o un acquisto sincronizzato non costituiscono un permesso di esecuzione. Il vecchio endpoint `/credential` restituisce HTTP 410. La consegna del fornitore personalizzato è un'API separata limitata al titolare e non ripristina quell'endpoint.

L'elenco dei dispositivi, le quote di rilascio, le generazioni delle associazioni e il ripristino della disconnessione rimangono responsabilità di Licentivo. Le revoche di sessioni/account usano notifiche persistenti con ricevute per ambiente; la revoca offline rimane vincolata alle autorizzazioni SDK già emesse.

Consultare [Integrazione delle applicazioni](/it/launch-documents/software-sdk-integration/), [Limiti degli acquisti e degli account](/it/launch-documents/account-purchase-boundary/), [Integrazione manuale](/it/launch-documents/manual-integration/) e [Collaudo](/it/launch-documents/acceptance/). L'implementazione si trova in `internal/adapters/licentivo/launch_bridge.go`, `internal/app/launch_trust.go`, `internal/app/purchase_sync.go` e `internal/app/identity.go`.
