Kā pievienot maksājumus lietotnei: norēķini, abonementi un webhooks
Vienkāršākais veids, kā pievienot maksājumus lietotnei, ir Stripe: izmantojiet maksājumu saiti, ja vajag tikai pogu "Pirkt" un pasūtījumus varat apstrādāt ar roku; Stripe Checkout, ja lietotnei jāzina, kas samaksāja, un jāreaģē automātiski; un Checkout abonementa režīmā kopā ar Stripe klientu portālu regulārām norēķinām. Visos gadījumos, izņemot vienkāršāko, jums vajag arī webhook — servera galapunktu, ko Stripe izsauc, kad maksājums ir izdevies — un visu vajadzētu pārbaudīt ar Stripe testa atslēgām un testa kartēm, pirms pārslēdzaties uz tiešraides atslēgām.
Šajā rokasgrāmatā izskaidrota katra iespēja, webhook daļa, ko vairums apmācību izlaiž, un tas, ko pārbaudīt, pirms pieņemat īstu naudu. Stripe informācija ir no paša Stripe dokumentācijas uz 2026. gada septembri.
Kāpēc vispār izmantot maksājumu sniedzēju
Nekad neievācietiet kartes numurus savās veidlapās. Neapstrādātu kartes datu apstrāde ietver jūs PCI DSS (kartes nozares drošības standarts) darbības jomā un ir nopietns risks. Maksājumu sniedzējs, piemēram, Stripe, mitina maksājuma veidlapu, glabā karti, apstrādā bankas autentifikāciju un paziņo jūsu lietotnei rezultātu. Jūsu lietotne redz tikai "klients X samaksāja par Y".
Šajā rokasgrāmatā izmantots Stripe, jo tas ir plaši lietots, labi dokumentēts un atbalstīts lielākajā daļā MI lietotņu veidotāju. Ir arī citi sniedzēji, un daži darbojas kā "merchant of record" un uzņemas preču un pakalpojumu nodokļa apstrādi jūsu vietā; ja jūs uztrauc nodokļu atbilstība, šis modelis ir vērts salīdzināt.
Trīs veidi, kā pieņemt maksājumus ar Stripe
| Iespēja | Nepieciešamais kods | Vai lietotne zina, kas samaksāja? | Labākais izmantojums |
|---|---|---|---|
| Maksājumu saites | Nav | Tikai, ja pievienojat webhook | Dažu fiksētu produktu pārdošana, ziedojumi, pieprasījuma pārbaude |
| Checkout (vienreizējs) | Servera kods sesijas izveidei | Jā, caur webhook | Veikali, apmaksātas lejupielādes, vienreizēji pirkumi |
| Checkout (abonements) | Servera kods un webhook apstrāde | Jā, caur webhook | SaaS, dalības, viss atkārtotais |
Maksājumu saites
Maksājumu saite ir Stripe mitināta maksājumu lapa, ko izveidojat Stripe panelī bez koda. Jūs saņemat URL, ko var novietot aiz pogas savā lietotnē, nosūtīt e-pastā vai parādīt kā QR kodu. Stripe dokumentācijā teikts, ka maksājumu saites var pārdot produktu, abonementu vai pieņemt ziedojumu, un jūs varat ļaut klientiem izvēlēties, ko maksāt, vai ierobežot pirkumu skaitu.
Viens ierobežojums: jūsu lietotne automātiski nezina, ka konkrēts pieteicies lietotājs ir samaksājis. Ziedojumu lapai vai mazam veikalam, kur pasūtījumus izpildāt ar roku pēc Stripe e-pasta paziņojumiem, tas ir labi. Lietotnei "samaksā, lai atbloķētu Pro funkcijas" tas nederēs.
Stripe Checkout
Checkout ir maksājumu lapa, ko jūsu serveris izveido pēc pieprasījuma konkrētam pirkumam. Serveris pasaka Stripe, kas tiek pirkts (un pēc izvēles, kurš klients pērk), Stripe atgriež URL, un jūs nosūtāt klientu tur. Stripe dokumentācija apraksta, ka tas atbalsta gan vienreizējus, gan abonementu maksājumus, kā pilnīgi Stripe mitinātu lapu, lapu, kas iegulta jūsu vietnē, vai iegulto veidlapu.
Plūsma:
-
Klients jūsu lietotnē nospiež Pirkt.
-
Jūsu serveris izveido Checkout sesiju, izmantojot jūsu slepeno atslēgu, ietverot ID, kas to saista ar jūsu lietotāju vai pasūtījumu.
-
Klients tiek novirzīts uz Stripe un samaksā.
-
Stripe novirza viņu atpakaļ uz jūsu veiksmīgās apmaksas lapu.
-
Stripe nosūta notikumu
checkout.session.completeduz jūsu webhook, un jūsu serveris atzīmē pasūtījumu kā apmaksātu vai atver piekļuvi. -
solis jāveic serverī, jo tas izmanto jūsu slepeno atslēgu. Tas ir galvenais iemesls, kāpēc Checkout vajag backend.
Abonementi
Abonementi izmanto Checkout abonementa režīmā ar atkārtotu cenu, ko iestatāt Stripe. Pirmā maksājuma plūsma ir kā iepriekš aprakstītā. Pēc tam atjaunošana, neizdevušās kartes, jauninājumi un atcelšanas notiek laika gaitā — bieži tad, kad klienta nav jūsu lietotnē — tāpēc jūsu lietotne par tiem uzzina tikai caur webhooks.
Lai ļautu klientiem pārvaldīt savu abonementu, Stripe piedāvā mitinātu klientu portālu. Saskaņā ar Stripe dokumentāciju klienti tur var atjaunināt maksājuma metodes un norēķinu datus, mainīt vai atcelt abonementus un skatīt un lejupielādēt rēķinus. To konfigurējat Stripe panelī un pievienojat pogu "Pārvaldīt norēķinus", kas klientu nosūta uz portālu. Tas ietaupa jums šo ekrānu veidošanu pašiem.
Webhooks: daļa, ko nevar izlaist
Webhook ir HTTP pieprasījums, ko Stripe nosūta uz jūsu serveri, kad kaut kas notiek. (Vispārējo ideju skatiet kas ir webhook.) Stripe izpildes rokasgrāmata ir skaidra: uz veiksmīgas apmaksas lapu vien pasūtījumu izpildei paļauties nevar, jo klients var samaksāt un pēc tam zaudēt savienojumu, pirms šī lapa ielādējas. Abonementiem un atliktām maksājumu metodēm webhooks ir obligāti.
Notikumi, kas jāapstrādā
| Notikums | Ko tas nozīmē | Ko dara jūsu lietotne |
|---|---|---|
checkout.session.completed | Checkout pabeigts | Atzīmē pasūtījumu kā apmaksātu vai sāk piekļuvi |
checkout.session.async_payment_succeeded | Atlikta metode (piemēram, bankas debets) vēlāk tika apstiprināta | Izpilda tagad |
checkout.session.async_payment_failed | Šī atliktā apmaksa neizdevās | Pastāstiet klientam; neizpildiet |
invoice.paid | Abonementa maksājums izdevās, ieskaitot atjaunošanu | Pagarina piekļuvi |
invoice.payment_failed | Atjaunošana neizdevās | Brīdiniet lietotāju; Stripe var mēģināt vēlreiz |
customer.subscription.updated | Plāns mainījies vai atcelšana ieplānota | Atjauno lietotāja plānu |
customer.subscription.deleted | Abonements beidzies | Noņem apmaksāto piekļuvi |
Pareizas webhook apstrādātāja noteikumi
Tie nāk tieši no Stripe webhook dokumentācijas, un MI ģenerētie apstrādātāji dažkārt kādu no tiem izlaiž:
- Pārbaudiet parakstu. Katrs notikums ietver
Stripe-Signaturegalveni. Jūsu apstrādātājs to pārbauda, izmantojot galapunkta parakstīšanas noslēpumu (tas sākas arwhsec_). Bez tā ikviens varētu nosūtīt jūsu serverim viltotu "maksājums izdevās". - Izmantojiet neapstrādāto pieprasījuma pamattekstu. Parakstu pārbaude neizdodas, ja jūsu ietvars pirms tam parsē vai maina pamattekstu.
- Ātri atgriezieties ar 2xx, un tad veiciet lēnāku darbu. Noildzes skaitās kā kļūmes.
- Apstrādājiet dublikātus. Stripe var piegādāt to pašu notikumu vairāk nekā vienreiz. Ierakstiet apstrādāto notikumu ID vai padariet izpildi drošu, ja tā tiek palaista divreiz.
- Nepieņemiet kārtību. Stripe negarantē, ka notikumi ierodas tādā secībā, kādā notika.
- Gaidiet atkārtojumus. Tiešraides režīmā Stripe neizdevušās piegādes mēģina atkārtot līdz trim dienām, tāpēc īsa dīkstāve neizšķiež maksājumus — bet jūsu apstrādātājam jātiek galā ar novēlotiem notikumiem.
Webhooks vajag publisku HTTPS adresi, tāpēc parasti tie darbojas tikai pēc tam, kad lietotne ir publicēta (Stripe CLI var pārsūtīt notikumus uz lokālu datoru izstrādātājiem).
Uzvedne, kas aptver visu plūsmu
Pievieno vienreizēju pirkumu ar Stripe Checkout "Pro pack" (cenas ID STRIPE_PRICE_ID). Izveido Checkout sesiju serverī, izmantojot STRIPE_SECRET_KEY no noslēpumiem, un sesijā iekļauj pieteiktā lietotāja ID. Pievieno POST /api/stripe/webhook galapunktu, kas pārbauda Stripe parakstu ar STRIPE_WEBHOOK_SECRET, izmantojot neapstrādāto pieprasījuma pamattekstu, apstrādā checkout.session.completed un atzīmē šo lietotāju kā tādu, kam ir Pro pack. Padariet to drošu, ja tas pats notikums ierodas divreiz. Veiksmīgas un atcelšanas lapas. Nekad neatklājiet slepeno atslēgu pārlūkā.
Abonementiem pievienojiet: "Izmanto abonementa režīmu ar STRIPE_PRICE_ID. Apstrādā invoice.paid, invoice.payment_failed, customer.subscription.updated un customer.subscription.deleted. Pievieno pogu Pārvaldīt norēķinus, kas atver Stripe klientu portālu."
Testa režīms
Stripe ir atsevišķas smilškastes (testa) un tiešraides vides ar atsevišķām atslēgām. Testa atslēgas sākas ar pk_test_, sk_test_ vai rk_test_; tiešraides atslēgas sākas ar pk_live_, sk_live_ vai rk_live_. Testa darījumi nepārvieto naudu.
Noderīgas testa kartes no Stripe testēšanas dokumentācijas (jebkurš nākotnes derīguma datums, jebkurš trīs ciparu CVC):
| Kartes numurs | Rezultāts |
|---|---|
4242 4242 4242 4242 | Maksājums izdodas |
4000 0000 0000 0002 | Karte tiek noraidīta |
4000 0000 0000 3220 | Prasa 3D Secure autentifikāciju, tad izdodas |
Pārbaudiet vismaz:
- Veiksmīgs maksājums atver pareizo lietu pareizajam lietotājam
- Noraidīta karte parāda skaidru ziņojumu un neatver neko
- Ja aizverat pārlūka cilni uzreiz pēc maksāšanas, piekļuve joprojām parādās (tas pierāda, ka darbojas webhook, nevis tikai veiksmīgās apmaksas lapa)
- Atcelšana Stripe lapā atgriež lietotāju jūsu lietotnē bez jebkādas samaksas
- Abonementiem: atceliet klientu portālā un pārbaudiet, ka piekļuve beidzas, kad tam jābeidzas
Pārslēgšana uz tiešraidi
- Aktivizējiet savu Stripe kontu ar uzņēmuma un bankas datiem.
- Ievietojiet tiešraides atslēgas lietotnes noslēpumos. Stripe iesaka ierobežotas atslēgas tikai ar atļaujām, kas vajadzīgas jūsu integrācijai, nevis neierobežotu slepeno atslēgu.
- Izveidojiet tiešraides webhook galapunktu, kas norāda uz jūsu publicēto lietotni. Tam ir savs parakstīšanas noslēpums, kas atšķiras no testa, — atjaunojiet to.
- Atkārtoti izveidojiet produktus un cenas tiešraides režīmā; testa režīma ID tur neeksistē.
- Veiciet vienu reālu mazu pirkumu un atmaksājiet to.
Visas atslēgas glabājiet projekta noslēpumos, nekad kodā vai čatā. Mūsu drošības kontrolsaraksts sīkāk aplūko atslēgas un webhook pārbaudi.
Nodokļi, atmaksas un dokumenti
Maksājumi rada saistības, ko kods neatrisina. Tā nav nodokļu konsultācija; pārbaudiet ar grāmatvedi.
- Preču un pakalpojumu nodoklis, PVN un GST. Atkarībā no tā, kur atrodaties jūs un jūsu klienti, jums var būt jāreģistrējas, jāiekasē un jāiesniedz nodoklis. Stripe Tax var aprēķināt un iekasēt nodokli norēķinā, uzraudzīt, kur jūsu pārdošana var radīt saistības, un palīdzēt ar reģistrācijām un iesniegumiem — bet atbildība paliek jums. Alternatīva ir merchant-of-record sniedzēji, kas uzņemas lielāku daļu no tā.
- Atmaksas un strīdi. Pirms palaišanas nosakiet atmaksas politiku un ievietojiet to savā vietnē. Strīdi (chargebacks) notiek; glabājiet ierakstus par to, kas nopirkts un piegādāts.
- Kvītis un rēķini. Stripe var nosūtīt kvītis e-pastā; uzņēmumiem var būt vajadzīgi pareizi rēķini.
- Maksas. Katrs sniedzējs iekasē maksu par darījumu. Pārbaudiet sniedzēja aktuālo cenu lapu, nevis paļaujieties uz rakstos minētām summām.
Kāda iestatīšana atbilst jūsu lietotnei
- Ziedojumi vai dažas preces: maksājumu saites. Skatiet kā izveidot bezpeļņas ziedojumu vietni.
- Veikals ar grozu: Checkout ar preču pozīcijām un webhook. Skatiet kā izveidot tiešsaistes veikalu.
- SaaS vai dalības: Checkout abonementa režīmā, webhooks un klientu portāls. Skatiet kā izveidot SaaS MVP un kā noteikt SaaS produkta cenu.
- Tirgus, kas izmaksā naudu pārdevējiem: cits, stingrāk regulēts risinājums (Stripe Connect vai līdzīgs). Plānojiet to atsevišķi.
Maksājumu pievienošana Mythex
Maksājumi lietotnēs, ko veidojat Mythex, izmanto jūsu pašu Stripe kontu un atslēgas; lietotnei nav vienas pogas "Savienot Stripe". Parastā plūsma:
- Iegūstiet Stripe testa atslēgas.
- Pievienojiet
STRIPE_SECRET_KEY(un vēlāk webhook noslēpumu) projekta noslēpumiem — caur/secrets, projekta iestatījumiem vai noslēpumu kartīti, ko aģents parāda, kad tam vajag atslēgu. - Lūdziet aģentam Checkout, izmantojot uzvedni kā iepriekš.
- Pārbaudiet priekšskatījumā ar testa kartēm. Publicējiet pirms webhook reģistrēšanas, jo tam vajag jūsu publisko URL.
- Pārslēdzoties uz tiešraides atslēgām, publicējiet vēlreiz, lai tiešraides lietotne tās paņemtu.
Skatiet Pieņemt maksājumus ar Stripe un Apstrādāt webhooks savā backend dokumentācijā.
Jautājumi
Kāds ir vienkāršākais veids, kā lietotnē pieņemt maksājumus?
Stripe maksājumu saitei nav vajadzīgs kods: to izveidojat Stripe panelī un saitējat uz to no savas lietotnes. Ja lietotnei jāzina, kas samaksāja, un automātiski jāatver piekļuve, izmantojiet Stripe Checkout ar webhook.
Vai maksājumu pieņemšanai man vajag webhook?
Ja lietotnei jāreaģē uz maksājumu — jāatver konts, jāatzīmē pasūtījums kā apmaksāts, jāapstrādā atjaunošana —, tad jā. Stripe dokumentācija norāda, ka uz veiksmīgas apmaksas lapu vien paļauties nevar, jo klients var samaksāt un nekad nenonākt līdz tai. Webhooks ir vajadzīgi arī abonementiem.
Kā pārbaudīt maksājumus bez īstas naudas?
Izmantojiet Stripe smilškastes (testa) API atslēgas un tā testa kartes numurus, piemēram, 4242 4242 4242 4242 ar jebkuru nākotnes derīguma datumu un jebkuru trīs ciparu CVC. Testa darījumi nepārvieto īstu naudu.
Vai Stripe man kārto preču un pakalpojumu nodokli vai PVN?
Stripe Tax var aprēķināt un iekasēt nodokli norēķinā un uzraudzīt, kur jums varētu būt jāreģistrējas, taču atbildība par nodokļu saistībām paliek jums. Pārbaudiet ar grāmatvedi savā situācijā.