Vodiči

Kako dodati plaćanja u svoju aplikaciju: Checkout, pretplate i webhookovi

Najjednostavniji način za dodavanje plaćanja u aplikaciju je Stripe: koristite Payment Link ako vam treba samo gumb „Kupi” i možete narudžbe obrađivati ručno, Stripe Checkout ako vaša aplikacija mora znati tko je platio i automatski reagirati, a Checkout u načinu pretplate plus Stripeov portal za kupce za ponavljajuća plaćanja. U svakom slučaju osim najjednostavnijeg trebate i webhook, odnosno poslužiteljsku krajnju točku koju Stripe poziva kada plaćanje uspije, a sve treba testirati s Stripeovim testnim ključevima i testnim karticama prije prelaska na žive ključeve.

Ovaj vodič objašnjava svaku mogućnost, dio s webhookovima koji većina tutorijala preskače te što provjeriti prije naplate pravog novca. Podaci o Stripeu su iz njegove vlastite dokumentacije od rujna 2026.

Zašto uopće koristiti pružatelja plaćanja

Nikada ne prikupljajte brojeve kartica u vlastitim obrascima. Rukovanje sirovim podacima o karticama uvodi vas u opseg PCI DSS-a (sigurnosnog standarda industrije kartica) i predstavlja ozbiljan rizik. Pružatelj poput Stripea hosta obrazac za plaćanje, pohranjuje karticu, obrađuje autentifikaciju banke i javlja vašoj aplikaciji rezultat. Vaša aplikacija uvijek vidi samo „kupac X je platio za Y”.

Ovaj vodič koristi Stripe jer je široko rasprostranjen, dobro dokumentiran i podržan u većini alata za izradu aplikacija. Postoje i drugi pružatelji, a neki djeluju kao „merchant of record” i preuzimaju obradu poreza na promet umjesto vas; ako vas brine usklađenost s porezima, taj model vrijedi usporediti.

Tri načina primanja plaćanja sa Stripeom

MogućnostTreba kodZna li vaša aplikacija tko je platioNajbolje za
Payment LinksNištaSamo ako dodate webhookProdaju nekoliko fiksnih proizvoda, donacije, provjeru potražnje
Checkout (jednokratno)Poslužiteljski kod za stvaranje sesijeDa, preko webhookaTrgovine, plaćena preuzimanja, jednokratne kupnje
Checkout (pretplata)Poslužiteljski kod i obrada webhookaDa, preko webhookaSaaS, članstva, sve što se ponavlja

Payment Links

Payment Link je stranica za plaćanje koju hosta Stripe, a koju stvarate u Stripe nadzornoj ploči bez koda. Dobijete URL koji možete staviti iza gumba u aplikaciji, podijeliti u e-poruci ili prikazati kao QR kod. Stripeova dokumentacija navodi da Payment Links mogu prodavati proizvod, pretplatu ili primati donaciju, a možete dopustiti kupcima da biraju što plaćaju ili ograničiti broj kupnji.

Zamka: vaša aplikacija automatski ne zna da je određeni prijavljeni korisnik platio. Za stranicu donacija ili malu trgovinu u kojoj narudžbe ručno ispunjavate prema obavijestima e-poštom iz Stripea, to je u redu. Za „plati za otključavanje Pro značajki” to nije dovoljno.

Stripe Checkout

Checkout je stranica za plaćanje koju vaš poslužitelj stvara na zahtjev za određenu kupnju. Vaš poslužitelj Stripeu kaže što se kupuje (i opcionalno tko kupuje), Stripe vraća URL, a vi kupca šaljete tamo. Stripe opisuje da podržava jednokratna plaćanja i pretplate, kao punu stranicu koju hosta Stripe, stranicu ugrađenu na vašu web stranicu ili ugrađeni obrazac.

