Vodiči

Kako dodati pretplate sa Stripeom: planovi, probna razdoblja, webhookovi i neuspjela plaćanja

Za dodavanje pretplata sa Stripeom u Stripe nadzornoj ploči napravite proizvod s ponavljajućom cijenom, pošaljite kupce na Stripe Checkout u načinu pretplate sa svog poslužitelja i pustite da webhook javi vašoj aplikaciji kada svako plaćanje uspije, ne uspije, promijeni se ili završi. Status pretplate spremite uz korisnika i pristup dodjeljujte prema tome, a ne prema stranici za uspjeh. Dodajte gumb Upravljaj naplatom koji otvara Stripeov hostirani portal za kupce, pa ljudi mogu mijenjati kartice, prebacivati planove i otkazivati bez da vi gradite te zaslone.

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

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

Jednokratno plaćanje događa se dok je kupac u vašoj aplikaciji. Pretplata se nastavlja i nakon što ode: mjesečne obnove, kartice kojima istekne rok, nadogradnje usred ciklusa, otkazivanja koja stupaju na snagu na kraju razdoblja. Vaša aplikacija o tome saznaje samo preko webhookova. Većina grešaka s pretplatama dolazi od toga da se prvo plaćanje tretira kao cijela priča.

Vaše mogućnosti

PristupŠto graditeNajbolje za
Payment Link s ponavljajućom cijenomNišta osim povezniceProvjeru potražnje; pristup ručno
Checkout (način pretplate) + portal za kupceRutu na poslužitelju, webhook, gumb za naplatuVećinu SaaS aplikacija i članstava
Subscriptions API s vlastitim obrascem za plaćanjeMnogo više: sučelje za plaćanje, autentifikaciju, ponavljanjaAplikacije s neobičnim tijekovima naplate
Pružatelj tipa merchant of recordSlično CheckoutuProdavatelje koji žele da pružatelj vodi porez na promet

Za većinu aplikacija Checkout plus portal je pravi kompromis. Usporedite pružatelje 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 kako to naplaćujete („20 $ mjesečno”, „200 $ godišnje”). Jedan proizvod može imati više cijena. Odlučite:

  • Koje razine nudite i što svaka otključava u vašoj aplikaciji
  • Mjesečno, godišnje ili oboje
  • Nudite li probno razdoblje i treba li ono karticu unaprijed

Proizvode i cijene napravite u testnom načinu rada i čuvajte njihove ID-jeve cijena; vaša aplikacija se na njih poziva. Ako cijene još niste dogovorili, pročitajte kako odrediti cijenu SaaS proizvoda i freemium ili besplatno probno razdoblje.

Životni ciklus pretplate koji morate obraditi

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

StatusŠto značiDaje li pristup?
trialingU probnom razdobljuDa
activeU dobrom stanjuDa
incompletePrvo plaćanje još nije završeno; Stripe kupcu daje 23 sataNe
incomplete_expiredPrvo plaćanje nikada nije uspjeloNe
past_duePosljednje plaćanje nije uspjelo ili nije pokušano; mogu slijediti ponovni pokušajiVaš izbor; mnoge aplikacije dopuštaju kratko razdoblje milosti
unpaidPonovni pokušaji završili, računi ostaju otvoreni, nema daljnjih pokušajaNe; Stripeova dokumentacija kaže da pristup treba ukinuti
canceledZavršeno; ne može se ponovno pokrenutiNe
pausedProbno razdoblje je završilo bez načina plaćanja i postavljeno je na pauzuNe

Spremite status na svoj zapis korisnika ili računa i na njemu temeljite pristup. Ažurirajte ga svaki put kada stigne relevantan webhook.

Webhook događaji koje treba obraditi

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

Pravila za handlere iz Stripeove dokumentacije za webhookove i dalje vrijede: provjerite potpis koristeći sirovo tijelo, brzo vratite 2xx, obradite duplikate i događaje izvan redoslijeda te računajte na ponovne isporuke. Što je webhook objašnjava ideju, a vodič o plaćanjima navodi pravila detaljno.

Korak po korak

  1. Napravite proizvode i cijene u Stripe testnom načinu rada.
  2. Dodajte tajne: tajni ključ, ID-jeve cijena i kasnije tajni ključ za potpisivanje webhooka. Nikada ih ne stavljajte u kod na frontendu.
  3. Stranica s cijenama: gumb svakog plana poziva vaš poslužitelj, koji stvara Checkout sesiju u načinu pretplate za prijavljenog korisnika. Proslijedite svoj ID korisnika kako bi webhook mogao uplatu povezati s računom.
  4. Webhook krajnja točka: provjerava potpise i obrađuje gore navedene događaje, ažurirajući jedan zapis pretplate po korisniku.
  5. Otključavajte značajke prema spremljenom statusu i planu, provjerenim na poslužitelju za svaku zaštićenu radnju, a ne samo prema gumbovima.
  6. Portal za kupce: konfigurirajte ga u Stripe nadzornoj ploči (na koje planove ljudi mogu prijeći, mogu li otkazati), zatim dodajte gumb Upravljaj naplatom koji na poslužitelju stvara sesiju portala i preusmjerava na nju.
  7. Neuspjela plaćanja: u postavkama naplate u Stripeu odaberite ponašanje ponovnih pokušaja i što se događa nakon posljednjeg. Prikažite banner u aplikaciji dok je status past_due.
  8. Testirajte cijeli životni ciklus, zatim objavite i registrirajte živi webhook.

Upute 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 stvara Checkout sesiju u načinu pretplate na poslužitelju koristeći STRIPE_SECRET_KEY, s ID-jem prijavljenog korisnika. Spremi Stripe ID kupca, ID pretplate, plan i status na korisnika. Nikada 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 zanemare. Ažuriraj status korisnika prema objektu pretplate, a ne prema redoslijedu kojim događaji stižu.

