Ako pridať platby do aplikácie: Checkout, predplatné a webhooky
Najjednoduchší spôsob, ako pridať platby do aplikácie, je Stripe: použite Payment Link, ak potrebujete len tlačidlo „Kúpiť“ a objednávky viete spracovávať ručne; Stripe Checkout, ak vaša aplikácia musí vedieť, kto zaplatil, a automaticky na to reagovať; a Checkout v režime predplatného plus zákaznícky portál Stripe pre opakované platby. Vo všetkých prípadoch okrem tého najjednoduchšieho potrebujete aj webhook — serverový koncový bod, ktorý Stripe volá, keď platba prebehne úspešne — a všetko by ste mali otestovať s testovacími kľúčmi a testovacími kartami Stripe, skôr než prepnete na ostré kľúče.
Tento návod vysvetľuje každú možnosť, časť s webhookom, ktorú väčšina návodov preskočí, a čo skontrolovať, skôr než začnete prijímať skutočné peniaze. Údaje o Stripe sú z vlastnej dokumentácie Stripe k septembru 2026.
Prečo vôbec používať poskytovateľa platieb
Nikdy nezbierajte čísla kariet vo vlastných formulároch. Práca so surovými údajmi o karte vás dostane do rozsahu PCI DSS (bezpečnostný štandard kartového priemyslu) a je to vážna zodpovednosť. Poskytovateľ platieb ako Stripe hostuje platobný formulár, ukladá kartu, rieši overenie bankou a vašej aplikácii oznámi výsledok. Vaša aplikácia vidí len „zákazník X zaplatil za Y“.
Tento návod používa Stripe, lebo je široko používaný, dobre zdokumentovaný a podporovaný väčšinou nástrojov na tvorbu aplikácií pomocou AI. Existujú aj ďalší poskytovatelia a niektorí fungujú ako „merchant of record“, ktorý za vás preberá vybavenie dane z predaja; ak vás znepokojuje daňová compliance, tento model stojí za porovnanie.
Tri spôsoby, ako prijímať platby cez Stripe
| Možnosť | Potrebný kód | Vie vaša aplikácia, kto zaplatil? | Najlepšie pre |
|---|---|---|---|
| Payment Links | Žiadny | Len ak pridáte webhook | Predaj niekoľkých pevných produktov, dary, testovanie dopytu |
| Checkout (jednorazový) | Serverový kód na vytvorenie relácie | Áno, cez webhook | Obchody, platené sťahovanie, jednorazové nákupy |
| Checkout (predplatné) | Serverový kód plus spracovanie webhooku | Áno, cez webhook | SaaS, členstvá, čokoľvek opakované |
Payment Links
Payment Link je platobná stránka hostovaná na Stripe, ktorú vytvoríte v Stripe Dashboarde bez kódu. Dostanete URL, ktorú môžete dať za tlačidlo vo svojej aplikácii, zdieľať v e-maile alebo zobraziť ako QR kód. Dokumentácia Stripe hovorí, že Payment Links môžu predávať produkt, predplatné alebo prijímať dar, a môžete nechať zákazníkov vybrať, čo zaplatia, alebo obmedziť počet nákupov.
Háčik: vaša aplikácia automaticky nevie, že konkrétny prihlásený používateľ zaplatil. Pre stránku darov alebo malý obchod, kde objednávky vybavujete ručne podľa e-mailových upozornení zo Stripe, to stačí. Pre „zaplať a odomkni funkcie Pro“ to nestačí.
Stripe Checkout
Checkout je platobná stránka, ktorú váš server vytvára na požiadanie pre konkrétny nákup. Váš server povie Stripe, čo sa kupuje (a voliteľne, ktorý zákazník kupuje), Stripe vráti URL a vy zákazníka na ňu pošlete. Dokumentácia Stripe ho opisuje ako podporujúci jednorazové aj predplatné platby, ako celú stránku hostovanú Stripe, stránku vloženú na váš web alebo vložený formulár.
Postup:
- Zákazník v aplikácii klikne na Kúpiť.
- Váš server vytvorí Checkout Session pomocou vášho tajného kľúča vrátane ID, ktoré ju prepojí s vaším používateľom alebo objednávkou.
- Zákazník je presmerovaný na Stripe a zaplatí.
- Stripe ho presmeruje späť na vašu stránku úspechu.
- Stripe pošle udalosť
checkout.session.completedna váš webhook a váš server označí objednávku ako zaplatenú alebo odomkne prístup.
Krok 2 musí prebehnúť na serveri, lebo používa váš tajný kľúč. To je hlavný dôvod, prečo Checkout potrebuje backend.
Predplatné
Predplatné používa Checkout v režime predplatného s opakovanou cenou, ktorú nastavíte v Stripe. Prvá platba funguje ako vyššie uvedený postup. Potom sa v čase odohrávajú obnovenia, zamietnuté karty, upgrady a zrušenia — často vtedy, keď zákazník vo vašej aplikácii vôbec nie je — takže sa o nich vaša aplikácia dozvie len cez webhooky.
Na to, aby zákazníci spravovali vlastné predplatné, Stripe ponúka hostovaný zákaznícky portál. Podľa dokumentácie Stripe tam zákazníci môžu aktualizovať spôsoby platby a fakturačné údaje, meniť alebo rušiť predplatné a zobrazovať a sťahovať faktúry. Nastavíte ho v Stripe Dashboarde a pridáte tlačidlo „Spravovať fakturáciu“, ktoré zákazníka pošle tam. Ušetrí vám to budovanie týchto obrazoviek vlastnými silami.
Webhooky: časť, ktorú nemožno preskočiť
Webhook je HTTP požiadavka, ktorú Stripe pošle na váš server, keď sa niečo stane. (Všeobecnú myšlienku nájdete v článku čo je webhook.) Sprievodca plnením objednávok od Stripe je jasný: nemôžete sa spoliehať iba na stránku úspechu, aby ste plnili objednávky, lebo zákazník môže zaplatiť a potom stratiť pripojenie skôr, než sa stránka načíta. Pre predplatné a oneskorené spôsoby platby sú webhooky nevyhnutné.
Udalosti, ktoré stoja za spracovanie
| Udalosť | Čo znamená | Čo robí vaša aplikácia |
|---|---|---|
checkout.session.completed | Checkout sa dokončil | Označí objednávku ako zaplatenú alebo spustí prístup |
checkout.session.async_payment_succeeded | Oneskorený spôsob (napríklad bankové inkaso) sa neskôr potvrdil | Naplní objednávku hneď |
checkout.session.async_payment_failed | Táto oneskorená platba zlyhala | Informuje zákazníka; neplní objednávku |
invoice.paid | Platba predplatného bola úspešná vrátane obnovení | Predĺži prístup |
invoice.payment_failed | Obnovenie zlyhalo | Upozorní používateľa; Stripe môže opakovať pokus |
customer.subscription.updated | Plán sa zmenil alebo je naplánované zrušenie | Aktualizuje plán používateľa |
customer.subscription.deleted | Predplatné skončilo | Odstráni prístup k platenému obsahu |
Pravidlá pre správne spracovanie webhooku
Tieto body pochádzajú priamo z dokumentácie Stripe k webhookom a vygenerované spracovania ich niekedy vynechajú:
- Overte podpis. Každá udalosť obsahuje hlavičku
Stripe-Signature. Vaše spracovanie ju overí pomocou podpisového tajomstva koncového bodu (začína nawhsec_). Bez toho by ktokoľvek mohol poslať vášmu serveru falošné „platba úspešná“. - Použite surové telo požiadavky. Kontrola podpisu zlyhá, ak framework telo najprv spracuje alebo zmení.
- Rýchlo vráťte odpoveď 2xx, potom robte pomalšiu prácu. Časové limity sa počítajú ako zlyhania.
- Ošetrite duplikáty. Stripe môže doručiť tú istú udalosť viackrát. Zaznamenajte ID spracovaných udalostí alebo urobte plnenie bezpečné pri opakovanom spustení.
- Nepredpokladajte poradie. Stripe negarantuje, že udalosti prídu v poradí, v akom sa stali.
- Počítajte s opakovaním. V živom režime Stripe opakuje neúspešné doručenia až tri dni, takže krátky výpadok neprinesie stratu platieb — ale vaše spracovanie musí zvládnuť oneskorené udalosti.
Webhooky potrebujú verejnú adresu HTTPS, takže zvyčajne fungujú až vtedy, keď je vaša aplikácia publikovaná (CLI Stripe dokáže preposielať udalosti na lokálny počítač pre vývojárov).
Prompt, ktorý pokrýva celý postup
Pridaj jednorazový nákup cez Stripe Checkout pre „balíček Pro“ (ID ceny v STRIPE_PRICE_ID). Vytvor Checkout Session na serveri pomocou STRIPE_SECRET_KEY zo secrets a do relácie zahrň ID prihláseného používateľa. Pridaj koncový bod POST /api/stripe/webhook, ktorý overí podpis Stripe pomocou STRIPE_WEBHOOK_SECRET z surového tela požiadavky, spracuje checkout.session.completed a označí toho používateľa ako majiteľa balíčka Pro. Zabezpeč, aby bolo bezpečné, ak tá istá udalosť príde dvakrát. Stránky úspechu a zrušenia. Tajný kľúč nikdy nevystavuj prehliadaču.
Pre predplatné pridaj: „Použi režim predplatného s STRIPE_PRICE_ID. Spracuj invoice.paid, invoice.payment_failed, customer.subscription.updated a customer.subscription.deleted. Pridaj tlačidlo Spravovať fakturáciu, ktoré otvorí zákaznícky portál Stripe.“
Testovací režim
Stripe má oddelené sandbox (testovacie) a živé prostredie s oddelenými kľúčmi. Testovacie kľúče začínajú na pk_test_, sk_test_ alebo rk_test_; živé kľúče začínajú na pk_live_, sk_live_ alebo rk_live_. Testovacie transakcie nepohybujú peniaze.
Užitočné testovacie karty z testovacej dokumentácie Stripe (ľubovoľný budúci dátum expirácie, ľubovoľné trojmiestne CVC):
| Číslo karty | Výsledok |
|---|---|
4242 4242 4242 4242 | Platba je úspešná |
4000 0000 0000 0002 | Karta je zamietnutá |
4000 0000 0000 3220 | Vyžaduje overenie 3D Secure, potom uspeje |
Otestujte aspoň:
- Úspešná platba odomkne správnu vec pre správneho používateľa
- Zamietnutá karta zobrazí jasnú správu a nič neodomkne
- Zatvorenie karty prehliadača hneď po zaplatení stále vedie k prístupu (to dokazuje, že funguje webhook, nie len stránka úspechu)
- Zrušenie na stránke Stripe vráti používateľa do vašej aplikácie bez akéhokoľvek účtovania
- Pri predplatnom: zrušte v zákazníckom portáli a overte, že prístup skončí v správny čas
Spustenie ostrej prevádzky
- Aktivujte svoj účet Stripe s údajmi o firme a banke.
- Vložte živé kľúče do tajomstiev vašej aplikácie. Stripe odporúča obmedzené kľúče s iba tými oprávneniami, ktoré integrácia potrebuje, namiesto neobmedzeného tajného kľúča.
- Vytvorte živý koncový bod webhooku smerujúci na vašu publikovanú aplikáciu. Má vlastné podpisové tajomstvo, odlišné od testovacieho — aktualizujte ho.
- Znovu vytvorte produkty a ceny v živom režime; ID z testovacieho režimu tam neexistujú.
- Urobte jeden malý skutočný nákup a vráťte ho.
Každý kľúč držte v tajomstvách projektu, nikdy v kóde ani v chate. Náš bezpečnostný kontrolný zoznam podrobnejšie rieši kľúče a overovanie webhookov.
Dane, vrátenie peňazí a papierovanie
Platby prinášajú povinnosti, ktoré kód nevyrieši. Toto nie je daňové poradenstvo; poraďte sa s účtovníkom.
- Daň z predaja, DPH a GST. Podľa toho, kde ste vy a vaši zákazníci, sa môžete musieť registrovať, účtovať daň a podávať priznania. Stripe Tax dokáže vypočítať a vybrať daň pri pokladni, sledovať, kde váš predaj môže vytvárať povinnosť, a pomôcť s registráciami a podávaním — ale zodpovednosť zostáva na vás. Alternatívou sú poskytovatelia typu merchant of record, ktorí prevezmú viac z tejto agendy.
- Vrátenia a spory. Pred spustením rozhodnite o politike vrátenia peňazí a zverejnite ju na webe. Spory (chargebacky) sa stávajú; uchovávajte záznamy o tom, čo sa kúpilo a doručilo.
- Účtenky a faktúry. Stripe dokáže posielať účtenky e-mailom; firmy môžu potrebovať riadne faktúry.
- Poplatky. Každý poskytovateľ účtuje poplatok za transakciu. Skontrolujte aktuálnu stránku cien poskytovateľa, namiesto spoliehania sa na čísla v článkoch.
Ktoré nastavenie sa hodí k vašej aplikácii
- Dary alebo pár produktov: Payment Links. Pozrite si ako vytvoriť web pre dary neziskovej organizácie.
- Obchod s košíkom: Checkout s položkami a webhookom. Pozrite si ako vytvoriť online obchod.
- SaaS alebo členstvá: Checkout v režime predplatného, webhooky a zákaznícky portál. Pozrite si ako vytvoriť SaaS MVP a ako nastaviť cenu SaaS produktu.
- Tržisko, ktoré vypláca predajcom: iné, prísnejšie nastavenie (Stripe Connect alebo podobné). Naplánujte ho samostatne.
Pridanie platieb v Mythex
Platby v aplikáciách, ktoré stavate na Mythex, používajú váš vlastný účet Stripe a kľúče; pre vašu aplikáciu nie je k dispozícii jedno kliknutie „Pripojiť Stripe“. Obvyklý postup:
- Získajte testovacie kľúče Stripe.
- Pridajte
STRIPE_SECRET_KEY(a neskôr podpisové tajomstvo webhooku) do tajomstiev projektu — cez/secrets, nastavenia projektu alebo kartu tajomstiev, ktorú agent zobrazí, keď kľúč potrebuje. - Požiadajte agenta o Checkout pomocou promptu podobného vyššie uvedenému.
- Otestujte v náhľade s testovacími kartami. Publikujte skôr, než zaregistrujete webhook, lebo potrebuje vašu verejnú URL.
- Po prepnutí na živé kľúče publikujte znova, aby ich živá aplikácia prevzala.
Pozrite si Prijímanie platieb cez Stripe a Spracovanie webhookov v backende v dokumentácii.
Otázky
Aký je najjednoduchší spôsob, ako v aplikácii prijímať platby?
Stripe Payment Link nepotrebuje kód: vytvoríte ho v Stripe Dashboarde a odkážete naň z aplikácie. Ak vaša aplikácia musí vedieť, kto zaplatil, a automaticky niečo odomknúť, použite namiesto toho Stripe Checkout s webhookom.
Potrebujem webhook, aby som mohol prijímať platby?
Ak musí vaša aplikácia na platbu reagovať — odomknúť účet, označiť objednávku ako zaplatenú, spracovať obnovenie predplatného — tak áno. Dokumentácia Stripe hovorí, že sa nemôžete spoliehať iba na stránku úspechu, lebo zákazník môže zaplatiť a na ňu sa nikdy nedostať. Webhooky sú potrebné aj pre predplatné.
Ako testovať platby bez skutočných peňazí?
Použite testovacie API kľúče (sandbox) od Stripe a jeho testovacie čísla kariet, napríklad 4242 4242 4242 4242 s ľubovoľným budúcim dátumom expirácie a ľubovoľným trojmiestnym CVC. Testovacie transakcie nepohybujú skutočné peniaze.
Rieši Stripe za mňa daň z predaja a DPH?
Stripe Tax dokáže vypočítať a vybrať daň pri pokladni a sledovať, kde by ste sa mohli musieť registrovať, ale zodpovednosť za vaše daňové povinnosti zostáva na vás. Poraďte sa s účtovníkom pre vašu situáciu.