Documentation menu

Portale dei membri e fatturazione dell'abbonamento

Il tuo abbonamento didattico vive su /learn/<slug> — un portale in cui accedono i tuoi abbonati, interamente separato dalla dashboard MailInApp e da qualsiasi account Firebase Auth. La fatturazione funziona come vere Stripe Subscriptions sul tuo account Stripe collegato, lo stesso account Connect usato dal checkout del blocco Prodotto, esteso qui agli abbonamenti/fatturazione ricorrenti.

Rivendica l'URL del tuo portale

In Impostazioni → Portale dei membri, rivendica uno <slug> (3–40 caratteri, lettere minuscole/numeri/trattini) — la stessa dinamica di rivendicazione-e-rinomina di un handle del profilo mittente, semplicemente con un proprio campo. Questo è l'URL a cui rimanderai dalle campagne e da ovunque altro promuovi l'abbonamento; può essere rinominato in seguito senza compromettere l'accesso degli abbonati esistenti.

Impostare i prezzi

Sempre in Impostazioni → Portale dei membri, aggiungi uno o più piani di abbonamento — un nome, un importo ricorrente e un intervallo mensile o annuale, con una prova gratuita facoltativa in giorni. Ogni piano corrisponde 1:1 a un Price Stripe sul tuo account collegato. I piani non possono essere eliminati una volta creati (anche i Price Stripe non possono essere eliminati), solo archiviati — un piano archiviato scompare dalla pagina pubblica di abbonamento ma resta valido per chiunque vi sia già iscritto, così archiviare non taglia mai fuori gli abbonati esistenti.

Il flusso di abbonamento

/learn/<slug>/subscribe?plan=<planId> è la pagina pubblica a cui rimandi da una campagna. Scegliila come destinazione del link per un blocco pulsante, oppure usa il preset Abbonati integrato dello studio (intestazione + testo + pulsante, la stessa dinamica "componi blocchi esistenti, nessun nuovo tipo di blocco" del preset Tabellone del verticale squadre sportive).

Un visitatore sceglie un piano e completa il pagamento tramite una vera sessione Stripe Checkout in modalità abbonamento. Al completamento, viene creata o abbinata per email una riga Subscriber, e viene inviata un'email di benvenuto con un link diretto nel portale.

Accedere senza un account MailInApp

Un abbonato non crea mai un account MailInApp. Accedere su /learn/<slug> avviene tramite link magico: inserisce la propria email, e gli viene inviato via email un link di accesso a un tocco tramite il tuo stesso SMTP/branding (non il modello predefinito di Firebase). Questo passaggio è limitato per frequenza e non rivela mai deliberatamente se quell'email è già abbonata. Cliccare il link dimostra che l'utente possiede l'indirizzo e lo accede al portale per quello specifico abbonamento.

Guardare una lezione

Ogni richiesta di riproduzione di una lezione esegue un controllo del diritto d'accesso live per ogni richiesta — non un link firmato di lunga durata come usano gli endpoint di conto alla rovescia o calendario. Ogni volta che un abbonato apre una lezione, MailInApp verifica lo stato attuale del suo abbonamento prima di generare un token di riproduzione a breve durata. Perdere l'accesso (un abbonamento cancellato o scaduto) ha effetto dalla richiesta immediatamente successiva, non solo al successivo caricamento della pagina. Una lezione contrassegnata come anteprima gratuita salta del tutto questo controllo e si riproduce per chiunque raggiunga il portale.

Gestire un abbonamento esistente

/learn/<slug>/account offre a un abbonato autenticato un pulsante Gestisci fatturazione che rimanda al Customer Portal ospitato dalla stessa Stripe — per aggiornare una carta, cambiare piano o cancellare — invece che MailInApp reimplementi da sé la gestione dell'abbonamento.

Cosa succede sugli eventi di fatturazione

  • Il checkout si completa → viene creata/abbinata la riga abbonato, l'abbonamento viene attivato, viene inviata un'email di benvenuto con un link nel portale.
  • Il pagamento fallisce → l'abbonato riceve un'email di sollecito che rimanda a /learn/<slug>/account per aggiornare la propria carta, mentre Stripe riprova automaticamente l'addebito — MailInApp non modifica l'accesso al primo fallimento, solo una volta che Stripe stesso segnala l'abbonamento come non più attivo.
  • L'abbonamento viene cancellato (dall'abbonato, o dopo che il sollecito esaurisce i tentativi) → l'accesso alle lezioni e sessioni in diretta riservate termina, e viene inviata un'email di cancellazione con un link di ritorno a /learn/<slug>/subscribe nel caso volesse tornare.

Vedi anche