Tijek:

  1. Kupac klikne Kupi u vašoj aplikaciji.
  2. Vaš poslužitelj stvara Checkout sesiju pomoću vašeg tajnog ključa, uključujući ID koji je povezuje s vašim korisnikom ili narudžbom.
  3. Kupac se preusmjerava na Stripe i plaća.
  4. Stripe ga vraća na vašu stranicu za uspjeh.
  5. Stripe šalje događaj checkout.session.completed vašem webhooku, a vaš poslužitelj označava narudžbu plaćenom ili otključava pristup.

Korak 2 mora se odvijati na poslužitelju jer koristi vaš tajni ključ. To je glavni razlog zašto Checkout treba backend.

Pretplate

Pretplate koriste Checkout u načinu pretplate s ponavljajućom cijenom koju postavite u Stripeu. Prvo plaćanje funkcionira kao gore opisani tijek. Nakon toga obnove, neuspjela plaćanja s karticom, nadogradnje i otkazivanja događaju se tijekom vremena, često kada kupac uopće nije u vašoj aplikaciji, pa o njima vaša aplikacija saznaje samo preko webhookova.

Za to da kupci sami upravljaju svojom pretplatom, Stripe nudi hostirani portal za kupce. Prema Stripeovoj dokumentaciji, kupci tamo mogu ažurirati načine plaćanja i podatke za naplatu, promijeniti ili otkazati pretplate te pregledati i preuzeti račune. Portal konfigurirate u Stripe nadzornoj ploči i dodajete gumb „Upravljaj naplatom” koji kupca šalje tamo. Time vam ne treba graditi te zaslone sami.

Webhookovi: dio koji ne smijete preskočiti

Webhook je HTTP zahtjev koji Stripe šalje vašem poslužitelju kada se nešto dogodi. (Pogledajte što je webhook za opći pojam.) Stripeov vodič za ispunjavanje narudžbi jasan je: ne smijete se oslanjati samo na stranicu za uspjeh pri ispunjavanju narudžbi, jer kupac može platiti, a zatim izgubiti vezu prije nego se ta stranica učita. Za pretplate i odgođene načine plaćanja webhookovi su obavezni.

Događaji koje vrijedi obraditi

DogađajŠto značiŠto radi vaša aplikacija
checkout.session.completedCheckout je završenOznačite narudžbu plaćenom ili pokrenite pristup
checkout.session.async_payment_succeededOdgođeni način (poput bankovnog zaduženja) kasnije je prošaoIspunite narudžbu odmah
checkout.session.async_payment_failedTo odgođeno plaćanje nije uspjeloObavijestite kupca; nemojte ispunjavati
invoice.paidPlaćanje pretplate uspjelo je, uključujući obnoveProduljite pristup
invoice.payment_failedObnova nije uspjelaUpozorite korisnika; Stripe može pokušati ponovno
customer.subscription.updatedPlan je promijenjen ili je zakazano otkazivanjeAžurirajte korisnikov plan
customer.subscription.deletedPretplata je završilaUklonite plaćeni pristup

Pravila za ispravan webhook

Ovo dolazi izravno iz Stripeove dokumentacije za webhookove, a generirani kod ih ponekad propušta:

  • Provjerite potpis. Svaki događaj uključuje zaglavlje Stripe-Signature. Vaš handler ga provjerava pomoću tajnog ključa krajnje točke (počinje s whsec_). Bez toga bi netko mogao poslati lažno „plaćanje uspjelo” vašem poslužitelju.
  • Koristite sirovo tijelo zahtjeva. Provjere potpisa ne uspijevaju ako vaš okvir prvo parsira ili promijeni tijelo.
  • Brzo vratite odgovor 2xx, a sporiji posao radite nakon toga. Isteci vremena se računaju kao greške.
  • Obradite duplikate. Stripe može isporučiti isti događaj više puta. Bilježite ID-jeve obrađenih događaja ili neka ispunjavanje bude sigurno za dvostruko izvođenje.
  • Ne pretpostavljajte redoslijed. Stripe ne jamči da će događaji stizati redom kojim su se dogodili.
  • Računajte na ponavljanja. U živom načinu rada Stripe ponavlja neuspjele isporuke do tri dana, pa kratki prekid ne gubi plaćanja, ali vaš handler mora podnijeti zakašnjele događaje.

