Vodiči

Kako dodati pretplate sa Stripeom: planovi, probni periodi, webhookovi i neuspjela plaćanja

Da biste dodali pretplate sa Stripeom, kreirajte proizvod s ponavljajućom cijenom u Stripe kontrolnoj tabli, pošaljite kupce sa svog servera na Stripe Checkout u načinu pretplate, i neka vam webhook javi kad se svako plaćanje uspješno izvrši, ne uspije, promijeni ili završi. Status pretplate čuvajte uz korisnika i na osnovu njega dajte pristup, a ne na osnovu stranice za uspjeh. Dodajte dugme Upravljaj naplatom koje otvara Stripeov hostovani portal za kupce, pa ljudi mogu mijenjati kartice, prebacivati planove i otkazivati bez da vi pravite te ekrane.

Ovaj vodič se nadovezuje na kako dodati plaćanja u aplikaciju, koji pokriva jednokratni Checkout, test način rada i puštanje u rad. Ovdje se fokusiramo na to šta je drugačije kod ponavljajuće naplate. Podaci o Stripeu su iz njegove dokumentacije od septembra 2026.

Zašto su pretplate teže od jednokratnih plaćanja

Jednokratno plaćanje se dešava dok je kupac u vašoj aplikaciji. Pretplata se nastavlja i kad on ode: obnavljanja svakog mjeseca, kartice koje isteknu, nadogradnje usred perioda, otkazivanja koja stupaju na snagu na kraju perioda. Vaša aplikacija za sve to saznaje samo preko webhookova. Većina grešaka s pretplatama dolazi od toga što se prvo plaćanje tretira kao cijela priča.

Vaše opcije

PristupŠta praviteNajbolje za
Payment Link s ponavljajućom cijenomNišta osim linkaProvjeru potražnje; ručno upravljanje pristupom
Checkout (način pretplate) + portal za kupceServersku rutu, webhook, dugme za naplatuVećinu SaaS aplikacija i članarina
API za pretplate s vlastitim obrascem za plaćanjeMnogo više: UI za plaćanje, autentifikacija, ponovni pokušajiAplikacije s neobičnim tokovima naplate
Pružalac merchant-of-recordSlično CheckoutuProdavce koji žele da pružalac obrađuje porez na promet

Za većinu aplikacija Checkout plus portal je pravi kompromis. Uporedite pružaoce u Stripe vs Paddle vs Lemon Squeezy ako vas brine obrada poreza.

Prvo isplanirajte cijene u Stripeu

U Stripeu je proizvod ono što prodajete („Pro plan“), a cijena je način na koji naplaćujete („20 $ mjesečno“, „200 $ godišnje“). Jedan proizvod može imati nekoliko cijena. Odlučite:

  • Koje nivoe nudite i šta svaki otključava u vašoj aplikaciji
  • Mjesečno, godišnje ili oboje
  • Da li nudite probni period i treba li kartica unaprijed

Kreirajte proizvode i cijene u test načinu rada i sačuvajte njihove ID-jeve cijena; vaša aplikacija se na njih poziva. Ako cijene još niste riješili, pročitajte kako odrediti cijenu SaaS proizvoda i freemium ili besplatni probni period.

Životni ciklus pretplate koji morate obraditi

Stripeov pregled pretplata navodi statuse koje pretplata može imati. Oni koji su najvažniji za pristup:

StatusŠta značiDaje pristup?
trialingU probnom perioduDa
activeU dobrom stanjuDa
incompletePrvo plaćanje još nije završeno; Stripe kupcu daje 23 sataNe
incomplete_expiredPrvo plaćanje nikad nije uspjeloNe
past_duePosljednje plaćanje nije uspjelo ili nije pokušano; mogu uslijediti ponovni pokušajiVaš izbor; mnoge aplikacije daju kratak rok milosti
unpaidPonovni pokušaji su završeni, računi ostaju otvoreni, nema daljih pokušajaNe; Stripeova dokumentacija kaže da treba ukinuti pristup
canceledZavršena; ne može se ponovo pokrenutiNe
pausedProbni period se završio bez načina plaćanja i bio je podešen da se pauziraNe

Sačuvajte status na zapisu korisnika ili naloga i na njemu zasnujte pristup. Ažurirajte ga svaki put kad stigne relevantan webhook.

Događaji webhookova koje treba obraditi

