Vodiči

Kako dodati pretplate pomoću Stripe-a: planovi, probni periodi, webhook-ovi i neuspela plaćanja

Da biste dodali pretplate pomoću Stripe-a, u Stripe kontrolnoj tabli napravite proizvod sa ponavljajućom cenom, pošaljite kupce sa svog servera na Stripe Checkout u režimu pretplate, i neka vam webhook javlja kada svako plaćanje uspe, ne uspe, promeni se ili se završi. Status pretplate čuvajte uz korisnika i na osnovu njega dodeljujte pristup, a ne na osnovu stranice za uspeh. Dodajte dugme Upravljaj naplatom koje otvara Stripe-ov hostovani portal za kupce, da ljudi mogu da menjaju kartice, prebacuju planove i otkazuju bez da vi pravite te ekrane.

Ovaj vodič se nastavlja na kako dodati plaćanja u aplikaciju, koji pokriva jednokratni Checkout, test režim i puštanje u rad. Ovde se fokusiramo na to šta je drugačije kod ponavljajuće naplate. Podaci o Stripe-u su iz Stripe 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 kada on ode: obnavljanja svakog meseca, kartice kojima ističe rok, nadogradnje usred perioda, otkazivanja koja stupaju na snagu na kraju perioda. Vaša aplikacija za to saznaje samo preko webhook-ova. Većina grešaka sa pretplatama nastaje kada se prvo plaćanje tretira kao cela priča.

Vaše opcije

PristupŠta praviteNajbolje za
Payment Link sa ponavljajućom cenomNišta osim linkaTestiranje potražnje; ručno upravljanje pristupom
Checkout (režim pretplate) + portal za kupceServersku rutu, webhook, dugme za naplatuVećinu SaaS aplikacija i članstva
Subscriptions API sa sopstvenom formom za plaćanjeMnogo više: UI za plaćanje, autentifikaciju, ponovne pokušajeAplikacije sa neobičnim tokovima naplate
Provajder merchant of recordSlično Checkout-uProdavce koji žele da provajder obrađuje porez na promet

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

Prvo isplanirajte cene u Stripe-u

U Stripe-u je proizvod ono što prodajete („Pro plan”), a cena je kako to naplaćujete („20 USD mesečno”, „200 USD godišnje”). Jedan proizvod može imati nekoliko cena. Odlučite:

  • Koje nivoe nudite i šta svaki otključava u vašoj aplikaciji
  • Mesečno, godišnje ili oboje
  • Da li nudite probni period i da li on zahteva karticu unapred

Napravite proizvode i cene u test režimu i sačuvajte njihove ID-jeve cena; vaša aplikacija se na njih poziva. Ako cene još nisu dogovorene, pročitajte kako odrediti cenu SaaS proizvoda i freemium vs besplatni probni period.

Životni ciklus pretplate koji morate obraditi

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

StatusŠta značiDati pristup?
trialingU probnom perioduDa
activeU redu sa plaćanjemDa
incompletePrvo plaćanje još nije završeno; Stripe daje kupcu 23 sataNe
incomplete_expiredPrvo plaćanje nikada nije uspeloNe
past_duePoslednje plaćanje nije uspelo ili nije pokušano; mogu uslediti ponovni pokušajiVaš izbor; mnoge aplikacije dozvoljavaju kratak rok milosti
unpaidPonovni pokušaji su završeni, fakture ostaju otvorene, nema daljih pokušajaNe; Stripe 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 u zapisu korisnika ili naloga i zasnujte pristup na njemu. Ažurirajte ga svaki put kada stigne relevantan webhook.

Webhook događaji koje treba obraditi

DogađajŠta radi vaša aplikacija
checkout.session.completedPovezuje nove Stripe ID-jeve kupca i pretplate sa vašim korisnikom
invoice.paidOznačava pretplatu aktivnom i beleži kraj novog perioda
invoice.payment_failedJavlja korisniku da mu kartica nije prošla i vodi ga do portala
invoice.payment_action_requiredTraži od korisnika da završi autentifikaciju kartice
customer.subscription.updatedAžurira plan, status i svako zakazano otkazivanje
customer.subscription.deletedUklanja plaćeni pristup
customer.subscription.trial_will_endPodseća korisnika pre kraja probnog perioda; Stripe šalje tri dana pre