Otključavaj Pro značajke na poslužitelju: dopusti ih samo kada je status active ili trialing i plan je Pro. Prikaži banner „Plaćanje nije uspjelo, ažuriraj karticu” kada je status past_due. Dodaj gumb Upravljaj naplatom koji otvara Stripe portal za kupce za ovog korisnika.

Nadogradnje, smanjenja i proporcionalna naplata

Kada kupac promijeni plan, Stripeova dokumentacija kaže da promjena često stvara proraciju (proration): nova cijena primjenjuje se na ostatak tekućeg razdoblja naplate. Proračune možete pregledati ili ih isključiti. Ako planovi imaju isti interval, datumi naplate ostaju isti; prijelaz s mjesečnog na godišnje pomiče datum naplate na dan promjene. Dopuštanje kupcima da mijenjaju planove u portalu štedi vam pisanje te logike, ali u postavkama portala odlučite koje su promjene dopuštene.

Popis za testiranje

Koristite Stripe testni način rada i testne kartice te prođite svako stanje:

  • Nova pretplata daje pravi plan pravom korisniku
  • Zatvaranje kartice odmah nakon plaćanja i dalje daje pristup (dokazuje da webhook radi)
  • Odbijena kartica pri registraciji ne daje ništa
  • Obnova koja ne uspije stavlja račun u past_due i prikazuje banner
  • Ažuriranje kartice u portalu vraća status active
  • Nadogradnja i smanjenje plana ispravno mijenjaju značajke
  • Otkazivanje na kraju razdoblja zadržava pristup do krajnjeg datuma, zatim ga uklanja
  • Korisnici u probnom razdoblju dobivaju pristup, podsjetnik i pravilno prelaze u plaćanje ili gube pristup
  • Slanje istog webhook događaja dvaput ništa ne mijenja

Stripeovi testni satovi (test clocks) omogućuju simulaciju prolaska vremena, pa možete testirati obnove bez čekanja mjesec dana. Provjerite trenutne Stripeove dokumente za testiranje za način korištenja.

Česte greške

  • Davanje pristupa na stranici za uspjeh. Kupci mogu platiti i nikada je ne vidjeti. Koristite webhook.
  • Obrada samo prvog plaćanja. Obnove, neuspjesi i otkazivanja stižu kasnije, kao događaji.
  • Provjera statusa plana samo na frontendu. Svatko može izravno pozvati vaš API.
  • Slučajno jedan korisnik, mnogo pretplata. Prije stvaranja nove Checkout sesije provjerite postoji li već pretplata ili pošaljite postojeće kupce na portal.
  • Oduzimanje pristupa pri prvoj neuspjeloj obnovi. Kartice ne uspijevaju iz dosadnih razloga. Kratko razdoblje milosti s jasnim banerom zadržava kupce.
  • Zaboravljen živi webhook. Testne i žive krajnje točke imaju različite tajne ključeve za potpis.
  • Ignoriranje poreza i povrata. Odlučite politiku povrata i provjerite porezne obveze s računovođom prije puštanja u rad.

Pretplate na Mythexu

Aplikacije koje gradite na Mythexu koriste vaš vlastiti Stripe račun i ključeve; ne postoji povezivanje Stripea jednim klikom za vašu aplikaciju. Dodajte testne ključeve i ID-jeve cijena kao tajne projekta, koristite upute poput gornjih i testirajte s Stripeovim testnim karticama u pregledu. Webhookovi trebaju javnu adresu vaše aplikacije, pa objavite prije registracije krajnje točke u Stripeu, a ponovno objavite nakon prelaska na žive ključeve kako bi živa aplikacija preuzela nove vrijednosti. Pogledajte Prihvaćanje plaćanja sa Stripeom i Obrada webhookova u backendu. Za širi proizvod, kako izraditi SaaS MVP pokriva što graditi oko naplate.

Pitanja

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

U Stripe nadzornoj ploči napravite proizvod s ponavljajućom cijenom, pošaljite kupce na Stripe Checkout u načinu pretplate, obradite događaje pretplate pomoću webhooka i povežite gumb Upravljaj naplatom s Stripeovim hostiranim portalom za kupce. Tako ne morate sami graditi obrasce za karticu i zaslone za promjenu plana.

Koji su mi webhook događaji potrebni za pretplate?

Najmanje checkout.session.completed za povezivanje nove pretplate s vašim korisnikom, invoice.paid za potvrdu svakog uspješnog plaćanja, invoice.payment_failed za upozorenje o neuspjelim obnovama te customer.subscription.updated i customer.subscription.deleted za praćenje promjena plana i otkazivanja.

Što se događa kada plaćanje pretplate ne uspije?

Prema Stripeovoj dokumentaciji od rujna 2026., pretplata obično prelazi u past_due, a Stripe može ponoviti plaćanje prema vašim postavkama. Nakon posljednjeg pokušaja, postavke vaše nadzorne ploče određuju hoće li biti otkazana, označena kao unpaid ili ostati past_due.

Mogu li ponuditi besplatno probno razdoblje bez traženja kartice?

Da. Stripe podržava besplatna probna razdoblja, a njegova dokumentacija opisuje status paused za probna razdoblja koja završe bez načina plaćanja, ako je tako postavljeno. Traženje kartice unaprijed obično znači manje registracija, ali više plaćajućih kupaca; testirajte što odgovara vašem proizvodu.

Mythex · Pricing · Izradite bilo što uz AI · Predlošci za web stranice i aplikacije · Mythex u usporedbi · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी 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 简体中文 繁體中文(香港) 繁體中文(台灣)