Pagamenti Stripe e webhook nelle app create con AI
Il redirect “pagamento riuscito” migliora l’esperienza, ma non è una prova contabile: l’ordine cambia stato soltanto dopo un evento autorevole verificato.
Architettura essenziale per integrare Stripe in un’app creata con AI: checkout server-side, webhook firmati, idempotenza, ordini e rimborsi verificabili.
Procedura passo passo
Tratta il pagamento come una sequenza di stati, non come un singolo pulsante. L’app prepara l’ordine, Stripe gestisce il pagamento, il webhook conferma l’esito e il database conserva ciò che è successo.
- 01
Disegna gli stati dell’ordine
Definisci almeno bozza, in attesa, pagato, fallito, rimborsato e annullato. Stabilisci quale evento autorizza ogni passaggio e quali transizioni sono vietate.
- 02
Crea il checkout sul server
Il server legge prodotto, prezzo, valuta, cliente e metadati da dati affidabili, crea l’ordine locale e soltanto dopo apre la sessione Stripe.
- 03
Gestisci il webhook
Verifica la firma sul corpo originale, salva l’identificativo dell’evento e aggiorna ordine e richiesta in modo idempotente, anche con ritentativi o eventi fuori ordine.
- 04
Prova rimborso e riconciliazione
Esegui test separati per successo, abbandono, fallimento, doppio evento e rimborso. Confronta periodicamente lo stato locale con Stripe.
Non inviare password, token, file .env o chiavi API private tramite form pubblici, chat o screenshot.
Il server crea il pagamento
Prezzo, valuta, cliente e metadati dell’ordine devono derivare da dati controllati sul backend. Il browser riceve solo ciò che serve ad aprire il checkout.
Cosa controllare
- Non accettare importi decisi dal client.
- Collega sessione e ordine con identificativi stabili.
- Separa ambiente di test e ambiente live.
Il webhook conferma l’esito
Stripe firma gli eventi inviati al backend. La firma va verificata sul corpo originale e ogni evento deve poter essere elaborato una sola volta senza creare duplicati.
Cosa controllare
- Salva l’identificativo dell’evento.
- Gestisci eventi fuori ordine e ritentativi.
- Non fidarti del solo ritorno nel browser.
Ordini, rimborsi e riconciliazione
Lo stato locale deve poter essere confrontato con quello del provider. Conferme, rimborsi e fallimenti vanno tracciati in modo leggibile e con accesso limitato.
Cosa controllare
- Mantieni una cronologia degli stati.
- Proteggi le funzioni amministrative.
- Prevedi una procedura di riconciliazione.
Come decidere il prossimo passo
Il flusso è affidabile quando il browser non decide importi o stati, ogni evento può essere ripetuto senza duplicati e ordini, rimborsi e fallimenti possono essere ricostruiti anche giorni dopo.
Hai un’app che non riesce a superare la fase di demo?
Descrivi cosa funziona, cosa manca e il risultato che vuoi ottenere. La richiesta viene valutata personalmente da Giambattista.