Webhookovi trebaju javnu HTTPS adresu, pa obično rade tek kada je aplikacija objavljena (Stripeov CLI može proslijediti događaje na lokalno računalo za programere).

Upute koje pokrivaju cijeli tijek

Dodaj jednokratnu kupnju pomoću Stripe Checkout za „Pro paket” (ID cijene u STRIPE_PRICE_ID). Napravi Checkout sesiju na poslužitelju koristeći STRIPE_SECRET_KEY iz tajni i uključi ID prijavljenog korisnika u sesiju. Dodaj krajnju točku POST /api/stripe/webhook koja provjerava Stripe potpis pomoću STRIPE_WEBHOOK_SECRET koristeći sirovo tijelo zahtjeva, obrađuje checkout.session.completed i označava tog korisnika kao korisnika s Pro paketom. Neka bude sigurno ako isti događaj stigne dvaput. Dodaj stranice za uspjeh i otkazivanje. Nikada ne izlažite tajni ključ pregledniku.

Za pretplate dodaj: „Koristi način pretplate s STRIPE_PRICE_ID. Obradi invoice.paid, invoice.payment_failed, customer.subscription.updated i customer.subscription.deleted. Dodaj gumb Upravljaj naplatom koji otvara Stripe portal za kupce.”

Testni način rada

Stripe ima odvojena sandbox (testna) i živa okruženja s odvojenim ključevima. Testni ključevi počinju s pk_test_, sk_test_ ili rk_test_; živi ključevi počinju s pk_live_, sk_live_ ili rk_live_. Testne transakcije ne prenose novac.

Korisne testne kartice iz Stripeove dokumentacije za testiranje (bilo koji budući datum isteka, bilo koji troznamenkasti CVC):

Broj karticeRezultat
4242 4242 4242 4242Plaćanje uspijeva
4000 0000 0000 0002Kartica je odbijena
4000 0000 0000 3220Zahtijeva autentifikaciju 3D Secure, zatim uspijeva

Testirajte najmanje:

  • Uspješno plaćanje otključava pravu stvar za pravog korisnika
  • Odbijena kartica prikazuje jasnu poruku i ništa ne otključava
  • Zatvaranje kartice preglednika odmah nakon plaćanja i dalje daje pristup (to dokazuje da webhook radi, a ne samo stranica za uspjeh)
  • Otkazivanje na Stripe stranici vraća korisnika u vašu aplikaciju bez naplate
  • Za pretplate: otkažite u portalu za kupce i provjerite da pristup prestaje kada treba

Puštanje u rad

  1. Aktivirajte svoj Stripe račun s podacima o poslovanju i banci.
  2. Zamijenite živim ključevima u tajnama svoje aplikacije. Stripe preporučuje ograničene ključeve samo s dopuštenjima koja vaša integracija treba, umjesto neograničenog tajnog ključa.
  3. Napravite živu krajnju točku webhooka koja pokazuje na vašu objavljenu aplikaciju. Ima vlastiti tajni ključ za potpis, različit od testnog; ažurirajte ga.
  4. Ponovno stvorite proizvode i cijene u živom načinu rada; ID-jevi iz testnog načina tamo ne postoje.
  5. Napravite jednu pravu malu kupnju i vratite novac.

Svaki ključ držite u tajnama svog projekta, nikada u kodu ili chatu. Naša kontrolna lista sigurnosti detaljnije pokriva ključeve i provjeru webhookova.

Porezi, povrati i papirologija