DogađajŠta radi vaša aplikacija
checkout.session.completedPovezuje novi Stripe ID kupca i pretplate s vašim korisnikom
invoice.paidOznačava pretplatu aktivnom i bilježi novi kraj perioda
invoice.payment_failedObavještava korisnika da mu kartica nije prošla i daje link na portal
invoice.payment_action_requiredTraži od korisnika da završi autentifikaciju kartice
customer.subscription.updatedAžurira plan, status i eventualno zakazano otkazivanje
customer.subscription.deletedUklanja pristup za plaćene funkcije
customer.subscription.trial_will_endPodsjeća korisnika prije kraja probnog perioda; Stripe šalje tri dana ranije

Pravila za handler iz Stripeove dokumentacije za webhookove i dalje važe: provjerite potpis koristeći sirovo tijelo, brzo vratite 2xx, obradite duplikate i događaje koji stižu van reda i očekujte ponovne pokušaje. Vodič šta je webhook objašnjava ideju, a vodič o plaćanjima navodi pravila detaljno.

Korak po korak

  1. Kreirajte proizvode i cijene u Stripe test načinu rada.
  2. Dodajte tajne: tajni ključ, ID-jeve cijena i kasnije tajni ključ za potpisivanje webhooka. Nikad ih ne stavljajte u kod frontenda.
  3. Stranica s cijenama: dugme svakog plana poziva vaš server, koji kreira Checkout sesiju u načinu pretplate za prijavljenog korisnika. Proslijedite ID korisnika da webhook može povezati plaćanje s nalogom.
  4. Krajnja tačka webhooka: provjerite potpise i obradite gore navedene događaje, ažurirajući jedan zapis pretplate po korisniku.
  5. Ograničite funkcije na sačuvani status i plan, provjeravano na serveru za svaku zaštićenu radnju, a ne samo sakrivenim dugmadima.
  6. Portal za kupce: podesite ga u Stripe kontrolnoj tabli (na koje planove ljudi mogu prelaziti, da li mogu otkazati), zatim dodajte dugme Upravljaj naplatom koje na serveru kreira sesiju portala i preusmjerava na nju.
  7. Neuspjela plaćanja: u Stripeovim postavkama naplate izaberite ponašanje ponovnih pokušaja i šta se dešava nakon posljednjeg. Prikazujte baner u aplikaciji dok je stanje past_due.
  8. Testirajte cijeli životni ciklus, zatim objavite i registrujte live webhook.

Upiti za vaš AI alat za izradu

Dodaj naplatu pretplata sa Stripeom. Planovi: Starter (ID cijene u STRIPE_PRICE_STARTER) i Pro (STRIPE_PRICE_PRO). Stranica s cijenama kreira Checkout sesiju u načinu pretplate na serveru koristeći STRIPE_SECRET_KEY, uz ID prijavljenog korisnika. Sačuvaj Stripe ID kupca, ID pretplate, plan i status na korisniku. Nikad ne izlažite tajni ključ pregledniku.

Dodaj POST /api/stripe/webhook. Provjeri potpis pomoću STRIPE_WEBHOOK_SECRET koristeći sirovo tijelo zahtjeva. Obradi checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted i customer.subscription.trial_will_end. Bilježi ID-jeve obrađenih događaja da se duplikati ignorišu. Ažuriraj korisnikov status iz objekta pretplate, a ne iz redoslijeda kojim događaji stižu.

Ograniči Pro funkcije na serveru: dozvoli ih samo kad je status active ili trialing i plan Pro. Prikaži baner „plaćanje nije uspjelo, ažuriraj karticu“ kad je status past_due. Dodaj dugme Upravljaj naplatom koje otvara Stripe portal za kupce za ovog korisnika.

Nadogradnje, smanjenja i proporcionalna naplata

Kad kupac promijeni plan, Stripeova dokumentacija kaže da promjena često stvara proporcionalnu naplatu: nova cijena se primjenjuje na ostatak tekućeg perioda naplate. Proporcionalni iznosi se mogu pregledati unaprijed ili isključiti. Ako planovi imaju isti interval, datumi naplate ostaju isti; prelazak s mjesečnog na godišnji pomjera datum naplate na dan promjene. Dozvoljavanje kupcima da mijenjaju plan u portalu štedi vam pisanje te logike, ali u postavkama portala odlučite koje promjene su dozvoljene.

Lista za testiranje

