Codex · III

Abbonamenti

Abbonamenti

Coin Moebius può vendere abbonamenti ricorrenti su ogni provider fiat nel tuo menu. Il commerciante configura il prezzo e l'intervallo una volta su un prodotto; il pulsante di acquisto sul sito resta esattamente lo stesso. Il provider di pagamento gestisce la fatturazione ricorrente, conserva la carta, riprova i rinnovi falliti e ospita la pagina di cancellazione. Coin Moebius ritrasmette gli eventi del ciclo di vita al tuo codice.

Configurare un prodotto ricorrente

Nella scheda Prodotti della dashboard, imposta il campo Fatturazione su Mensile o Annuale invece di Una tantum. Appare un campo opzionale Prova gratuita per i giorni di prova che vuoi concedere prima del primo addebito. Salva il prodotto.

L'HTML del pulsante di acquisto non cambia. Lo stesso attributo product-id="pro-plan" funziona per una tantum o ricorrente; il worker controlla l'impostazione di fatturazione del prodotto al checkout e instrada attraverso l'API di abbonamento del provider quando applicabile.

<coin-moebius-buy
  project-id="proj_YOUR_ID"
  product-id="pro-plan"
  label="Subscribe to Pro">
</coin-moebius-buy>

Cosa non devi costruire

Il provider gestisce la pianificazione. Noi non conserviamo carte. Non eseguiamo cron job. Non riproviamo gli addebiti falliti. Non inviamo email di sollecito. Non ospitiamo una pagina di cancellazione. Tutta quella parte del sistema vive dentro Stripe (o qualunque provider fiat tu abbia collegato). Stai esternalizzando le parti difficili della fatturazione ricorrente all'azienda che le sta già gestendo per milioni di commercianti.

Eventi di abbonamento

I rinnovi e le cancellazioni appaiono come eventi webhook a cui il tuo server può reagire. Cinque tipi normalizzati coprono il ciclo di vita:

EventoQuando si attiva
subscription.createdNuova iscrizione. Porta l'importo del primo ciclo.
subscription.renewedUn ciclo non iniziale è andato a buon fine. Estendi l'accesso fino alla nuova fine del periodo.
subscription.payment_failedLa carta di un ciclo è stata rifiutata. Il sollecito del provider riprova secondo la sua pianificazione; di solito lo registri solo per visibilità.
subscription.canceledCancellazione terminale. Il cliente ha cancellato, il sollecito si è esaurito, o il commerciante ha cancellato.
subscription.updatedCambio di stato, aggiornamento carta, cambio di piano. Ispeziona il nuovo stato.

Identificare i clienti senza conservarli

Coin Moebius è un router di pagamenti, non un database di clienti. Non conserviamo mai email, nomi, indirizzi dei clienti o gli id cliente interni del provider. Se la tua applicazione ha account utente (la maggior parte delle app di abbonamento li ha), passa il tuo id utente opaco come customer-ref sul pulsante di acquisto. Il pulsante lo inoltra al worker come metadata.customerRef, lo passiamo al provider, lo riportiamo su ogni evento e conserviamo solo quella stringa opaca. Per noi è priva di significato; per te è la chiave esterna verso il tuo sistema utenti.

<coin-moebius-buy
  project-id="proj_YOUR_ID"
  product-id="pro-plan"
  customer-ref="user_bob_42">
</coin-moebius-buy>

Quando ti serve un dettaglio più profondo del cliente (email, ultime quattro cifre della carta, note sulle contestazioni), la dashboard collega ogni transazione con carta al provider che l'ha gestita (Stripe, PayPal, Square o Authorize.Net), dove la scheda del cliente vive davvero. Ci clicchi sopra; noi non la duplichiamo mai.

Cancellazione: rimanda, non costruire

I clienti cancellano nel portale ospitato del provider: lo Stripe Customer Portal, la pagina dell'account PayPal del cliente, e così via. Il portale gestisce cancellazione, aggiornamenti della carta, download delle ricevute e cambi di piano, tutta interfaccia che non devi costruire. Puoi portare il cliente nel portale con una sola chiamata API:

const res = await fetch(
  `https://api.coinmoebius.com/api/subscriptions/${projectId}/${subId}/portal-url`,
  { method: 'POST', body: JSON.stringify({ returnUrl: 'https://you.example/account' }) },
);
const { url } = await res.json();
window.location.assign(url);

Quali provider supportano gli abbonamenti oggi

Stripe e PayPal funzionano da capo a fondo tramite il pulsante di acquisto ospitato. Imposta un prodotto su Mensile o Annuale nella tua dashboard, incolla il pulsante sulla tua pagina e il clic avvia un vero abbonamento. Il provider gestisce i rinnovi.

Gli abbonamenti Square e Authorize.Net non girano tramite il pulsante di acquisto ospitato. Crei l'abbonamento tramite la tua integrazione con il provider (per Authorize.Net, significa raccogliere la carta sulla tua pagina con Accept.js; Square ha il suo checkout di abbonamento ospitato che puoi usare), poi punti il webhook del provider su di noi. Da lì il resto del sistema (instradamento dei webhook, dashboard, endpoint di stato, collegamento del cliente) funziona esattamente come per gli abbonamenti Stripe e PayPal. Vedi la prossima sezione.

I provider cripto (NOWPayments) non supportano la fatturazione ricorrente in questo prodotto. Le cripto ricorrenti sono piene di attriti su ogni gateway che abbiamo valutato; preferiamo non rilasciare nulla piuttosto che rilasciare una soluzione a metà.

Pronto a collegarlo?

Il piano gratuito copre la maggior parte dei siti e non chiede mai una carta.