Pravila za handler iz Stripe webhook dokumentacije i dalje važe: proverite potpis koristeći sirovo telo, brzo vratite 2xx, obrađujte duplikate i događaje van redosleda i očekujte ponovne pokušaje. Vodič šta je webhook objašnjava pojam, a vodič o plaćanjima navodi pravila detaljno.

Korak po korak

  1. Napravite proizvode i cene u Stripe test režimu.
  2. Dodajte tajne: tajni ključ, ID-jeve cena i kasnije tajnu za potpisivanje webhook-a. Nikada ih ne stavljajte u kod front enda.
  3. Stranica sa cenama: dugme svakog plana poziva vaš server, koji kreira Checkout sesiju u režimu pretplate za prijavljenog korisnika. Prosledite ID korisnika da webhook može da poveže plaćanje sa nalogom.
  4. Krajnja tačka webhook-a: proverite potpise i obradite događaje iznad, ažurirajući jedan zapis pretplate po korisniku.
  5. Ograničite funkcije na sačuvani status i plan, proveravajući na serveru za svaku zaštićenu radnju, ne samo sakrivena dugmad.
  6. Portal za kupce: podesite ga u Stripe kontrolnoj tabli (na koje planove mogu da prebace i da li mogu da otkažu), zatim dodajte dugme Upravljaj naplatom koje na serveru kreira portal sesiju i preusmerava na nju.
  7. Neuspela plaćanja: u podešavanjima naplate u Stripe-u izaberite ponašanje ponovnih pokušaja i šta se dešava posle poslednjeg pokušaja. Prikažite banner u aplikaciji dok je status past_due.
  8. Testirajte ceo životni ciklus, zatim objavite aplikaciju i registrujte živi webhook.

Prompt-ovi za vaš AI alat

Dodajte naplatu pretplata pomoću Stripe-a. Planovi: Starter (ID cene u STRIPE_PRICE_STARTER) i Pro (STRIPE_PRICE_PRO). Stranica sa cenama kreira Checkout sesiju u režimu pretplate na serveru koristeći STRIPE_SECRET_KEY, sa ID-jem prijavljenog korisnika. Sačuvajte Stripe ID kupca, ID pretplate, plan i status na korisniku. Nikada ne izlažite tajni ključ pregledaču.

Dodajte POST /api/stripe/webhook. Proverite potpis pomoću STRIPE_WEBHOOK_SECRET koristeći sirovo telo zahteva. Obrađujte checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted i customer.subscription.trial_will_end. Beležite ID-jeve obrađenih događaja da duplikati budu ignorisani. Ažurirajte status korisnika iz objekta pretplate, a ne iz redosleda kojim događaji stižu.

Ograničite Pro funkcije na serveru: dozvolite ih samo kada je status active ili trialing i plan Pro. Prikažite banner „plaćanje nije uspelo, ažurirajte karticu” kada je status past_due. Dodajte dugme Upravljaj naplatom koje za ovog korisnika otvara Stripe portal za kupce.

Nadogradnje, smanjenja i proporcionalna naplata

Kada kupac prebacuje planove, Stripe dokumentacija kaže da promena često pravi proporcionalnu naplatu (proration): nova cena se primenjuje na ostatak tekućeg perioda naplate. Možete pregledati proporcije ili ih isključiti. Ako planovi imaju isti interval, datumi naplate ostaju isti; prelazak sa mesečnog na godišnji pomera datum naplate na dan promene. Kada kupci menjaju planove u portalu, ne morate sami da pišete tu logiku, ali u podešavanjima portala odredite koje promene su dozvoljene.

Lista za testiranje