Koristite Stripe test način rada i test kartice, i prođite kroz svako stanje:

  • Nova pretplata daje pravi plan pravom korisniku
  • Zatvaranje taba odmah nakon plaćanja i dalje daje pristup (dokazuje da webhook radi)
  • Odbijena kartica pri prijavi ne daje ništa
  • Neuspjelo obnavljanje stavlja nalog u past_due i prikazuje baner
  • Ažuriranje kartice u portalu vraća status active
  • Nadogradnja i smanjenje ispravno mijenjaju funkcije
  • Otkazivanje na kraju perioda zadržava pristup do kraja, pa ga uklanja
  • Korisnici u probnom periodu dobijaju pristup, dobijaju podsjetnik i ispravno prelaze na plaćanje ili gube pristup
  • Slanje istog događaja webhooka dvaput ne mijenja ništa

Stripeovi test satovi omogućavaju simulaciju prolaska vremena, pa možete testirati obnavljanja bez čekanja mjesec dana. Provjerite trenutnu Stripeovu dokumentaciju za testiranje da vidite kako ih koristiti.

Česte greške

  • Davanje pristupa na stranici za uspjeh. Kupci mogu platiti i nikad je ne vidjeti. Koristite webhook.
  • Obrada samo prvog plaćanja. Obnavljanja, neuspjeha i otkazivanja stižu kasnije, kao događaji.
  • Provjera statusa plana samo na frontendu. Svako može direktno pozvati vaš API.
  • Jedan korisnik, više pretplata slučajno. Provjerite postojeću pretplatu prije kreiranja nove Checkout sesije, ili postojeće kupce pošaljite na portal.
  • Ukidanje pristupa pri prvom neuspjelom obnavljanju. Kartice ne uspijevaju iz dosadnih razloga. Kratak rok milosti uz jasan baner zadržava kupce.
  • Zaboravljen live webhook. Test i live krajnje tačke imaju različite tajne ključeve za potpisivanje.
  • Ignorisanje poreza i povrata. Odlučite politiku povrata i provjerite poreske obaveze kod računovođe prije puštanja u rad.

Pretplate na Mythexu

Aplikacije koje pravite na Mythexu koriste vaš sopstveni Stripe račun i ključeve; za vašu aplikaciju ne postoji povezivanje sa Stripeom u jednom kliku. Dodajte test ključeve i ID-jeve cijena kao tajne projekta, koristite upite slične gornjima i testirajte Stripe test karticama u pregledu. Webhookovima treba javna URL adresa vaše aplikacije, pa objavite prije registracije krajnje tačke u Stripeu, i ponovo objavite nakon prelaska na live ključeve da živa aplikacija preuzme ključeve. Pogledajte Prihvatanje plaćanja sa Stripeom i Obrada webhookova u backendu. Za širi proizvod, kako napraviti SaaS MVP pokriva šta graditi oko naplate.

Pitanja

Koji je najjednostavniji način za dodavanje pretplata sa Stripeom?

Kreirajte proizvod s ponavljajućom cijenom u Stripe kontrolnoj tabli, pošaljite kupce na Stripe Checkout u načinu pretplate, obradite događaje pretplate preko webhooka i povežite dugme Upravljaj naplatom s hostovanim portalom za kupce kod Stripea. Tako ne morate sami praviti obrasce za karticu i ekrane za promjenu plana.

Koji događaji webhooka su mi potrebni za pretplate?

Najmanje checkout.session.completed da povežete novu pretplatu s korisnikom, invoice.paid da potvrdite svako uspješno plaćanje, invoice.payment_failed da upozorite na neuspjela obnavljanja, te customer.subscription.updated i customer.subscription.deleted da pratite promjene plana i otkazivanja.

Šta se dešava kad plaćanje pretplate ne uspije?

Prema Stripeovoj dokumentaciji od septembra 2026, pretplata obično pređe u past_due, a Stripe može ponoviti plaćanje u skladu s vašim postavkama. Nakon posljednjeg pokušaja, postavke vaše kontrolne table određuju hoće li biti otkazana, označena kao neplaćena ili ostavljena u past_due.

Mogu li ponuditi besplatan probni period bez traženja kartice?

Da. Stripe podržava besplatne probne periode, a njegova dokumentacija opisuje status paused za probne periode koji se završe bez načina plaćanja, ako je tako podešeno. Traženje kartice unaprijed obično znači manje prijava, ali više plaćajućih kupaca; testirajte šta odgovara vašem proizvodu.

Mythex · Pricing · Izradite bilo šta uz AI · Šabloni za web stranice i aplikacije · Mythex u poređenju · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা 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 Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)