Vodniki

Kako dodati naročnine s Stripe: načrti, preizkusna obdobja, webhooki in neuspela plačila

Da dodate naročnine s Stripe, v nadzorni plošči Stripe ustvarite izdelek s ponavljajočo se ceno, s strežnika stranke pošljete na Stripe Checkout v načinu naročnine, webhook pa vaši aplikaciji sporoči, ko vsako plačilo uspe, ne uspe, se spremeni ali konča. Stanje naročnine shranite pri uporabniku in dostop odobrite glede na to, ne glede na stran po uspehu. Dodajte gumb Upravljaj zaračunavanje, ki odpre gostovani portal za stranke Stripe, kjer lahko ljudje menjajo kartice, preklapljajo načrte in prekličejo naročnino, ne da bi vi gradili te zaslone.

Ta vodnik temelji na kako dodati plačila v svojo aplikacijo, ki pokriva enkratni Checkout, testni način in vklop v živo. Tu se osredotočamo na to, kaj je pri ponavljajočem se zaračunavanju drugače. Podrobnosti o Stripeju so iz Stripejeve dokumentacije od septembra 2026.

Zakaj so naročnine težje od enkratnih plačil

Enkratno plačilo se zgodi, medtem ko je stranka v vaši aplikaciji. Naročnina se nadaljuje tudi potem, ko odide: mesečne obnovitve, kartice, ki potečejo, nadgradnje sredi cikla, preklici, ki začnejo veljati ob koncu obdobja. Vaša aplikacija za to izve samo prek webhookov. Večina napak pri naročninah izvira iz tega, da se prvo plačilo obravnava kot celotna zgodba.

Vaše možnosti

PristopKaj graditeNajboljše za
Payment Link s ponavljajočo se cenoSamo povezavoPreverjanje povpraševanja; dostop ročno
Checkout (način naročnine) + portal za strankeStrežniško pot, webhook, gumb za zaračunavanjeVečino aplikacij SaaS in članarin
API naročnin z lastnim plačilnim obrazcemVeliko več: uporabniški vmesnik za plačila, overitev, ponovne poskuseAplikacije z nenavadnimi tokovi zaračunavanja
Ponudnik „merchant of record“Podobno kot CheckoutProdajalci, ki želijo, da ponudnik obravnava davek na promet

Za večino aplikacij sta Checkout in portal prava izbira. Primerjajte ponudnike v Stripe proti Paddle proti Lemon Squeezy, če vas skrbi obračun davkov.

Najprej načrtujte cene v Stripeu

V Stripeu je izdelek tisto, kar prodajate („Pro načrt“), cena pa je, kako to zaračunate („20 $ na mesec“, „200 $ na leto“). En izdelek lahko ima več cen. Odločite se:

  • Katere stopnje ponujate in kaj vsaka odklene v vaši aplikaciji
  • Mesečno, letno ali oboje
  • Ali ponujate preizkusno obdobje in ali zahteva kartico vnaprej

Izdelke in cene ustvarite v testnem načinu in shranite njihove ID-je cen; vaša aplikacija se nanje sklicuje. Če cen še niste določili, preberite kako določiti ceno izdelku SaaS in freemium proti brezplačnemu preizkusnemu obdobju.

Življenjski cikel naročnine, ki ga morate obravnavati

Pregled naročnin pri Stripeju navaja stanja, ki jih naročnina lahko ima. Tista, ki so za dostop najpomembnejša:

StanjeKaj pomeniOdobri dostop?
trialingV preizkusnem obdobjuDa
activeV reduDa
incompletePrvo plačilo še ni opravljeno; Stripe stranki da 23 urNe
incomplete_expiredPrvo plačilo nikoli ni uspeloNe
past_dueZadnje plačilo ni uspelo ali ni bilo poskušano; sledijo lahko ponovni poskusiVaša odločitev; mnoge aplikacije dovolijo kratko milostno obdobje
unpaidPonovni poskusi so končani, računi ostanejo odprti, ni nadaljnjih poskusovNe, dokumentacija Stripe pravi, da je treba dostop preklicati
canceledKončano; ni mogoče ponovno zagnatiNe
pausedPreizkusno obdobje se je končalo brez načina plačila in je bilo nastavljeno na pavzoNe

Stanje shranite v zapis uporabnika ali računa in dostop temeljite nanj. Posodobite ga ob vsakem prihodu ustreznega webhooka.

Dogodki webhookov, ki jih obravnavate