Koristite Stripe test režim i test kartice i prođite kroz svako stanje:

  • Nova pretplata daje pravi plan pravom korisniku
  • Zatvaranje taba odmah posle plaćanja i dalje daje pristup (dokazuje da webhook radi)
  • Odbijena kartica pri prijavi ne daje ništa
  • Neuspelo obnavljanje stavlja nalog u past_due i prikazuje banner
  • Ažuriranje kartice u portalu vraća status active
  • Nadogradnja i smanjenje pravilno menjaju funkcije
  • Otkazivanje na kraju perioda zadržava pristup do kraja, pa ga uklanja
  • Korisnici u probnom periodu dobijaju pristup, dobijaju podsetnik i pravilno se pretvaraju u plaćajuće ili gube pristup
  • Slanje istog webhook događaja dvaput ništa ne menja

Stripe test satovi vam omogućavaju da simulirate protok vremena, pa možete testirati obnavljanja bez čekanja mesec dana. Proverite aktuelnu Stripe dokumentaciju za testiranje da vidite kako se koriste.

Česte greške

  • Davanje pristupa na stranici za uspeh. Kupci mogu da plate i nikada je ne vide. Koristite webhook.
  • Obrada samo prvog plaćanja. Obnavljanja, neuspesi i otkazivanja stižu kasnije, kao događaji.
  • Provera statusa plana samo u front endu. Bilo ko može direktno da pozove vaš API.
  • Jedan korisnik, slučajno više pretplata. Proverite postojeću pretplatu pre kreiranja nove Checkout sesije, ili pošaljite postojeće kupce na portal.
  • Ukidanje pristupa pri prvom neuspelom obnavljanju. Kartice ne prolaze iz dosadnih razloga. Kratak rok milosti sa jasnim banerom zadržava kupce.
  • Zaboravljen živi webhook. Test i živa krajnja tačka imaju različite tajne za potpisivanje.
  • Ignorisanje poreza i povraćaja. Odlučite politiku povraćaja i proverite poreske obaveze sa računovođom pre lansiranja.

Pretplate na Mythexu

Aplikacije koje pravite na Mythexu koriste vaš sopstveni Stripe nalog i ključeve; ne postoji povezivanje Stripe-a za jedan klik za vašu aplikaciju. Dodajte test ključeve i ID-jeve cena kao tajne projekta, koristite prompt-ove kao gore i testirajte sa Stripe test karticama u Preview-u. Webhook-ovima treba javna URL adresa vaše aplikacije, pa objavite pre registrovanja krajnje tačke u Stripe-u, i ponovo objavite posle prelaska na žive ključeve da bi živa aplikacija preuzela ih. Pogledajte Prihvatanje plaćanja pomoću Stripe-a i Obrada webhook-ova u vašem backend-u. Za širi proizvod, kako napraviti SaaS MVP pokriva šta graditi oko naplate.

Pitanja

Koji je najjednostavniji način da dodate pretplate pomoću Stripe-a?

U Stripe kontrolnoj tabli napravite proizvod sa ponavljajućom cenom, pošaljite kupce na Stripe Checkout u režimu pretplate, obrađujte događaje pretplate pomoću webhook-a i povežite dugme Upravljaj naplatom sa Stripe-ovim hostovanim portalom za kupce. Tako ne morate sami da pravite forme za karticu i ekrane za promenu plana.

Koje Stripe webhook događaje su mi potrebni za pretplate?

Najmanje checkout.session.completed da biste novu pretplatu povezali sa korisnikom, invoice.paid da potvrdite svako uspešno plaćanje, invoice.payment_failed da upozorite na neuspela obnavljanja, i customer.subscription.updated i customer.subscription.deleted da pratite promene plana i otkazivanja.

Šta se dešava kada plaćanje pretplate ne uspe?

Prema Stripe dokumentaciji od septembra 2026, pretplata obično pređe u past_due, a Stripe može da ponovi naplatu u skladu sa vašim podešavanjima. Posle poslednjeg pokušaja, podešavanja vaše kontrolne table određuju da li se pretplata otkazuje, označava kao unpaid ili ostaje past_due.

Mogu li da ponudim 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 unapred obično znači manje prijava, ali više plaćajućih kupaca; testirajte šta odgovara vašem proizvodu.

Mythex · Pricing · Pravite bilo šta uz AI · Šabloni za sajtove i aplikacije · Mythex u poređenju · Rečnik pojmova za pravljenje aplikacija uz AI · Besplatni alati za pravljenje aplikacija uz 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 Slovenščina Soomaali Shqip Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)