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:
| Event | Wanneer het afvuurt |
|---|---|
subscription.created | Nieuwe aanmelding. Draagt het bedrag van de eerste cyclus. |
subscription.renewed | Een niet-initiële cyclus slaagde. Verleng toegang tot het nieuwe periode-einde. |
subscription.payment_failed | De kaart van een cyclus werd geweigerd. De aanmaning van de provider probeert opnieuw op zijn schema; u logt dit meestal gewoon voor zichtbaarheid. |
subscription.canceled | Definitieve annulering. De koper annuleerde, de aanmaning was uitgeput, of de verkoper annuleerde. |
subscription.updated | Statuswijziging, 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.