Codex · III

Abonnementen

Abonnementen

Coin Moebius kan terugkerende abonnementen verkopen op elke fiat-provider in uw menu. De verkoper configureert de prijs en het interval één keer op een product; de buy button op de site blijft exact hetzelfde. De betaalprovider draait de terugkerende facturatie, houdt de kaart vast, probeert mislukte verlengingen opnieuw, en host de annuleringspagina. Coin Moebius geeft de levenscyclus-events door aan uw code.

Een terugkerend product opzetten

Stel op het tabblad Producten van het dashboard het veld Facturatie in op Maandelijks of Jaarlijks in plaats van Eenmalig. Een optioneel veld Gratis proefperiode verschijnt voor eventuele proefdagen die u wilt toekennen vóór de eerste afschrijving. Sla het product op.

De HTML van de buy button verandert niet. Hetzelfde product-id="pro-plan"-attribuut werkt voor eenmalig of terugkerend; de worker controleert de facturatie-instelling van het product bij checkout en routeert via de abonnements-API van de provider waar van toepassing.

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

Wat u niet hoeft te bouwen

De provider draait het schema. Wij slaan geen kaarten op. Wij draaien geen cron-jobs. Wij proberen mislukte afschrijvingen niet opnieuw. Wij sturen geen aanmaningsmails. Wij hosten geen annuleringspagina. Die hele kant van het systeem leeft binnen Stripe (of welke fiat-provider u ook hebt verbonden). U besteedt de moeilijke delen van terugkerende facturatie uit aan het bedrijf dat ze al voor miljoenen verkopers draait.

Abonnements-events

Verlengingen en annuleringen verschijnen als webhook-events waarop uw server kan reageren. Vijf genormaliseerde types dekken de levenscyclus:

EventWanneer het afvuurt
subscription.createdNieuwe aanmelding. Draagt het bedrag van de eerste cyclus.
subscription.renewedEen niet-initiële cyclus slaagde. Verleng toegang tot het nieuwe periode-einde.
subscription.payment_failedDe kaart van een cyclus werd geweigerd. De aanmaning van de provider probeert opnieuw op zijn schema; u logt dit meestal gewoon voor zichtbaarheid.
subscription.canceledDefinitieve annulering. De koper annuleerde, de aanmaning was uitgeput, of de verkoper annuleerde.
subscription.updatedStatuswijziging, kaartupdate, planwijziging. Inspecteer de nieuwe status.

Kopers identificeren zonder ze op te slaan

Coin Moebius is een betaalrouter, geen klantdatabase. We slaan nooit e-mailadressen, namen, adressen van kopers, of de interne klant-id's van de provider op. Als uw applicatie gebruikersaccounts heeft (de meeste abonnementsapps wel), geef dan uw eigen ondoorzichtige gebruikers-id door als customer-ref op de buy button. De knop stuurt het door naar de worker als metadata.customerRef, we rijgen het door naar de provider, geven het terug bij elk event, en slaan alleen die ondoorzichtige string op. Voor ons is het betekenisloos; voor u is het de foreign key naar uw eigen gebruikerssysteem.

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

Wanneer u diepere kopersgegevens nodig hebt (e-mail, laatste vier cijfers van de kaart, geschilnotities), linkt het dashboard elke kaarttransactie naar de provider die hem afhandelde (Stripe, PayPal, Square of Authorize.Net), waar het kopersrecord daadwerkelijk leeft. U klikt door; wij dupliceren het nooit.

Annulering: link eruit, bouw niet

Kopers annuleren in het gehoste portaal van de provider: het Stripe Customer Portal, de PayPal-accountpagina van de koper, enzovoort. Het portaal handelt annulering, kaartupdates, bonnetjes downloaden en planwijzigingen af, allemaal UI die u niet hoeft te bouwen. U kunt de koper met één API-aanroep in het portaal zetten:

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);

Welke providers vandaag abonnementen ondersteunen

Stripe en PayPal werken end-to-end via de gehoste buy button. Zet een product op Maandelijks of Jaarlijks in uw dashboard, plak de knop op uw pagina, en de klik start een echt abonnement. De provider draait de verlengingen.

Square- en Authorize.Net-abonnementen draaien niet via de gehoste buy button. U maakt het abonnement aan via uw eigen integratie met de provider (voor Authorize.Net betekent dat het verzamelen van de kaart op uw eigen pagina met Accept.js; Square heeft zijn eigen gehoste abonnements-checkout die u kunt gebruiken), en richt dan de webhook van de provider op ons. Vanaf daar werkt de rest van het systeem (webhook-routering, dashboard, status-endpoint, klantkoppeling) op exact dezelfde manier als bij Stripe- en PayPal-abonnementen. Zie de volgende sectie.

Crypto-providers (NOWPayments) ondersteunen geen terugkerende facturatie in dit product. Terugkerende crypto is wrijvingsrijk op elke gateway die we hebben geëvalueerd; we leveren liever niets dan een halfgebroken verhaal ervoor.

Klaar om het te bedraden?

Het gratis abonnement dekt de meeste sites en vraagt nooit om een kaart.