Kaip pridėti mokėjimus į savo programėlę: apmokėjimas, prenumeratos ir webhook
Paprasčiausias būdas pridėti mokėjimus į programėlę yra Stripe: naudokite Payment Link, jei jums tereikia mygtuko „Pirkti“ ir užsakymus galite tvarkyti rankiniu būdu; Stripe Checkout, jei programėlei reikia žinoti, kas sumokėjo, ir reaguoti automatiškai; o Checkout prenumeratos režimu plius Stripe kliento portalą periodiniams mokėjimams. Visais atvejais, išskyrus paprasčiausią, jums reikia ir webhook – serverio galinio taško, kurį Stripe iškviečia, kai mokėjimas pavyksta – o viską reikėtų išbandyti su Stripe bandomaisiais raktais ir bandomosiomis kortelėmis, prieš perjungiant į tikrus raktus.
Šis vadovas paaiškina kiekvieną variantą, webhook dalį, kurią dauguma vadovėlių praleidžia, ir ką patikrinti prieš priimant tikrus pinigus. Stripe duomenys paimti iš paties Stripe dokumentacijos nuo 2026 m. rugsėjo.
Kodėl apskritai naudoti mokėjimų teikėją
Niekada nerinkite kortelių numerių savo formose. Žali kortelių duomenys priverčia laikytis PCI DSS (kortelių pramonės saugumo standarto) ir yra rimta atsakomybė. Mokėjimų teikėjas, pavyzdžiui Stripe, talpina mokėjimo formą, saugo kortelę, tvarko banko autentifikavimą ir praneša jūsų programėlei rezultatą. Jūsų programėlė visada mato tik „klientas X sumokėjo už Y“.
Šis vadovas naudoja Stripe, nes jis plačiai naudojamas, gerai dokumentuotas ir palaikomas daugumos DI programėlių kūrimo įrankių. Yra ir kitų teikėjų, o kai kurie veikia kaip „prekybos įrašų tvarkytojas“ ir patys tvarko pardavimo mokesčius; jei mokesčių atitiktis jus rūpina, verta palyginti tokį modelį.
Trys būdai priimti mokėjimus su Stripe
| Variantas | Reikia kodo | Ar programėlė žino, kas sumokėjo? | Geriausiai tinka |
|---|---|---|---|
| Payment Links | Nereikia | Tik jei pridedate webhook | Keletą fiksuotų produktų, aukas, paklausos testavimą |
| Checkout (vienkartinis) | Serverio kodas sesijai sukurti | Taip, per webhook | Parduotuves, mokamus atsisiuntimus, vienkartinius pirkimus |
| Checkout (prenumerata) | Serverio kodas plius webhook apdorojimas | Taip, per webhook | SaaS, narystes, bet ką periodiško |
Payment Links
Payment Link – tai Stripe talpinamas mokėjimo puslapis, kurį sukuriate Stripe valdymo skydelyje be kodo. Gausite URL, kurį galite įdėti už mygtuko savo programėlėje, pasidalinti el. laiške ar parodyti kaip QR kodą. Stripe dokumentacijoje sakoma, kad Payment Links gali parduoti produktą, prenumeratą arba priimti auką, o klientai gali pasirinkti, ką mokėti, arba pirkimų skaičių galite apriboti.
Gaudynė: jūsų programėlė automatiškai nežino, kad konkretus prisijungęs vartotojas sumokėjo. Aukų puslapiui ar mažai parduotuvei, kurioje užsakymus vykdote rankiniu būdu pagal Stripe el. laiško pranešimus, tai tinka. Mokėjimui „sumokėk, kad atrakintum Pro funkcijas“ – ne.
Stripe Checkout
Checkout – tai mokėjimo puslapis, kurį jūsų serveris sukuria pagal poreikį konkrečiam pirkimui. Serveris pasako Stripe, kas perkama (ir pasirinktinai, kuris klientas perka), Stripe grąžina URL, o jūs nukreipiate klientą ten. Stripe dokumentacijoje sakoma, kad jis palaiko ir vienkartinius, ir prenumeratos mokėjimus, kaip visą Stripe talpinamą puslapį, įterptą į jūsų svetainę puslapį ar įterptą formą.
Eiga:
- Klientas paspaudžia Pirkti jūsų programėlėje.
- Jūsų serveris sukuria Checkout sesiją naudodamas jūsų slaptą raktą, įtraukdamas ID, kuris ją susieja su jūsų vartotoju ar užsakymu.
- Klientas nukreipiamas į Stripe ir sumoka.
- Stripe nukreipia jį atgal į sėkmės puslapį.
- Stripe išsiunčia įvykį
checkout.session.completedį jūsų webhook, o serveris pažymi užsakymą apmokėtu arba atrakina prieigą.
2 žingsnis turi vykti serveryje, nes naudoja jūsų slaptą raktą. Tai pagrindinė priežastis, kodėl Checkout reikalauja backend.
Prenumeratos
Prenumeratos naudoja Checkout prenumeratos režimu su periodine kaina, kurią nustatote Stripe. Pirmas mokėjimas veikia taip, kaip aprašyta aukščiau. Vėliau atnaujinimai, nepavykę kortelių mokėjimai, planų keitimai ir atšaukimai vyksta laikui bėgant – dažnai tada, kai kliento jūsų programėlėje visai nėra – todėl jūsų programėlė apie juos sužino tik per webhook.
Kad klientai patys valdytų savo prenumeratą, Stripe siūlo talpinamą kliento portalą. Pagal Stripe dokumentaciją, klientai ten gali atnaujinti mokėjimo būdus ir sąskaitos duomenis, keisti ar atšaukti prenumeratas, peržiūrėti ir atsisiųsti sąskaitas. Jį konfigūruojate Stripe valdymo skydelyje ir pridedate mygtuką „Tvarkyti sąskaitą“, kuris nukreipia klientą ten. Taip nereikia patiems kurti tų ekranų.
Webhook: dalis, kurios nepraleisite
Webhook – tai HTTP užklausa, kurią Stripe siunčia jūsų serveriui, kai kas nors įvyksta. (Bendrą idėją žr. kas yra webhook.) Stripe vykdymo vadove aiškiai nurodyta: užsakymų vykdymui negalite pasikliauti vien sėkmės puslapiu, nes klientas gali sumokėti ir prarasti ryšį, kol puslapis įsikraus. Prenumeratoms ir atidėtiems mokėjimo būdams webhook yra privalomi.
Įvykiai, kuriuos verta apdoroti
| Įvykis | Ką reiškia | Ką daro jūsų programėlė |
|---|---|---|
checkout.session.completed | Checkout baigtas | Pažymi užsakymą apmokėtu arba suteikia prieigą |
checkout.session.async_payment_succeeded | Atidėtas būdas (pavyzdžiui banko debetas) vėliau įvykdytas | Įvykdo dabar |
checkout.session.async_payment_failed | Tas atidėtas mokėjimas nepavyko | Praneša klientui; neįvykdo |
invoice.paid | Prenumeratos mokėjimas pavyko, įskaitant atnaujinimus | Pratęsia prieigą |
invoice.payment_failed | Atnaujinimas nepavyko | Įspėja vartotoją; Stripe gali bandyti dar kartą |
customer.subscription.updated | Planas pakeistas arba numatytas atšaukimas | Atnaujina vartotojo planą |
customer.subscription.deleted | Prenumerata baigėsi | Pašalina mokamą prieigą |
Taisyklės teisingam webhook apdorotojui
Šios taisyklės paimtos tiesiai iš Stripe webhook dokumentacijos, ir DI sugeneruoti apdorotojai kartais kurį nors iš jų praleidžia:
- Patikrinkite parašą. Kiekviename įvykyje yra antraštė
Stripe-Signature. Jūsų apdorotojas ją patikrina naudodamas galinio taško pasirašymo paslaptį (ji prasidedawhsec_). Be to, bet kas galėtų atsiųsti jūsų serveriui netikrą „mokėjimas pavyko“. - Naudokite neapdorotą užklausos turinį. Parašo patikra nepavyksta, jei jūsų sistema turinį pirmiausia išanalizuoja ar pakeičia.
- Greitai grąžinkite 2xx atsakymą, o lėtesnį darbą atlikite vėliau. Laiko viršijimas skaičiuojamas kaip klaida.
- Tvarkykite dublikatus. Stripe gali pristatyti tą patį įvykį daugiau nei vieną kartą. Įrašykite apdorotų įvykių ID arba padarykite vykdymą saugų paleidžiant du kartus.
- Nesitikėkite tvarkos. Stripe negarantuoja, kad įvykiai ateis tokia tvarka, kokia įvyko.
- Tikėkitės pakartojimų. Tiesioginiame režime Stripe kartoja nepavykusius pristatymus iki trijų dienų, todėl trumpas gedimas neprarys mokėjimų – bet jūsų apdorotojas turi tvarkyti vėluojančius įvykius.
Webhook reikia viešo HTTPS adreso, todėl paprastai jie veikia tik tada, kai programėlė publikuota (Stripe CLI kūrėjams gali persiųsti įvykius į vietinį kompiuterį).
Raginimas, apimantis visą eigą
Pridėk vienkartinį pirkimą su Stripe Checkout, skirtą „Pro pack“ paketui (kainos ID STRIPE_PRICE_ID). Sukurk Checkout sesiją serveryje naudodamas STRIPE_SECRET_KEY iš paslapčių ir įtrauk prisijungusio vartotojo ID į sesiją. Pridėk POST /api/stripe/webhook galinį tašką, kuris patikrina Stripe parašą su STRIPE_WEBHOOK_SECRET naudodamas neapdorotą užklausos turinį, apdoroja checkout.session.completed ir pažymi tą vartotoją kaip turintį Pro pack. Padaryk, kad būtų saugu, jei tas pats įvykis ateina du kartus. Sėkmės ir atšaukimo puslapiai. Niekada neatskleisk slapto rakto naršyklei.
Prenumeratoms pridėk: „Naudok prenumeratos režimą su STRIPE_PRICE_ID. Apdorok invoice.paid, invoice.payment_failed, customer.subscription.updated ir customer.subscription.deleted. Pridėk mygtuką Tvarkyti sąskaitą, kuris atidaro Stripe kliento portalą.“
Bandomasis režimas
Stripe turi atskirus smėlio dėžės (bandomuosius) ir tikrus aplinkas su atskirais raktais. Bandomieji raktai prasideda pk_test_, sk_test_ ar rk_test_; tikrieji raktai prasideda pk_live_, sk_live_ ar rk_live_. Bandomosios operacijos nejuda pinigų.
Naudingos bandomosios kortelės iš Stripe testavimo dokumentacijos (bet kokia būsimo galiojimo data, bet koks trijų skaitmenų CVC):
| Kortelės numeris | Rezultatas |
|---|---|
4242 4242 4242 4242 | Mokėjimas pavyksta |
4000 0000 0000 0002 | Kortelė atmesta |
4000 0000 0000 3220 | Reikia 3D Secure autentifikavimo, tada pavyksta |
Išbandykite bent:
- Sėkmingas mokėjimas atrakina tinkamą dalyką tinkamam vartotojui
- Atmesta kortelė parodo aiškų pranešimą ir neatrakina nieko
- Uždarius naršyklės skirtuką iškart po mokėjimo prieiga vis tiek suteikiama (tai įrodo, kad veikia webhook, o ne tik sėkmės puslapis)
- Atšaukus Stripe puslapyje vartotojas grįžta į jūsų programėlę ir nieko nemokama
- Prenumeratoms: atšaukite kliento portale ir patikrinkite, kad prieiga baigiasi, kai turi
Paleidimas tikriems mokėjimams
- Aktyvuokite savo Stripe paskyrą su verslo ir banko duomenimis.
- Įdėkite tikrus raktus į savo programėlės paslaptis. Stripe rekomenduoja ribotus raktus tik su leidimais, reikalingais jūsų integracijai, o ne neribotą slaptą raktą.
- Sukurkite tikrą webhook galinį tašką, nukreiptą į publikuotą programėlę. Jis turi savo pasirašymo paslaptį, kitokią nei bandomoji – ją atnaujinkite.
- Iš naujo sukurkite produktus ir kainas tikrame režime; bandomųjų režimų ID ten neegzistuoja.
- Atlikite vieną tikrą nedidelį pirkimą ir jį grąžinkite.
Visus raktus laikykite projekto paslaptyse, niekada kode ar pokalbyje. Mūsų saugumo kontrolinis sąrašas DI kuriamoms programėlėms plačiau aprašo raktus ir webhook parašų patikrą.
Mokesčiai, grąžinimai ir dokumentai
Mokėjimai atneša įsipareigojimus, kurių kodas neišsprendžia. Tai nėra mokesčių patarimas; pasitarkite su buhalteriu.
- Pardavimo mokestis, PVM ir GST. Priklausomai nuo to, kur esate jūs ir jūsų klientai, gali reikėti registruotis, skaičiuoti ir deklaruoti mokesčius. Stripe Tax gali apskaičiuoti ir surinkti mokestį atsiskaitymo metu, stebėti, kur jūsų pardavimai gali sukelti prievolę, ir padėti su registracija bei deklaravimu – bet atsakomybė lieka jums. Prekybos įrašų tvarkytojai yra alternatyva, kuri perima daugiau šių pareigų.
- Grąžinimai ir ginčai. Prieš paleidimą nustatykite grąžinimo politiką ir įdėkite ją į svetainę. Ginčai (chargebacks) pasitaiko; saugokite įrašus apie tai, kas nupirkta ir pristatyta.
- Kvitai ir sąskaitos. Stripe gali siųsti kvitus el. paštu; verslui gali reikėti tinkamų sąskaitų faktūrų.
- Mokesčiai. Kiekvienas teikėjas imasi mokesčio už operaciją. Tikrinkite dabartinį teikėjo kainų puslapį, o ne pasikliaukite skaičiais straipsniuose.
Kuris nustatymas tinka jūsų programėlei
- Aukos ar keletas produktų: Payment Links. Žr. kaip sukurti labdaros aukojimo svetainę.
- Parduotuvė su krepšeliu: Checkout su prekių eilutėmis ir webhook. Žr. kaip sukurti internetinę parduotuvę.
- SaaS ar narystės: Checkout prenumeratos režimu, webhook ir kliento portalas. Žr. kaip sukurti SaaS MVP ir kaip nustatyti SaaS produkto kainą.
- Rinka, mokanti pardavėjams: kitokia, labiau reglamentuota schema (Stripe Connect ar panašiai). Planuokite ją atskirai.
Mokėjimų pridėjimas Mythex
Mokėjimai programėlėse, kurias kuriate Mythex, naudoja jūsų pačių Stripe paskyrą ir raktus; programėlei nėra vieno paspaudimo „Prijungti Stripe“. Įprasta eiga:
- Gaukite Stripe bandomuosius raktus.
- Pridėkite
STRIPE_SECRET_KEY(ir vėliau webhook paslaptį) į projekto paslaptis – per/secrets, projekto nustatymus arba paslapčių kortelę, kurią agentas parodo, kai reikia rakto. - Paprašykite agento Checkout naudodami raginimą, panašų į aukščiau pateiktą.
- Testuokite Peržiūroje su bandomosiomis kortelėmis. Publikuokite prieš registruodami webhook, nes jam reikia jūsų viešo URL.
- Perjungę į tikrus raktus, publikuokite dar kartą, kad tikroji programėlė juos pasiimtų.
Žr. Priimkite mokėjimus su Stripe ir Tvarkykite webhook savo backend dokumentacijoje.
Klausimai
Koks yra lengviausias būdas priimti mokėjimus programėlėje?
Stripe Payment Link nereikia kodo: jį sukuriate Stripe valdymo skydelyje ir pateikiate nuorodą iš savo programėlės. Jei programėlei reikia žinoti, kas sumokėjo, ir automatiškai atrakinti kažką, vietoj to naudokite Stripe Checkout su webhook.
Ar mokėjimams priimti man reikia webhook?
Jei programėlė turi reaguoti į mokėjimą – atrakinti paskyrą, pažymėti užsakymą apmokėtu, apdoroti atnaujinimą – taip. Stripe dokumentacija sako, kad vien sėkmės puslapio nepakanka, nes klientas gali sumokėti ir į jį niekada nepatekti. Webhook taip pat privalomi prenumeratoms.
Kaip išbandyti mokėjimus be tikrų pinigų?
Naudokite Stripe smėlio dėžės (bandomuosius) API raktus ir bandomuosius kortelių numerius, pavyzdžiui 4242 4242 4242 4242 su bet kuria būsimo galiojimo data ir bet kokiu trijų skaitmenų CVC. Bandomosios operacijos nejuda tikrų pinigų.
Ar Stripe man tvarko pardavimo mokestį ir PVM?
Stripe Tax gali apskaičiuoti ir surinkti mokestį atsiskaitymo metu bei stebėti, kur galbūt reikia registruotis, bet už savo mokesčių prievoles atsakote patys. Pasitarkite su buhalteriu dėl savo situacijos.