DogodekKaj naredi vaša aplikacija
checkout.session.completedPoveže nov ID stranke Stripe in naročnine z vašim uporabnikom
invoice.paidOznači naročnino kot aktivno in zabeleži nov konec obdobja
invoice.payment_failedObvesti uporabnika, da kartica ni uspela, in ga poveže s portalom
invoice.payment_action_requiredProsi uporabnika, naj dokonča overitev kartice
customer.subscription.updatedPosodobi načrt, stanje in morebitni načrtovan preklic
customer.subscription.deletedOdstrani plačani dostop
customer.subscription.trial_will_endOpomni uporabnika pred koncem preizkusnega obdobja; Stripe pošlje tri dni prej

Pravila za obdelovalnik iz Stripejeve dokumentacije za webhooke še vedno veljajo: preverite podpis z neobdelanim telesom, hitro vrnite odgovor 2xx, obravnavajte podvojene in nepravilno urejene dogodke ter pričakujte ponovne poskuse. Vodnik kaj je webhook razloži idejo, vodnik o plačilih pa podrobno našteje pravila.

Korak za korakom

  1. Ustvarite izdelke in cene v testnem načinu Stripe.
  2. Dodajte skrivnosti: tajni ključ, ID-je cen in pozneje podpisni ključ webhooka. Nikoli jih ne dajajte v kodo sprednjega dela.
  3. Stran s cenami: gumb vsakega načrta pokliče vaš strežnik, ki za prijavljenega uporabnika ustvari sejo Checkout v načinu naročnine. Pošljite ID uporabnika, da lahko webhook plačilo poveže z računom.
  4. Končna točka webhooka: preverite podpise in obravnavajte zgornje dogodke, pri tem pa posodabljajte en zapis naročnine na uporabnika.
  5. Omejite funkcije glede na shranjeno stanje in načrt, preverjeno na strežniku pri vsakem zaščitenem dejanju, ne samo skrite gumbe.
  6. Portal za stranke: nastavite ga v nadzorni plošči Stripe (na katere načrte se lahko premaknejo, ali lahko prekličejo), nato dodajte gumb Upravljaj zaračunavanje, ki na strežniku ustvari sejo portala in preusmeri nanjo.
  7. Neuspela plačila: v nastavitvah zaračunavanja Stripe izberite vedenje ob ponovnih poskusih in kaj se zgodi po zadnjem poskusu. Medtem ko je naročnina past_due, prikažite pasico v aplikaciji.
  8. Preizkusite celoten življenjski cikel, nato objavite in registrirajte webhook v živo.

Pozivi za vašega graditelja z UI

Dodaj zaračunavanje naročnin s Stripe. Načrti: Starter (ID cene v STRIPE_PRICE_STARTER) in Pro (STRIPE_PRICE_PRO). Stran s cenami na strežniku ustvari sejo Checkout v načinu naročnine z uporabo STRIPE_SECRET_KEY, prijavljenemu uporabniku pa doda njegov ID. Shrani ID stranke Stripe, ID naročnine, načrt in stanje pri uporabniku. Tajnega ključa nikoli ne izpostavi brskalniku.

Dodaj POST /api/stripe/webhook. Preveri podpis s STRIPE_WEBHOOK_SECRET z uporabo neobdelanega telesa zahtevka. Obravnavaj checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted in customer.subscription.trial_will_end. Zabeleži obdelane ID-je dogodkov, da se podvojitve prezrejo. Stanje uporabnika posodobi iz objekta naročnine, ne iz vrstnega reda, v katerem dogodki prispejo.

Na strežniku omeji funkcije Pro: dovoli jih samo, ko je stanje active ali trialing in je načrt Pro. Ko je stanje past_due, prikaži pasico „plačilo ni uspelo, posodobite kartico“. Dodaj gumb Upravljaj zaračunavanje, ki za tega uporabnika odpre portal za stranke Stripe.

Nadgradnje, znižanja in sorazmerni obračun

Ko stranka zamenja načrt, dokumentacija Stripe pravi, da sprememba pogosto ustvari sorazmerni obračun: nova cena se uporabi za preostanek trenutnega obdobja zaračunavanja. Predogled sorazmernih obračunov lahko pregledate ali jih izklopite. Če imajo načrti isti interval, datumi zaračunavanja ostanejo enaki; prehod z mesečnega na letno premakne datum zaračunavanja na dan preklopa. Če strankam dovolite spreminjanje načrtov v portalu, si prihranite pisanje te logike, vendar v nastavitvah portala odločite, kateri preklopi so dovoljeni.

Kontrolni seznam za testiranje