Plaćanja donose obveze koje kod ne rješava. Ovo nije porezni savjet; posavjetujte se s računovođom.

  • Porez na promet, PDV i GST. Ovisno o tome gdje ste vi i vaši kupci, možda se trebate registrirati, obračunavati i prijavljivati porez. Stripe Tax može izračunati i naplatiti porez na blagajni, pratiti gdje vaša prodaja može stvoriti obvezu i pomoći s registracijama i prijavama, ali odgovornost ostaje na vama. Merchant of record pružatelji su alternativa koja preuzima više toga.
  • Povrati i sporovi. Odlučite pravila o povratu prije puštanja u rad i objavite ih na stranici. Sporovi (chargebacki) se događaju; čuvajte zapise o tome što je kupljeno i isporučeno.
  • Računi i fakture. Stripe može slati potvrde e-poštom; poslovni subjekti možda trebaju ispravne račune.
  • Naknade. Svaki pružatelj naplaćuje po transakciji. Provjerite aktualni cjenik pružatelja, a ne se oslanjajte na brojke iz članaka.

Koja postavka odgovara vašoj aplikaciji

  • Donacije ili nekoliko proizvoda: Payment Links. Pogledajte kako izraditi web stranicu za donacije neprofitnih organizacija.
  • Trgovina s košaricom: Checkout sa stavkama i webhookom. Pogledajte kako izraditi internetsku trgovinu.
  • SaaS ili članstva: Checkout u načinu pretplate, webhookovi i portal za kupce. Pogledajte kako izraditi SaaS MVP i kako odrediti cijenu SaaS proizvoda.
  • Tržište koje isplaćuje prodavačima: drugačija, strože regulirana postavka (Stripe Connect ili slično). Planirajte to zasebno.

Dodavanje plaćanja na Mythexu

Plaćanja u aplikacijama koje gradite na Mythexu koriste vaš vlastiti Stripe račun i ključeve; za vašu aplikaciju ne postoji povezivanje Stripea jednim klikom. Uobičajeni tijek:

  1. Nabavite Stripe testne ključeve.
  2. Dodajte STRIPE_SECRET_KEY (a kasnije tajni ključ webhooka) u tajne projekta, putem /secrets, postavki projekta ili kartice s tajnama koju agent prikaže kada mu treba ključ.
  3. Zatražite od agenta Checkout pomoću upute poput gornje.
  4. Testirajte u pregledu s testnim karticama. Objavite prije registracije webhooka, jer treba vašu javnu adresu.
  5. Nakon prelaska na žive ključeve ponovno objavite kako bi živa aplikacija preuzela nove vrijednosti.

Pogledajte Prihvaćanje plaćanja sa Stripeom i Obrada webhookova u backendu u dokumentaciji.

Pitanja

Koji je najlakši način za primanje plaćanja u aplikaciji?

Stripe Payment Link ne treba kod: napravite ga u Stripe nadzornoj ploči i povežite ga iz svoje aplikacije. Ako vaša aplikacija mora znati tko je platio i automatski otključati nešto, koristite Stripe Checkout s webhookom.

Treba li mi webhook za primanje plaćanja?

Ako vaša aplikacija mora reagirati na plaćanje, primjerice otključati račun, označiti narudžbu plaćenom ili obraditi obnovu, onda da. Stripe u dokumentaciji navodi da se ne smijete oslanjati samo na stranicu za uspjeh, jer kupac može platiti i nikada je ne vidjeti. Webhookovi su također obavezni za pretplate.

Kako testirati plaćanja bez pravog novca?

Koristite Stripeove testne API ključeve i testne brojeve kartica, primjerice 4242 4242 4242 4242 s bilo kojim budućim datumom isteka i bilo kojim troznamenkastim CVC-om. Testne transakcije ne prenose pravi novac.

Hoće li Stripe umjesto mene obraditi porez na promet i PDV?

Stripe Tax može izračunati i naplatiti porez na blagajni te pratiti gdje biste se možda trebali registrirati, ali vi ostajete odgovorni za svoje porezne obveze. Za svoj slučaj se posavjetujte s računovođom.

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 简体中文 繁體中文(香港) 繁體中文(台灣)