Kā pievienot abonementus ar Stripe: plāni, izmēģinājumi, webhooks un neizdevušies maksājumi
Lai pievienotu abonementus ar Stripe, Stripe panelī izveidojiet produktu ar regulāru cenu, no sava servera nosūtiet klientus uz Stripe Checkout abonementa režīmā, un webhook lai paziņo jūsu lietotnei, kad katrs maksājums izdodas, neizdodas, mainās vai beidzas. Glabājiet abonementa statusu pie lietotāja un piešķiriet piekļuvi, balstoties uz to, nevis uz veiksmīgas apmaksas lapu. Pievienojiet pogu Pārvaldīt norēķinus, kas atver Stripe mitināto klientu portālu, lai cilvēki varētu mainīt kartes, pārslēgt plānus un atcelt, bez jūsu pašu ekrānu veidošanas.
Šī rokasgrāmata balstās uz kā pievienot maksājumus lietotnei, kur aprakstīts vienreizējs Checkout, testa režīms un tiešraide. Šeit koncentrējamies uz to, kas atšķiras regulārajos norēķinos. Stripe informācija ir no Stripe dokumentācijas uz 2026. gada septembri.
Kāpēc abonementi ir grūtāki nekā vienreizēji maksājumi
Vienreizējs maksājums notiek, kamēr klients ir jūsu lietotnē. Abonements turpinās arī pēc tam, kad viņš ir aizgājis: ik mēnesi atjaunošanas, kartes, kas beidzas, jauninājumi cikla vidū, atcelšanas, kas stājas spēkā perioda beigās. Jūsu lietotne par to uzzina tikai caur webhooks. Vairums abonementu kļūdu rodas tad, kad pirmais maksājums tiek uzskatīts par visu stāstu.
Jūsu iespējas
| Pieeja | Ko jūs veidojat | Piemērota |
|---|---|---|
| Maksājumu saite ar regulāru cenu | Tikai saiti | Pieprasījuma pārbaudei; piekļuves pārvaldīšanai ar roku |
| Checkout (abonementa režīms) + klientu portāls | Servera maršrutu, webhook, norēķinu pogu | Vairumam SaaS lietotņu un dalību |
| Abonementu API ar savu maksājumu veidlapu | Daudz vairāk: maksājumu saskarni, autentifikāciju, atkārtojumus | Lietotnēm ar neparastām norēķinu plūsmām |
| Merchant-of-record sniedzējs | Līdzīgs Checkout | Pārdevējiem, kas vēlas, lai sniedzējs apstrādā preču un pakalpojumu nodokli |
Vairumam lietotņu Checkout plus portāls ir pareizais kompromiss. Salīdziniet sniedzējus Stripe vs Paddle vs Lemon Squeezy, ja jūs uztrauc nodokļu apstrāde.
Vispirms ieplānojiet cenas Stripe
Stripe produkts ir tas, ko jūs pārdodat ("Pro plāns"), un cena ir tas, kā par to iekasējat ("20 USD mēnesī", "200 USD gadā"). Vienam produktam var būt vairākas cenas. Izlemiet:
- Kādus līmeņus piedāvājat un ko katrs atver jūsu lietotnē
- Mēnesi, gadu vai abus
- Vai piedāvājat izmēģinājumu un vai tam vajag karti iepriekš
Izveidojiet produktus un cenas testa režīmā un saglabājiet to cenu ID; jūsu lietotne uz tiem atsaucas. Ja cenas vēl nav izlemtas, izlasiet kā noteikt SaaS produkta cenu un freemium pret bezmaksas izmēģinājumu.
Abonementa dzīves cikls, ko jāapstrādā
Stripe abonementu pārskatā uzskaitīti statusi, ko abonements var iegūt. Piekļuvei visnozīmīgākie ir šādi:
| Statuss | Ko tas nozīmē | Piešķirt piekļuvi? |
|---|---|---|
trialing | Izmēģinājuma periodā | Jā |
active | Kārtībā | Jā |
incomplete | Pirmais maksājums vēl nav pabeigts; Stripe klientam dod 23 stundas | Nē |
incomplete_expired | Pirmais maksājums nekad neizdevās | Nē |
past_due | Pēdējais maksājums neizdevās vai netika mēģināts; var sekot atkārtojumi | Jūsu izvēle; daudzas lietotnes ļauj īsu žēlastības periodu |
unpaid | Atkārtojumi beigušies, rēķini paliek atvērti, papildu mēģinājumu nav | Nē; Stripe dokumentācija iesaka atņemt piekļuvi |
canceled | Beidzies; nevar atsākt | Nē |
paused | Izmēģinājums beidzās bez maksājuma metodes un tika iestatīts pauzei | Nē |
Glabājiet statusu lietotāja vai konta ierakstā un balstiet piekļuvi uz to. Atjauniniet to katru reizi, kad ierodas attiecīgs webhook.
Webhook notikumi, ko apstrādāt
| Notikums | Ko dara jūsu lietotne |
|---|---|
checkout.session.completed | Saista jauno Stripe klienta un abonementa ID ar lietotāju |
invoice.paid | Atzīmē abonementu kā aktīvu un saglabā jauno perioda beigu datumu |
invoice.payment_failed | Pastāsta lietotājam, ka karte neizdevās, un sniedz saiti uz portālu |
invoice.payment_action_required | Lūdz lietotāju pabeigt kartes autentifikāciju |
customer.subscription.updated | Atjaunina plānu, statusu un ieplānoto atcelšanu |
customer.subscription.deleted | Noņem apmaksāto piekļuvi |
customer.subscription.trial_will_end | Atgādina lietotājam pirms izmēģinājuma beigām; Stripe to nosūta trīs dienas iepriekš |
Stripe webhook dokumentācijas apstrādātāja noteikumi joprojām ir spēkā: pārbaudiet parakstu, izmantojot neapstrādātu pamattekstu, ātri atgriezieties ar 2xx, apstrādājiet dublikātus un notikumus nepareizā secībā un gaidiet atkārtojumus. Rokasgrāmata kas ir webhook skaidro ideju, un maksājumu rokasgrāmatā noteikumi aprakstīti sīkāk.
Soli pa solim
- Izveidojiet produktus un cenas Stripe testa režīmā.
- Pievienojiet noslēpumus: slepeno atslēgu, cenu ID un vēlāk webhook parakstīšanas noslēpumu. Nekad neliekiet tos priekšgala kodā.
- Cenu lapa: katras plāna poga izsauc jūsu serveri, kas izveido Checkout sesiju abonementa režīmā pieteiktajam lietotājam. Nododiet jūsu lietotāja ID, lai webhook varētu saskaņot maksājumu ar kontu.
- Webhook galapunkts: pārbaudiet parakstus un apstrādājiet iepriekš minētos notikumus, atjauninot vienu abonementa ierakstu katram lietotājam.
- Ierobežojiet funkcijas pēc glabātā statusa un plāna, pārbaudot serverī katru aizsargātu darbību, nevis tikai paslēptas pogas.
- Klientu portāls: konfigurējiet to Stripe panelī (uz kuriem plāniem var pāriet, vai var atcelt), tad pievienojiet pogu Pārvaldīt norēķinus, kas serverī izveido portāla sesiju un novirza uz to.
- Neizdevušies maksājumi: Stripe norēķinu iestatījumos izvēlieties atkārtojumu uzvedību un to, kas notiek pēc pēdējā mēģinājuma. Rādiet lietotnes baneri, kamēr statuss ir
past_due. - Pārbaudiet visu dzīves ciklu, tad publicējiet un reģistrējiet tiešraides webhook.
Uzvednes, ko dot savam MI veidotājam
Pievieno abonementu norēķinus ar Stripe. Plāni: Starter (cenas ID STRIPE_PRICE_STARTER) un Pro (STRIPE_PRICE_PRO). Cenu lapa serverī izveido Checkout sesiju abonementa režīmā, izmantojot STRIPE_SECRET_KEY, un pievieno pieteiktā lietotāja ID. Lietotājam saglabā Stripe klienta ID, abonementa ID, plānu un statusu. Nekad neatklāj slepeno atslēgu pārlūkam.
Pievieno POST /api/stripe/webhook. Pārbaudi parakstu ar STRIPE_WEBHOOK_SECRET, izmantojot neapstrādātu pieprasījuma pamattekstu. Apstrādā checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted un customer.subscription.trial_will_end. Saglabā apstrādāto notikumu ID, lai dublikāti tiktu ignorēti. Atjauno lietotāja statusu no abonementa objekta, nevis no secības, kādā notikumi ierodas.
Ierobežo Pro funkcijas serverī: atļauj tās tikai tad, kad statuss ir active vai trialing un plāns ir Pro. Kad statuss ir past_due, rādi baneri "maksājums neizdevās, atjauniniet karti". Pievieno pogu Pārvaldīt norēķinus, kas atver Stripe klientu portālu šim lietotājam.
Jauninājumi, pazeminājumi un proporcija
Kad klients maina plānu, Stripe dokumentācijā teikts, ka izmaiņa bieži izveido proporciju: jaunā cena tiek piemērota atlikušajai pašreizējā norēķinu perioda daļai. Varat priekšskatīt proporcijas vai tās izslēgt. Ja plāniem ir vienāds intervāls, norēķinu datumi paliek tādi paši; pārejot no mēneša uz gadu, norēķinu datums pāriet uz izmaiņas dienu. Ja ļaujat klientiem mainīt plānus portālā, jums nav jāraksta šī loģika, bet portāla iestatījumos izlemiet, kādas maiņas ir atļautas.
Testēšanas kontrolsaraksts
Izmantojiet Stripe testa režīmu un testa kartes un izejiet cauri katram statusam:
- Jauns abonements piešķir pareizo plānu pareizajam lietotājam
- Ja aizverat cilni uzreiz pēc maksāšanas, piekļuve joprojām tiek piešķirta (tas pierāda, ka webhook darbojas)
- Noraidīta karte reģistrācijā nepiešķir neko
- Neizdevusies atjaunošana pārved kontu uz past_due un rāda baneri
- Kartes atjaunināšana portālā atjauno statusu active
- Jauninājums un pazeminājums pareizi maina funkcijas
- Atcelšana perioda beigās saglabā piekļuvi līdz beigu datumam, pēc tam to noņem
- Izmēģinājuma lietotāji saņem piekļuvi, atgādinājumu un pareizi pāriet uz maksājošiem vai zaudē piekļuvi
- Viena un tā pati webhook notikuma divreizēja nosūtīšana nemaina neko
Stripe testa pulksteņi ļauj simulēt laika ritējumu, tāpēc var pārbaudīt atjaunošanas, negaidot mēnesi. Pārbaudiet Stripe aktuālo testēšanas dokumentāciju, lai uzzinātu, kā tos lietot.
Biežākās kļūdas
- Piekļuves piešķiršana veiksmīgas apmaksas lapā. Klienti var samaksāt un nekad tur nenonākt. Izmantojiet webhook.
- Apstrādāts tikai pirmais maksājums. Atjaunošanas, neizdevušies maksājumi un atcelšanas ierodas vēlāk kā notikumi.
- Plāna statusa pārbaude tikai priekšgalā. Ikviens var tieši izsaukt jūsu API.
- Viens lietotājs, nejauši vairāki abonementi. Pirms jaunas Checkout sesijas izveides pārbaudiet, vai abonements jau pastāv, vai nosūtiet esošos klientus uz portālu.
- Piekļuves atņemšana pie pirmās neizdevušās atjaunošanas. Kartes neizdodas parastu iemeslu dēļ. Īss žēlastības periods ar skaidru baneri notur klientus.
- Aizmirsts tiešraides webhook. Testa un tiešraides galapunktiem ir atšķirīgi parakstīšanas noslēpumi.
- Nodokļu un atmaksu ignorēšana. Pirms palaišanas nosakiet atmaksas politiku un pārbaudiet nodokļu saistības ar grāmatvedi.
Abonementi Mythex
Lietotnēs, ko veidojat Mythex, izmantojat savu Stripe kontu un atslēgas; lietotnei nav viena klikšķa Stripe savienojuma. Pievienojiet testa atslēgas un cenu ID kā projekta noslēpumus, izmantojiet uzvednes kā iepriekš un testējiet ar Stripe testa kartēm priekšskatījumā. Webhooks vajag jūsu lietotnes publisko URL, tāpēc publicējiet pirms galapunkta reģistrēšanas Stripe, un publicējiet vēlreiz pēc pārslēgšanās uz tiešraides atslēgām, lai tiešraides lietotne tās paņemtu. Skatiet Pieņemt maksājumus ar Stripe un Apstrādāt webhooks savā backend. Plašākam produktam kā izveidot SaaS MVP aptver to, ko veidot ap norēķiniem.
Jautājumi
Kāds ir vienkāršākais veids, kā pievienot abonementus ar Stripe?
Stripe panelī izveidojiet produktu ar regulāru cenu, nosūtiet klientus uz Stripe Checkout abonementa režīmā, apstrādājiet abonementa notikumus ar webhook un saitējiet pogu Pārvaldīt norēķinus uz Stripe mitināto klientu portālu. Tādējādi nav jāveido pašiem kartes veidlapas un plāna maiņas ekrāni.
Kādi Stripe webhook notikumi man vajadzīgi abonementiem?
Vismaz checkout.session.completed, lai saistītu jauno abonementu ar lietotāju, invoice.paid, lai apstiprinātu katru veiksmīgu maksājumu, invoice.payment_failed, lai brīdinātu par neizdevušām atjaunošanām, un customer.subscription.updated un customer.subscription.deleted, lai sekotu plānu izmaiņām un atcelšanām.
Kas notiek, kad abonementa maksājums neizdodas?
Saskaņā ar Stripe dokumentāciju uz 2026. gada septembri abonements parasti kļūst par past_due, un Stripe var mēģināt maksājumu atkārtot atbilstoši jūsu iestatījumiem. Pēc pēdējā mēģinājuma jūsu paneļa iestatījumi nosaka, vai abonements tiek atcelts, atzīmēts kā neapmaksāts vai atstāts past_due.
Vai var piedāvāt bezmaksas izmēģinājumu bez kartes pieprasīšanas?
Jā. Stripe atbalsta bezmaksas izmēģinājumus, un tā dokumentācijā aprakstīts paused statuss izmēģinājumiem, kas beidzas bez maksājuma metodes, ja tā ir iestatīts. Kartes pieprasīšana iepriekš parasti nozīmē mazāk reģistrāciju, bet vairāk maksājošu klientu; pārbaudiet, kas der jūsu produktam.