Codex · III

Subskrypcje

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:

ZdarzenieKiedy się uruchamia
subscription.createdNowa rejestracja. Niesie kwotę pierwszego cyklu.
subscription.renewedCykl niepoczątkowy się powiódł. Przedłuż dostęp do nowego końca okresu.
subscription.payment_failedKarta 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.canceledAnulowanie końcowe. Kupujący anulował, upominanie o płatności się wyczerpało albo sprzedawca anulował.
subscription.updatedZmiana 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.

Gotowy to podłączyć?

Plan darmowy wystarcza większości stron i nigdy nie prosi o kartę.