Vadovai

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ūdasKą kuriateGeriausiai tinka
Payment Link su periodine kainaTik nuorodąPaklausos testavimui; prieigos tvarkymui rankiniu būdu
Checkout (prenumeratos režimas) + kliento portalasServerio maršrutą, webhook, sąskaitos mygtukąDaugumą SaaS programėlių ir narysčių
Prenumeratų API su savo mokėjimo formaDaug daugiau: mokėjimo sąsaja, autentifikavimas, bandymaiProgramėlės su neįprastais apmokėjimo srautais
Prekybos įrašų tvarkytojo teikėjasPanašu į CheckoutPardavė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ūsenaKą reiškiaSuteikti prieigą?
trialingBandomajame laikotarpyjeTaip
activeViskas tvarkojeTaip
incompletePirmasis mokėjimas dar neįvykdytas; Stripe klientui suteikia 23 valandasNe
incomplete_expiredPirmasis mokėjimas niekada nepavykoNe
past_duePaskutinis mokėjimas nepavyko arba nebuvo bandytas; gali sekti pakartojimaiJūsų pasirinkimas; daugelis programėlių leidžia trumpą malonės laikotarpį
unpaidPakartojimai baigėsi, sąskaitos lieka neapmokėtos, daugiau bandymų nebusNe, Stripe dokumentacija nurodo panaikinti prieigą
canceledBaigta; negali būti atkurtaNe
pausedBandomasis laikotarpis baigėsi be mokėjimo būdo ir buvo nustatyta sustabdytiNe

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

ĮvykisKą daro jūsų programėlė
checkout.session.completedSusieja naują Stripe kliento ir prenumeratos ID su vartotoju
invoice.paidPažymi prenumeratą kaip aktyvią ir įrašo naują laikotarpio pabaigą
invoice.payment_failedPraneša vartotojui, kad kortelė nepraėjo, ir pateikia nuorodą į portalą
invoice.payment_action_requiredPaprašo vartotoją užbaigti kortelės autentifikavimą
customer.subscription.updatedAtnaujina planą, būseną ir visą suplanuotą atšaukimą
customer.subscription.deletedPašalina mokamą prieigą
customer.subscription.trial_will_endPrimena 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

  1. Sukurkite produktus ir kainas Stripe bandomajame režime.
  2. Pridėkite paslaptis: slaptą raktą, kainų ID, o vėliau webhook pasirašymo paslaptį. Niekada jų nedėkite į priekinės dalies kodą.
  3. 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.
  4. Webhook galinis taškas: tikrinkite parašus ir tvarkykite aukščiau nurodytus įvykius, atnaujindami vieną prenumeratos įrašą vienam vartotojui.
  5. Riboki funkcijas pagal saugomą būseną ir planą, tikrinamą serveryje kiekvienam apsaugotam veiksmui, o ne tik pagal paslėptus mygtukus.
  6. 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ą.
  7. 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.
  8. 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.

Mythex · Pricing · Kurkite bet ką su dirbtiniu intelektu · Svetainių ir programėlių šablonai · Mythex palyginimas · Programėlių kūrimo su dirbtiniu intelektu žodynėlis · Nemokami programėlių kūrimo su dirbtiniu intelektu įrankiai · 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 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)