Аппдаа төлбөр нэмэх хэрхэн вэ: checkout, захиалга, webhook
Аппдаа төлбөр нэмэх хамгийн энгийн арга бол Stripe: зөвхөн "Худалдан авах" товчлуур хэрэгтэй бөгөөд захиалгыг гараар боловсруулж чадвал Payment Link, харин аппд хэн төлснийг мэдэж автоматаар хариу үйлдэл хийх хэрэгтэй бол Stripe Checkout, давтагдах төлбөрийн хувьд захиалгын горимын Checkout ба Stripe-ийн хэрэглэгчийн портал. Энэ бүх тохиолдолд, хамгийн энгийнээс бусад бүх тохиолдолд, танд webhook хэрэгтэй — төлбөр амжилттай болоход Stripe дууддаг серверийн endpoint — мөн бодит түлхүүр рүү шилжихээс өмнө бүх зүйлээ Stripe-ийн тест түлхүүр, тест картаар туршиж үзэх хэрэгтэй.
Энэ гарын авлага сонголт бүрийг, ихэнх заавар алгасдаг webhook хэсгийг, мөн бодит мөнгө авахаас өмнө шалгах зүйлсийг тайлбарлана. Stripe-ийн мэдээлэл нь 2026 оны 9-р сарын байдлаар Stripe-ийн өөрийн баримтаас авсан.
Яагаад төлбөрийн үйлчилгээ үзүүлэгч хэрэгтэй вэ
Өөрийн маягтад картын дугаар хэзээ ч цуглуулж болохгүй. Картын өгөгдөл гар аргаар боловсруулах нь PCI DSS (картын салбарын аюулгүй байдлын стандарт)-ийн хүрээнд оруулж, ноцтой эрсдэл үүсгэдэг. Stripe шиг төлбөрийн үйлчилгээ үзүүлэгч төлбөрийн маягтыг хостолж, картыг хадгалж, банкны баталгаажуулалтыг шийдэж, үр дүнг аппд хэлдэг. Таны апп зөвхөн "хэрэглэгч X нь Y-ийн төлөө төлсөн" гэдгийг л харна.
Энэ гарын авлага Stripe-ийг ашигладаг, учир нь энэ нь өргөн хэрэглэгддэг, сайн баримтжуулсан бөгөөд ихэнх AI app builder-ууд дэмждэг. Бусад үйлчилгээ үзүүлэгч бас байдаг, зарим нь "борлуулагч бүртгэгч" (merchant of record) хэлбэрээр борлуулалтын татварыг танд хариуцдаг; татварын хэрэгцээ тань санаа зовоодог бол энэ загварыг харьцуулах хэрэгтэй.
Stripe-аар төлбөр авах гурван арга
| Сонголт | Код хэрэгтэй эсэх | Апп нь хэн төлснийг мэдэх үү | Хамгийн тохиромжтой |
|---|---|---|---|
| Payment Links | Үгүй | Зөвхөн webhook нэмсэн бол | Тогтмол бүтээгдэхүүн бага зарах, хандив, эрэлтийг туршихад |
| Checkout (нэг удаагийн) | Session үүсгэх серверийн код | Тийм, webhook-оор | Дэлгүүр, төлбөртэй татаж авалт, нэг удаагийн худалдан авалт |
| Checkout (захиалгын горим) | Серверийн код ба webhook боловсруулалт | Тийм, webhook-оор | SaaS, гишүүнчлэл, давтагдах бүх зүйл |
Payment Links
Payment Link бол Stripe Dashboard дээр кодгүйгээр үүсгэдэг, Stripe-д хостлогдсон төлбөрийн хуудас юм. Таны аппын товчлуурын ард байрлуулах, имэйлээр хуваалцах эсвэл QR код болгон харуулах URL авна. Stripe-ийн баримтын дагуу Payment Links бүтээгдэхүүн, захиалга зарах эсвэл хандив авах боломжтой, мөн хэрэглэгч юу төлөхөө сонгох эсвэл худалдан авалтын тоог хязгаарлаж болно.
Барих зүйл нь: таны апп тодорхой нэвтэрсэн хэрэглэгч төлснийг автоматаар мэдэхгүй. Хандивын хуудас эсвэл Stripe-ийн имэйл мэдэгдлээс гараар захиалга биелүүлдэг жижиг дэлгүүрт энэ зүгээр. Харин "Pro функцийг төлбөрөөр нээх" гэдэгт энэ тохирохгүй.
Stripe Checkout
Checkout бол таны серверийн тодорхой худалдан авалтад шаардлагатай үед үүсгэдэг төлбөрийн хуудас. Сервер Stripe-д юу худалдаж авахыг хэлнэ (мөн хэн худалдаж авч байгааг, сонголтоор), Stripe URL буцаана, та хэрэглэгчийг тэр тийш явуулна. Stripe-ийн баримтын дагуу энэ нь нэг удаагийн болон захиалгын төлбөрийг дэмжиж, Stripe-д хостлогдсон бүтэн хуудас, сайтдаа суулгасан хуудас эсвэл суулгасан маягтаар ажиллана.
Урсгал:
- Хэрэглэгч аппдаа Худалдан авах товчлуур дарна.
- Таны сервер нууц түлхүүрээ ашиглан Checkout Session үүсгэж, үүнийг хэрэглэгч эсвэл захиалгатай холбох ID-тайгаар оруулна.
- Хэрэглэгч Stripe рүү шилжиж төлнө.
- Stripe хэрэглэгчийг таны амжилтын хуудас руу буцаана.
- Stripe таны webhook руу
checkout.session.completedүйл явдал илгээж, таны сервер захиалгыг төлсөн гэж тэмдэглэх эсвэл хандалтыг нээнэ.
Алхам 2 серверт заавал болох ёстой, учир нь энэ нь таны нууц түлхүүрийг ашигладаг. Checkout-д арын систем хэрэгтэй байх гол шалтгаан нь энэ юм.
Захиалгууд
Захиалга нь Stripe-д тохируулсан давтагдах үнэтэй Checkout-ийн захиалгын горимыг ашигладаг. Эхний төлбөр дээрх урсгалтай адил ажиллана. Үүний дараа сунгалт, амжилтгүй карт, дээшлүүлэлт, цуцлалт цаг хугацааны явцад явагдана — ихэвчлэн хэрэглэгч аппд огт байхгүй үед — тиймээс таны апп тэдгээрийг зөвхөн webhook-ээр мэдэнэ.
Хэрэглэгч өөрийн захиалгыг удирдахыг хүсвэл Stripe-д хостлогдсон хэрэглэгчийн портал байдаг. Stripe-ийн баримтын дагуу хэрэглэгч энд төлбөрийн картаа шинэчлэх, биллингийн мэдээллээ засах, захиалгаа өөрчлөх эсвэл цуцлах, нэхэмжлэх харах, татаж авах боломжтой. Үүнийг Stripe Dashboard-д тохируулж, "Биллингээ удирдах" товчлуур нэмснээр хэрэглэгчийг тийш явуулна. Энэ нь эдгээр дэлгэцийг өөрөө бүтээх шаардлагыг арилгана.
Webhook: алгасаж болохгүй хэсэг
Webhook бол Stripe таны серверт ямар нэг зүйл болоход илгээдэг HTTP хүсэлт юм. (Ерөнхий ойлголтын хувьд webhook гэж юу вэ хуудсыг үзнэ үү.) Stripe-ийн захиалга биелүүлэх гарын авлага тодорхой заасан: зөвхөн амжилтын хуудсанд найдаж захиалга биелүүлж болохгүй, учир нь хэрэглэгч төлөөд тэр хуудас ачаалагдахаас өмнө холболтоо алдаж магадгүй. Захиалга болон хойшлогдсон төлбөрийн аргуудын хувьд webhook заавал шаардлагатай.
Боловсруулах ёстой үйл явдлууд
| Үйл явдал | Юу гэсэн үг вэ | Таны апп юу хийх вэ |
|---|---|---|
checkout.session.completed | Checkout дууссан | Захиалгыг төлсөн гэж тэмдэглэх эсвэл хандалт эхлүүлэх |
checkout.session.async_payment_succeeded | Хойшлогдсон арга (жишээ нь банкны дебит) хожим амжилттай болсон | Одоо биелүүлэх |
checkout.session.async_payment_failed | Тэр хойшлогдсон төлбөр амжилтгүй болсон | Хэрэглэгчид мэдэгдэх; биелүүлэхгүй |
invoice.paid | Захиалгын төлбөр амжилттай болсон, сунгалтыг оруулаад | Хандалтыг сунгах |
invoice.payment_failed | Сунгалт амжилтгүй болсон | Хэрэглэгчид анхааруулах; Stripe дахин оролдож магадгүй |
customer.subscription.updated | Төлөвлөгөө өөрчлөгдсөн, эсвэл цуцлалт товлогдсон | Хэрэглэгчийн төлөвлөгөөг шинэчлэх |
customer.subscription.deleted | Захиалга дууссан | Төлбөртэй хандалтыг хасах |
Зөв webhook боловсруулагчийн дүрмүүд
Эдгээр нь Stripe-ийн webhook баримтаас шууд авсан бөгөөд AI-ээр бүтээсэн боловсруулагчид заримдаа алддаг:
- Гарын үсгийг шалга. Үйл явдал бүр
Stripe-Signatureтолгойтой байдаг. Таны боловсруулагч үүнийг endpoint-ийн гарын үсгийн нууцаар (whsec_-ээр эхэлдэг) шалгана. Энэгүй бол хэн ч таны серверт хуурамч "төлбөр амжилттай" мессеж илгээж чадна. - Түүхий хүсэлтийн биеийг ашигла. Хэрэв фреймворк нь эхлээд биеийг задалж эсвэл өөрчилвөл гарын үсгийн шалгалт амжилтгүй болно.
- Хурдан 2xx хариу буцаа, дараа нь удаан ажлаа хийгээрэй. Хугацаа дуусах нь амжилтгүй гэж тооцогдоно.
- Давхардлыг боловсруул. Stripe нэг үйл явдлыг нэгээс олон удаа хүргэж магадгүй. Боловсруулсан үйл явдлын ID-г бүртгэ, эсвэл биелүүлэлтийг хоёр удаа ажиллуулахад аюулгүй болго.
- Дарааллыг хүлээхгүй. Stripe үйл явдлууд болсон дарааллаар ирнэ гэдгийг баталдаггүй.
- Дахин оролдлогыг хүлээ. Бодит горимд Stripe амжилтгүй хүргэлтийг гурван хүртэл өдрийн турш дахин оролддог, тиймээс богино зогсолт төлбөрийг алдуулахгүй — гэхдээ таны боловсруулагч хожимдсон үйл явдлыг даах ёстой.
Webhook нь нийтийн HTTPS хаяг шаарддаг, тиймээс ихэвчлэн аппаа нийтэлсний дараа л ажилладаг (Stripe-ийн CLI нь хөгжүүлэгчийн компьютер дээр үйл явдлыг дамжуулах боломжтой).
Бүх урсгалыг хамарсан запр
Stripe Checkout-оор "Pro pack"-д нэг удаагийн худалдан авалт нэм (үнийн ID STRIPE_PRICE_ID-д). Checkout Session-ийг серверт, нууц мэдээллээс STRIPE_SECRET_KEY-ээр үүсгэж, session-д нэвтэрсэн хэрэглэгчийн ID-г оруул. POST /api/stripe/webhook endpoint нэм, STRIPE_WEBHOOK_SECRET-ээр Stripe гарын үсгийг түүхий хүсэлтийн биеэр шалгаж, checkout.session.completed-ийг боловсруулж, тэр хэрэглэгчид Pro pack олгосон гэж тэмдэглэ. Ижил үйл явдал хоёр удаа ирвэл аюулгүй байлга. Амжилт болон цуцлах хуудас нэм. Нууц түлхүүрийг браузерт хэзээ ч бүү гарга.
Захиалгын хувьд нэмэх: "STRIPE_PRICE_ID-тай захиалгын горимыг ашигла. invoice.paid, invoice.payment_failed, customer.subscription.updated болон customer.subscription.deleted-ийг боловсруул. Биллингээ удирдах товчлуур нэм, Stripe-ийн хэрэглэгчийн порталыг нээнэ."
Тестийн горим
Stripe-д тусдаа sandbox (тест) болон бодит (live) орчин байдаг, түлхүүр нь тус тусдаа. Тестийн түлхүүр pk_test_, sk_test_ эсвэл rk_test_-ээр эхэлдэг; бодит түлхүүр pk_live_, sk_live_ эсвэл rk_live_-ээр эхэлдэг. Тестийн гүйлгээ мөнгө хөдөлгөдөггүй.
Stripe-ийн тестийн баримтаас авсан хэрэгтэй тестийн картууд (ирээдүйн дуусах хугацаа, ямар ч гурван оронтой CVC):
| Картын дугаар | Үр дүн |
|---|---|
4242 4242 4242 4242 | Төлбөр амжилттай |
4000 0000 0000 0002 | Карт татгалзсан |
4000 0000 0000 3220 | 3D Secure баталгаажуулалт шаардана, дараа нь амжилттай |
Дор хаяж эдгээрийг туршаарай:
- Амжилттай төлбөр зөв хэрэглэгчид зөв зүйлийг нээдэг
- Татгалзсан карт тодорхой мессеж харуулж, юу ч нээдэггүй
- Төлсний дараа хөтчийн табыг шууд хаахад ч хандалт гардаг (энэ нь амжилтын хуудсаар биш webhook ажиллаж байгааг баталдаг)
- Stripe-ийн хуудсан дээр цуцлахад хэрэглэгч аппдаа буцаж, юу ч төлөгдөхгүй
- Захиалгын хувьд: хэрэглэгчийн порталд цуцалж, хандалт ёстой цагт дуусахыг баталгаажуул
Бодит горимд шилжих
- Stripe дансаа идэвхжүүл бизнес болон банкны мэдээлэлтэйгээр.
- Бодит түлхүүрийг аппын нууц мэдээлэлд сольж тавь. Stripe нь интеграцид хэрэгтэй эрхүүдтэй хязгаарлагдсан түлхүүрийг, хязгааргүй нууц түлхүүрээс илүү зөвлөдөг.
- Бодит webhook endpoint үүсгэ нийтлэгдсэн аппдаа чиглүүлж. Энэ нь тестийн гарын үсгийн нууцаас тусдаа өөрийн нууцтай — шинэчил.
- Бүтээгдэхүүн ба үнийг бодит горимд дахин үүсгэ; тестийн горимын ID тэнд байхгүй.
- Нэг жинхэнэ бага худалдан авалт хийж, буцаан олго.
Бүх түлхүүрээ аппын нууц мэдээллээр хадгал, кодонд эсвэл чатад бүү тавь. Манай AI-ээр бүтээсэн аппын аюулгүй байдлын жагсаалт түлхүүр болон webhook баталгаажуулалтыг илүү дэлгэрэнгүй авч үзнэ.
Татвар, буцаан олголт, бичиг баримт
Төлбөр авахад код шийдэхгүй үүрэг үүсдэг. Энэ бол татварын зөвлөгөө биш; нягтлангаасаа асуугаарай.
- Борлуулалтын татвар, НӨАТ ба GST. Таны болон харилцагчдын байрлалаас хамаарч бүртгүүлэх, татвар тооцож төлөх шаардлагатай байж магадгүй. Stripe Tax нь checkout дээр татвар тооцоолж, цуглуулж, борлуулалт татварын үүрэг үүсгэж болох газрыг хянаж, бүртгүүлэх болон тайлагнахад туслаж чадна — гэвч хариуцлага танд үлдэнэ. Борлуулагч бүртгэгч үйлчилгээ үүний ихэнхийг өөртөө авдаг өөр сонголт юм.
- Буцаан олголт ба маргаан. Нэвтрүүлэхээс өмнө буцаан олголтын бодлогоо шийдэж, сайтдаа тавь. Маргаан (chargeback) гарч л байдаг; юу худалдаж авч, хүргэснийг бүртгэж үлд.
- Баримт ба нэхэмжлэх. Stripe баримтыг имэйлээр илгээж чадна; бизнесүүдэд зохих нэхэмжлэх хэрэгтэй байж магадгүй.
- Шимтгэл. Үйлчилгээ үзүүлэгч бүр гүйлгээ тутамд төлбөр авдаг. Нийтлэлийн тоонд бус үйлчилгээ үзүүлэгчийн одоогийн үнийн хуудсанд найдаарай.
Таны аппд аль тохиргоо тохирох вэ
- Хандив эсвэл цөөн бүтээгдэхүүн: Payment Links. Харна уу: хандивын вэбсайт хэрхэн бүтээх вэ.
- Сагстай дэлгүүр: барааны мөртэй Checkout ба webhook. Харна уу: онлайн дэлгүүр хэрхэн бүтээх вэ.
- SaaS эсвэл гишүүнчлэл: захиалгын горимын Checkout, webhook ба хэрэглэгчийн портал. Харна уу: SaaS MVP хэрхэн бүтээх вэ болон SaaS бүтээгдэхүүний үнэ хэрхэн тогтоох вэ.
- Борлуулагчдад төлбөр хуваарилдаг зах зээл: өөр, илүү зохицуулалттай тохиргоо (Stripe Connect эсвэл төстэй). Үүнийг тусад нь төлөвлө.
Төлбөрийг Mythex дээр нэмэх нь
Mythex дээр бүтээсэн аппдаа төлбөр нь таны өөрийн Stripe данс ба түлхүүрийг ашигладаг; аппдаа "Stripe холбох" гэсэн нэг товчлуур байхгүй. Ердийн урсгал:
- Stripe-ийн тестийн түлхүүрийг авна.
STRIPE_SECRET_KEY(болон webhook-ийн нууцыг дараа нь) төслийн нууц мэдээлэлд нэмнэ —/secrets, төслийн тохиргоо, эсвэл агент түлхүүр хэрэгтэй үед харуулдаг нууц мэдээллийн карт зэрэг замаар.- Агентаас дээрх шиг запраар Checkout хүс.
- Preview дээр тестийн картаар туршина. Webhook бүртгэхээс өмнө нийтэлнэ, учир нь энэ нь таны нийтийн URL-ийг шаарддаг.
- Бодит түлхүүрт шилжсэний дараа бодит аппд тэдгээрийг авахын тулд дахин нийтэлнэ.
Docs дээрх Stripe-аар төлбөр хүлээн авах болон backend дээрх webhook-ийг боловсруулах хэсгийг үзнэ үү.
Асуултууд
Аппд төлбөр авах хамгийн хялбар арга юу вэ?
Stripe Payment Link нь код шаардахгүй: Stripe Dashboard дээр үүсгээд аппаасаа холбоос өгнө. Харин таны апп хэн төлсөнийг мэдэж, автоматаар ямар нэг зүйлийг нээх шаардлагатай бол Stripe Checkout болон webhook ашигла.
Төлбөр авахад webhook хэрэгтэй юу?
Таны апп төлбөрт хариу үйлдэл үзүүлэх шаардлагатай бол — хэрэглэгчийн эрх нээх, захиалгыг төлсөн гэж тэмдэглэх, сунгалтыг боловсруулах — тийм. Stripe-ийн баримтад амжилттай төлөлтийн хуудсанд найдахгүй гэж заасан, учир нь хэрэглэгч төлөөд тэр хуудсанд хүрэхгүй байж болно. Захиалгын хувьд webhook заавал шаардлагатай.
Жинхэнэ мөнгөгүйгээр төлбөрийг яаж турших вэ?
Stripe-ийн sandbox (тест) API түлхүүр болон тестийн картын дугаарыг ашигла, жишээ нь 4242 4242 4242 4242, ирээдүйн дуусах хугацаа, ямар ч гурван оронтой CVC-тэй. Тестийн гүйлгээ жинхэнэ мөнгө хөдөлгөдөггүй.
Stripe миний оронд борлуулалтын татвар болон НӨАТ-ыг шийддэг үү?
Stripe Tax нь checkout дээр татвар тооцоолж, цуглуулж, бүртгүүлэх шаардлагатай газраа хянаж чадна, гэвч татварын үүрэг танд хэвээр байна. Таны нөхцөлд нягтлангаас зөвлөгөө авна уу.