Subskrypcje
Coin Moebius może sprzedawać cykliczne subskrypcje u każdego dostawcy fiat z Twojego menu. Sprzedawca konfiguruje cenę i interwał raz na produkcie; przycisk kupna na stronie pozostaje dokładnie taki sam. Dostawca płatności prowadzi rozliczenia cykliczne, przechowuje kartę, ponawia nieudane odnowienia i hostuje stronę anulowania. Coin Moebius przekazuje zdarzenia cyklu życia do Twojego kodu.
Konfigurowanie produktu cyklicznego
W zakładce Products w panelu ustaw pole Billing na Monthly lub Annual zamiast One-time. Pojawia się opcjonalne pole Free trial na dowolne dni okresu próbnego, które chcesz przyznać przed pierwszym obciążeniem. Zapisz produkt.
HTML przycisku kupna się nie zmienia. Ten sam atrybut product-id="pro-plan" działa dla jednorazowych i cyklicznych; worker sprawdza ustawienie rozliczeń produktu w chwili checkoutu i kieruje przez API subskrypcji dostawcy, gdy ma to zastosowanie.
<coin-moebius-buy
project-id="proj_YOUR_ID"
product-id="pro-plan"
label="Subscribe to Pro">
</coin-moebius-buy>Czego nie musisz budować
Dostawca prowadzi harmonogram. Nie przechowujemy kart. Nie uruchamiamy zadań cron. Nie ponawiamy nieudanych obciążeń. Nie wysyłamy e-maili upominających o płatność. Nie hostujemy strony anulowania. Cała ta strona systemu żyje wewnątrz Stripe (lub dowolnego podłączonego przez Ciebie dostawcy fiat). Trudne części rozliczeń cyklicznych powierzasz firmie, która już prowadzi je dla milionów sprzedawców.
Zdarzenia subskrypcji
Odnowienia i anulowania pojawiają się jako zdarzenia webhooka, na które Twój serwer może reagować. Pięć znormalizowanych typów obejmuje cykl życia:
| Zdarzenie | Kiedy się uruchamia |
|---|---|
subscription.created | Nowa rejestracja. Niesie kwotę pierwszego cyklu. |
subscription.renewed | Cykl niepoczątkowy się powiódł. Przedłuż dostęp do nowego końca okresu. |
subscription.payment_failed | Karta cyklu została odrzucona. Upominanie o płatności dostawcy ponawia według własnego harmonogramu; zwykle po prostu to logujesz dla widoczności. |
subscription.canceled | Anulowanie końcowe. Kupujący anulował, upominanie o płatności się wyczerpało albo sprzedawca anulował. |
subscription.updated | Zmiana statusu, aktualizacja karty, zmiana planu. Sprawdź nowy status. |
Identyfikowanie kupujących bez ich przechowywania
Coin Moebius to router płatności, a nie baza danych klientów. Nigdy nie przechowujemy e-maili, imion, adresów kupujących ani wewnętrznych identyfikatorów klientów dostawcy. Jeśli Twoja aplikacja ma konta użytkowników (większość aplikacji subskrypcyjnych je ma), przekaż własny nieprzejrzysty id użytkownika jako customer-ref na przycisku kupna. Przycisk przekazuje go do workera jako metadata.customerRef, my przesyłamy go do dostawcy, zwracamy z powrotem przy każdym zdarzeniu i przechowujemy tylko ten nieprzejrzysty ciąg. Dla nas jest bez znaczenia; dla Ciebie jest kluczem obcym do Twojego własnego systemu użytkowników.
<coin-moebius-buy
project-id="proj_YOUR_ID"
product-id="pro-plan"
customer-ref="user_bob_42">
</coin-moebius-buy>Gdy potrzebujesz głębszych danych kupującego (e-mail, ostatnie cztery cyfry karty, notatki o sporach), panel linkuje każdą transakcję kartową do dostawcy, który ją obsłużył (Stripe, PayPal, Square lub Authorize.Net), gdzie faktycznie żyje rekord kupującego. Klikasz dalej; my nigdy go nie powielamy.
Anulowanie: linkuj na zewnątrz, nie buduj
Kupujący anulują w hostowanym portalu dostawcy: Stripe Customer Portal, strona konta PayPal kupującego i tak dalej. Portal obsługuje anulowanie, aktualizacje karty, pobieranie potwierdzeń i zmiany planu, cały interfejs, którego nie musisz budować. Możesz przenieść kupującego do portalu jednym wywołaniem 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);Którzy dostawcy obsługują dziś subskrypcje
Stripe i PayPal działają od początku do końca przez hostowany przycisk kupna. Ustaw produkt jako Monthly lub Annual w panelu, wklej przycisk na swojej stronie, a kliknięcie rozpoczyna prawdziwą subskrypcję. Dostawca prowadzi odnowienia.
Subskrypcje Square i Authorize.Net nie działają przez hostowany przycisk kupna. Tworzysz subskrypcję przez własną integrację z dostawcą (dla Authorize.Net oznacza to zbieranie karty na własnej stronie za pomocą Accept.js; Square ma własny hostowany checkout subskrypcji, którego możesz użyć), a następnie kierujesz webhook dostawcy na nas. Stamtąd reszta systemu (trasowanie webhooków, panel, endpoint statusu, łączenie klientów) działa dokładnie tak samo jak dla subskrypcji Stripe i PayPal. Zobacz następną sekcję.
Dostawcy krypto (NOWPayments) nie obsługują rozliczeń cyklicznych w tym produkcie. Cykliczne krypto jest pełne tarć na każdej bramce, którą oceniliśmy; wolimy nie dostarczyć nic, niż dostarczyć połowicznie zepsute rozwiązanie.