Uporabite testni način Stripe in testne kartice ter preglejte vsako stanje:

  • Nova naročnina odobri pravi načrt pravemu uporabniku
  • Zapiranje zavihka takoj po plačilu še vedno odobri dostop (dokaže, da webhook deluje)
  • Zavrnjena kartica ob prijavi ne odobri ničesar
  • Neuspešna obnovitev postavi račun v past_due in prikaže pasico
  • Posodobitev kartice v portalu obnovi stanje active
  • Nadgradnja in znižanje pravilno spremenita funkcije
  • Preklic ob koncu obdobja ohrani dostop do končnega datuma, nato ga odstrani
  • Uporabniki v preizkusnem obdobju dobijo dostop, prejmejo opomnik in se pravilno pretvorijo ali izgubijo dostop
  • Pošiljanje istega dogodka webhooka dvakrat ne spremeni ničesar

Testne ure Stripe vam omogočajo simulacijo poteka časa, tako da lahko preizkusite obnovitve, ne da čakate mesec. Za to, kako jih uporabljati, preverite trenutno dokumentacijo Stripe za testiranje.

Pogoste napake

  • Odobritev dostopa na strani po uspehu. Stranke morda plačajo in tja nikoli ne pridejo. Uporabite webhook.
  • Obravnava samo prvega plačila. Obnovitve, neuspehi in preklici pridejo pozneje, kot dogodki.
  • Preverjanje stanja načrta samo v sprednjem delu. Vsakdo lahko neposredno pokliče vaš API.
  • En uporabnik, več naročnin po naključju. Preverite, ali obstaja naročnina, preden ustvarite novo sejo Checkout, ali pa obstoječe stranke pošljite v portal.
  • Preklic dostopa ob prvi neuspeli obnovitvi. Kartice odpovejo iz dolgočasnih razlogov. Kratko milostno obdobje z jasno pasico obdrži stranke.
  • Pozabljen webhook v živo. Testne in žive končne točke imajo različne podpisne ključe.
  • Ignoriranje davkov in vračil. Pred zagonom določite pravilnik o vračilih in s računovodjo preverite davčne obveznosti.

Naročnine na Mythexu

Aplikacije, ki jih gradite na Mythexu, uporabljajo vaš lasten račun in ključe Stripe; za vašo aplikacijo ni enokliknega povezovanja s Stripe. Testna ključa in ID-je cen dodajte kot skrivnosti projekta, uporabite pozive, podobne zgornjim, in preizkusite s testnimi karticami Stripe v predogledu. Webhooki potrebujejo javni URL vaše aplikacije, zato objavite pred registracijo končne točke v Stripeu, in ponovno objavite, ko preklopite na žive ključe, da jih živa aplikacija prevzame. Glejte Sprejemanje plačil s Stripe in Obravnava webhookov v zaledju. Za širši izdelek vam kako zgraditi MVP SaaS pokaže, kaj graditi okoli zaračunavanja.

Vprašanja

Kako najpreprosteje dodam naročnine s Stripe?

V nadzorni plošči Stripe ustvarite izdelek s ponavljajočo se ceno, stranke pošljete na Stripe Checkout v načinu naročnine, dogodke naročnin obravnavate s webhookom, gumb Upravljaj zaračunavanje pa povežete z gostovanim portalom za stranke Stripe. Tako vam ni treba sami graditi obrazcev za kartice in zaslonov za spremembo načrta.

Katere dogodke webhookov Stripe potrebujem za naročnine?

Najmanj checkout.session.completed, da novo naročnino povežete z uporabnikom, invoice.paid za potrditev vsakega uspešnega plačila, invoice.payment_failed za opozorilo na neuspele obnovitve ter customer.subscription.updated in customer.subscription.deleted za spremljanje sprememb načrta in preklicev.

Kaj se zgodi, ko plačilo naročnine ne uspe?

Po dokumentaciji Stripe od septembra 2026 naročnina ponavadi postane past_due, Stripe pa lahko plačilo glede na vaše nastavitve ponovno poskusi. Po zadnjem poskusu nastavitve v nadzorni plošči odločijo, ali se naročnina prekliče, označi kot neplačana ali pusti kot past_due.

Ali lahko ponudim brezplačno preizkusno obdobje brez zahtevanja kartice?

Da. Stripe podpira brezplačna preizkusna obdobja, njegova dokumentacija pa opisuje stanje paused za preizkuse, ki se končajo brez načina plačila, če je tako nastavljeno. Zbiranje kartice vnaprej običajno pomeni manj prijav, a več plačujočih strank; preizkusite, kaj ustreza vašemu izdelku.

Mythex · Pricing · Zgradite karkoli z AI · Predloge za spletna mesta in aplikacije · Mythex v primerjavi · Slovar pojmov gradnje aplikacij z AI · Brezplačna orodja za gradnjo aplikacij z AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)