Kaip pridėti prenumeratas su Stripe: planai, bandomieji laikotarpiai, webhook ir nepavykę mokėjimai
Kad pridėtumėte prenumeratas su Stripe, Stripe valdymo skydelyje sukurkite produktą su periodine kaina, serveryje siųskite klientus į Stripe Checkout prenumeratos režimu, o webhook praneš jūsų programėlei, kai kiekvienas mokėjimas pavyksta, nepavyksta, pasikeičia ar baigiasi. Prenumeratos būseną saugokite prie vartotojo ir pagal ją suteikite prieigą, o ne pagal sėkmės puslapį. Pridėkite mygtuką Tvarkyti sąskaitą, kuris atidaro Stripe talpinamą kliento portalą, kad žmonės galėtų keisti korteles, perjungti planus ir atšaukti, o jums nereikėtų kurti tų ekranų.
Šis vadovas remiasi kaip pridėti mokėjimus į programėlę, kuriame aprašytas vienkartinis Checkout, bandomasis režimas ir paleidimas tikriems mokėjimams. Čia daugiausia dėmesio skiriame tam, kuo periodinis apmokėjimas skiriasi. Stripe duomenys paimti iš Stripe dokumentacijos nuo 2026 m. rugsėjo.
Kodėl prenumeratos sudėtingesnės nei vienkartiniai mokėjimai
Vienkartinis mokėjimas vyksta tuo metu, kai klientas yra jūsų programėlėje. Prenumerata tęsiasi ir jam išėjus: kas mėnesį atsinaujina, baigiasi kortelių galiojimas, keičiami planai ciklo viduryje, atšaukimai įsigalioja pasibaigus laikotarpiui. Apie tai jūsų programėlė sužino tik per webhook. Dauguma prenumeratų klaidų kyla todėl, kad pirmasis mokėjimas laikomas visa istorija.
Jūsų variantai
| Būdas | Ką kuriate | Geriausiai tinka |
|---|---|---|
| Payment Link su periodine kaina | Tik nuorodą | Paklausos testavimui; prieigos tvarkymui rankiniu būdu |
| Checkout (prenumeratos režimas) + kliento portalas | Serverio maršrutą, webhook, sąskaitos mygtuką | Daugumą SaaS programėlių ir narysčių |
| Prenumeratų API su savo mokėjimo forma | Daug daugiau: mokėjimo sąsaja, autentifikavimas, bandymai | Programėlės su neįprastais apmokėjimo srautais |
| Prekybos įrašų tvarkytojo teikėjas | Panašu į Checkout | Pardavėjai, norintys, kad teikėjas tvarkytų pardavimo mokesčius |
Daugumai programėlių Checkout ir portalas yra tinkamiausias kompromisas. Jei mokesčių tvarkymas jus neramina, palyginkite teikėjus straipsnyje Stripe vs Paddle vs Lemon Squeezy.
Pirmiausia suplanuokite kainodarą Stripe
Stripe produktas – tai tai, ką parduodate („Pro planas“), o kaina – tai, kaip tai apmokestinate („20 € per mėnesį“, „200 € per metus“). Vienas produktas gali turėti kelias kainas. Nuspręskite:
- Kokias pakopas siūlote ir ką kiekviena atrakina jūsų programėlėje
- Mėnesinės, metinės ar abi
- Ar siūlote bandomąjį laikotarpį ir ar jam reikia kortelės iš anksto
Sukurkite produktus ir kainas bandomajame režime ir išsaugokite jų kainų ID; jūsų programėlė jais remiasi. Jei kainodaros dar nenusprendėte, perskaitykite kaip nustatyti SaaS produkto kainą ir freemium ar nemokamas bandomasis laikotarpis.
Prenumeratos gyvavimo ciklas, kurį privalote tvarkyti
Stripe prenumeratų apžvalgoje išvardytos prenumeratos būsenos. Svarbiausios prieigai:
| Būsena | Ką reiškia | Suteikti prieigą? |
|---|---|---|
trialing | Bandomajame laikotarpyje | Taip |
active | Viskas tvarkoje | Taip |
incomplete | Pirmasis mokėjimas dar neįvykdytas; Stripe klientui suteikia 23 valandas | Ne |
incomplete_expired | Pirmasis mokėjimas niekada nepavyko | Ne |
past_due | Paskutinis mokėjimas nepavyko arba nebuvo bandytas; gali sekti pakartojimai | Jūsų pasirinkimas; daugelis programėlių leidžia trumpą malonės laikotarpį |
unpaid | Pakartojimai baigėsi, sąskaitos lieka neapmokėtos, daugiau bandymų nebus | Ne, Stripe dokumentacija nurodo panaikinti prieigą |
canceled | Baigta; negali būti atkurta | Ne |
paused | Bandomasis laikotarpis baigėsi be mokėjimo būdo ir buvo nustatyta sustabdyti | Ne |
Saugokite būseną savo vartotojo ar paskyros įraše ir pagal ją grįskite prieigą. Atnaujinkite ją kiekvieną kartą, kai ateina atitinkamas webhook.
Webhook įvykiai, kuriuos reikia tvarkyti
| Įvykis | Ką daro jūsų programėlė |
|---|---|
checkout.session.completed | Susieja naują Stripe kliento ir prenumeratos ID su vartotoju |
invoice.paid | Pažymi prenumeratą kaip aktyvią ir įrašo naują laikotarpio pabaigą |
invoice.payment_failed | Praneša vartotojui, kad kortelė nepraėjo, ir pateikia nuorodą į portalą |
invoice.payment_action_required | Paprašo vartotoją užbaigti kortelės autentifikavimą |
customer.subscription.updated | Atnaujina planą, būseną ir visą suplanuotą atšaukimą |
customer.subscription.deleted | Pašalina mokamą prieigą |
customer.subscription.trial_will_end | Primena vartotojui prieš bandomojo laikotarpio pabaigą; Stripe siunčia prieš tris dienas |
Apdorotojo taisyklės iš Stripe webhook dokumentacijos galioja ir čia: tikrinkite parašą naudodami neapdorotą turinį, greitai grąžinkite 2xx, tvarkykite dublikatus ir įvykius, atėjusius ne ta tvarka, bei tikėkitės pakartojimų. Kas yra webhook vadovas paaiškina idėją, o mokėjimų vadove išvardytos taisyklės detaliai.
Žingsnis po žingsnio
- Sukurkite produktus ir kainas Stripe bandomajame režime.
- Pridėkite paslaptis: slaptą raktą, kainų ID, o vėliau webhook pasirašymo paslaptį. Niekada jų nedėkite į priekinės dalies kodą.
- Kainų puslapis: kiekvieno plano mygtukas kviečia jūsų serverį, kuris prisijungusiam vartotojui sukuria Checkout sesiją prenumeratos režimu. Perduokite savo vartotojo ID, kad webhook galėtų susieti mokėjimą su paskyra.
- Webhook galinis taškas: tikrinkite parašus ir tvarkykite aukščiau nurodytus įvykius, atnaujindami vieną prenumeratos įrašą vienam vartotojui.
- Riboki funkcijas pagal saugomą būseną ir planą, tikrinamą serveryje kiekvienam apsaugotam veiksmui, o ne tik pagal paslėptus mygtukus.
- Kliento portalas: sukonfigūruokite jį Stripe valdymo skydelyje (į kuriuos planus žmonės gali pereiti, ar gali atšaukti), tada pridėkite mygtuką Tvarkyti sąskaitą, kuris serveryje sukuria portalo sesiją ir nukreipia į ją.
- Nepavykę mokėjimai: Stripe apmokėjimo nustatymuose pasirinkite pakartojimo elgseną ir tai, kas nutinka po paskutinio bandymo. Rodykite programėlės viduje pranešimą, kol būsena past_due.
- Išbandykite visą ciklą, tada publikuokite ir registruokite tikrąjį webhook.
Raginimai jūsų DI kūrimo įrankiui
Pridėk prenumeratos apmokėjimą su Stripe. Planai: Starter (kainos ID STRIPE_PRICE_STARTER) ir Pro (STRIPE_PRICE_PRO). Kainų puslapis serveryje sukuria Checkout sesiją prenumeratos režimu naudodamas STRIPE_SECRET_KEY, pridėdamas prisijungusio vartotojo ID. Išsaugok vartotojui Stripe kliento ID, prenumeratos ID, planą ir būseną. Niekada neatskleisk slapto rakto naršyklei.
Pridėk POST /api/stripe/webhook. Tikrink parašą su STRIPE_WEBHOOK_SECRET naudodamas neapdorotą užklausos turinį. Tvarkyk checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted ir customer.subscription.trial_will_end. Įrašyk apdorotus įvykių ID, kad dublikatai būtų ignoruojami. Vartotojo būseną atnaujink pagal prenumeratos objektą, o ne pagal įvykių gavimo tvarką.
Riboki Pro funkcijas serveryje: leisk jas tik tada, kai būsena active arba trialing ir planas Pro. Kai būsena past_due, rodyk pranešimą „mokėjimas nepavyko, atnaujinkite kortelę“. Pridėk mygtuką Tvarkyti sąskaitą, kuris atidaro šio vartotojo Stripe kliento portalą.
Perėjimai aukštyn, žemyn ir proporcingas apskaičiavimas
Kai klientas perjungia planus, Stripe dokumentacijoje sakoma, kad pakeitimas dažnai sukuria proporcingą apskaičiavimą (proration): nauja kaina taikoma likusiam dabartinio apmokėjimo laikotarpio laikui. Proporcingus skaičiavimus galite peržiūrėti arba išjungti. Jei planai turi tą patį intervalą, apmokėjimo datos išlieka tos pačios; perėjus iš mėnesinio į metinį, apmokėjimo data perkeliama į perjungimo dieną. Leisti klientams keisti planus portale sutaupo jums rašyti šią logiką, bet portalo nustatymuose nuspręskite, kurie perjungimai leidžiami.
Testavimo kontrolinis sąrašas
Naudokite Stripe bandomąjį režimą ir bandomąsias korteles bei praeikite kiekvieną būseną:
- Nauja prenumerata suteikia tinkamą planą tinkamam vartotojui
- Uždarius skirtuką iškart po mokėjimo prieiga vis tiek suteikiama (tai įrodo, kad veikia webhook)
- Atmesta kortelė registruojantis nesuteikia nieko
- Nepavykęs atnaujinimas paverčia paskyrą į past_due ir rodo pranešimą
- Kortelės atnaujinimas portale atkuria active būseną
- Perėjimas aukštyn ir žemyn tinkamai keičia funkcijas
- Atšaukus pasibaigus laikotarpiui prieiga išlieka iki pabaigos datos, tada pašalinama
- Bandomojo laikotarpio vartotojai gauna prieigą, gauna priminimą ir teisingai pereina arba praranda prieigą
- Tas pats webhook įvykis, išsiųstas du kartus, nieko nekeičia
Stripe bandomieji laikrodžiai leidžia imituoti laiko bėgimą, todėl galite testuoti atnaujinimus nelaukdami mėnesio. Dabartinės testavimo instrukcijos – Stripe testavimo dokumentacijoje.
Dažniausios klaidos
- Prieigos suteikimas sėkmės puslapyje. Klientai gali sumokėti ir jo niekada nepasiekti. Naudokite webhook.
- Tvarkomas tik pirmasis mokėjimas. Atnaujinimai, nesėkmės ir atšaukimai ateina vėliau, kaip įvykiai.
- Plano būsenos tikrinimas tik priekinėje dalyje. Bet kas gali tiesiogiai kviesti jūsų API.
- Vienas vartotojas, kelios prenumeratos dėl klaidos. Prieš kurdami naują Checkout sesiją patikrinkite, ar yra esama prenumerata, arba nukreipkite esamus klientus į portalą.
- Prieigos panaikinimas po pirmo nepavykusio atnaujinimo. Kortelės nepraeina dėl įprastų priežasčių. Trumpas malonės laikotarpis su aiškiu pranešimu išlaiko klientus.
- Pamirštas tikrasis webhook. Bandomieji ir tikrieji galiniai taškai turi skirtingas pasirašymo paslaptis.
- Mokesčių ir grąžinimų ignoravimas. Prieš paleidimą nustatykite grąžinimo politiką ir pasitarkite su buhalteriu dėl mokesčių prievolių.
Prenumeratos Mythex
Programėlės, kurias kuriate Mythex, naudoja jūsų pačių Stripe paskyrą ir raktus; programėlei nėra vieno paspaudimo Stripe prijungimo. Pridėkite bandomuosius raktus ir kainų ID kaip projekto paslaptis, naudokite aukščiau pateiktus raginimus ir testuokite Peržiūroje su Stripe bandomosiomis kortelėmis. Webhook reikia jūsų programėlės viešo URL, todėl publikuokite prieš registruodami galinį tašką Stripe, o perjungę į tikrus raktus publikuokite dar kartą, kad tikroji programėlė juos pasiimtų. Žr. Priimkite mokėjimus su Stripe ir Tvarkykite webhook savo backend. Platesniam produktui kaip sukurti SaaS MVP aprašo, ką kurti aplink apmokėjimus.
Klausimai
Koks paprasčiausias būdas pridėti prenumeratas su Stripe?
Stripe valdymo skydelyje sukurkite produktą su periodine kaina, siųskite klientus į Stripe Checkout prenumeratos režimu, tvarkykite prenumeratos įvykius su webhook ir susiekite mygtuką Tvarkyti sąskaitą su Stripe talpinamu kliento portalu. Taip nereikės patiems kurti kortelių formų ir planų keitimo ekranų.
Kokių Stripe webhook įvykių reikia prenumeratoms?
Bent jau checkout.session.completed, kad naują prenumeratą susietumėte su vartotoju, invoice.paid, kad patvirtintumėte kiekvieną sėkmingą mokėjimą, invoice.payment_failed, kad įspėtumėte apie nepavykusius atnaujinimus, ir customer.subscription.updated bei customer.subscription.deleted planų keitimams ir atšaukimams sekti.
Kas nutinka, kai prenumeratos mokėjimas nepavyksta?
Pagal Stripe dokumentaciją nuo 2026 m. rugsėjo prenumerata paprastai tampa past_due, o Stripe gali bandyti mokėjimą pakartoti pagal jūsų nustatymus. Po paskutinio bandymo jūsų valdymo skydelio nustatymai lemia, ar ji atšaukiama, pažymima kaip unpaid, ar paliekama past_due.
Ar galiu siūlyti nemokamą bandomąjį laikotarpį nereikalaudami kortelės?
Taip. Stripe palaiko nemokamus bandomuosius laikotarpius, o jo dokumentacijoje aprašoma paused būsena bandomiesiems laikotarpiams, kurie baigiasi be mokėjimo būdo, jei taip nustatyta. Iš anksto surinkus kortelę paprastai būna mažiau registracijų, bet daugiau mokančių klientų; patikrinkite, kas tinka jūsų produktui.