Stripe-аар захиалга нэмэх хэрхэн вэ: төлөвлөгөө, туршилтын хугацаа, webhook, амжилтгүй төлбөр
Stripe-аар захиалга нэмэхийн тулд Stripe Dashboard дээр давтагдах үнэтэй бүтээгдэхүүн үүсгэж, хэрэглэгчдийг серверээсээ захиалгын горимын Stripe Checkout руу явуулж, төлбөр амжилттай болох, амжилтгүй болох, өөрчлөгдөх, дуусах бүрийг webhook таны аппд мэдэгдэх ёстой. Хандалтыг амжилтын хуудсан дээр бус, захиалгын статусаас үндэслэн хадгалж, олгоорой. Мөн хэрэглэгчид картаа солих, төлөвлөгөөгөө сольж, цуцлах боломжтой байхын тулд Stripe-ийн хостлогдсон хэрэглэгчийн порталыг нээх Биллингээ удирдах товчлуур нэм — эдгээр дэлгэцийг та өөрөө бүтээх шаардлагагүй.
Энэ гарын авлага аппдаа төлбөр нэмэх хэрхэн вэ хуудсанд суурилсан, тэнд нэг удаагийн Checkout, тестийн горим, бодит горимд шилжих зүйлсийг авч үзсэн. Энд давтагдах биллингийн онцлогт төвлөрнө. Stripe-ийн мэдээлэл нь 2026 оны 9-р сарын байдлаар Stripe-ийн баримтаас авсан.
Захиалга нэг удаагийн төлбөрөөс яагаад хүнд вэ
Нэг удаагийн төлбөр таныг аппд байх үед болдог. Захиалга таныг орсны дараа ч үргэлжилдэг: сар бүрийн сунгалт, хугацаа дуусах карт, цикл дундах дээшлүүлэлт, хугацааны эцэст үр дагавар үзүүлэх цуцлалт. Таны апп эдгээрийг зөвхөн webhook-ээр мэдэж авдаг. Захиалгын ихэнх алдаа нь эхний төлбөрийг бүх түүх гэж үзнэ гэсэн ойлголтоос үүдэлтэй.
Таны сонголтууд
| Арга | Таны бүтээх зүйл | Хамгийн тохиромжтой |
|---|---|---|
| Давтагдах үнэтэй Payment Link | Зөвхөн линк | Эрэлтийг туршихад; хандалтыг гараар удирдахад |
| Checkout (захиалгын горим) + хэрэглэгчийн портал | Серверийн маршрут, webhook, биллингийн товчлуур | Ихэнх SaaS апп болон гишүүнчлэл |
| Захиалгын API + өөрийн төлбөрийн маягт | Илүү их: төлбөрийн UI, баталгаажуулалт, дахин оролт | Ер бусын биллингийн урсгалтай апп |
| Борлуулагч бүртгэгч үйлчилгээ | Checkout-тэй төстэй | Борлуулалтын татварыг үйлчилгээ авахыг хүсдэг борлуулагчид |
Ихэнх апп-ын хувьд Checkout ба портал нь зөв сонголт. Татвар санаа зовоодог бол Stripe vs Paddle vs Lemon Squeezy-г харьцуулаарай.
Эхлээд Stripe дээрх үнээ төлөвлө
Stripe-д бүтээгдэхүүн бол таны зардаг зүйл ("Pro төлөвлөгөө"), үнэ бол тэрийг хэрхэн төлбөр авахыг ("сард $20", "жилд $200") хэлнэ. Нэг бүтээгдэхүүнд хэд хэдэн үнэ байж болно. Шийд:
- Ямар түвшин санал болгох, мөн түвшин бүр аппд юуг нээхийг
- Сар, жил, эсвэл хоёуланг нь
- Туршилтын хугацаа санал болгох эсэх, урьдчилан карт шаардах эсэх
Бүтээгдэхүүн, үнийг тестийн горимд үүсгээд, үнийн ID-г хадгал; аппд тэдгээрийг лавлана. Үнээ шийдээгүй бол SaaS бүтээгдэхүүний үнэ хэрхэн тогтоох болон freemium ба үнэгүй туршилт уншаарай.
Таны заавал зохицуулах захиалгын амьдралын мөчлөг
Stripe-ийн захиалгын тойм жагсаалт захиалга ямар статустай байж болохыг харуулдаг. Хандалтын хувьд хамгийн чухал нь:
| Статус | Юу гэсэн үг | Хандалт өгөх үү? |
|---|---|---|
trialing | Туршилтын хугацаанд байна | Тийм |
active | Сайн байдалд байна | Тийм |
incomplete | Эхний төлбөр дуусаагүй; Stripe хэрэглэгчид 23 цаг өгдөг | Үгүй |
incomplete_expired | Эхний төлбөр хэзээ ч амжилттай болоогүй | Үгүй |
past_due | Сүүлийн төлбөр амжилтгүй болсон эсвэл оролдогдоогүй; дахин оролт болж магадгүй | Таны сонголт; олон апп богино хугацааны хүлээлт өгдөг |
unpaid | Дахин оролт дууссан, нэхэмжлэх нээлттэй үлдсэн, цаашид оролдлого үгүй | Үгүй; Stripe-ийн баримт хандалтыг хасахыг зөвлөдөг |
canceled | Дууссан; дахин эхлүүлэх боломжгүй | Үгүй |
paused | Туршилтын хугацаа төлбөрийн аргагүйгээр дууссан бөгөөд зогсоохоор тохируулсан | Үгүй |
Статусыг хэрэглэгч эсвэл дансны бичлэгтээ хадгалж, хандалтаа түүн дээр суурилуул. Холбогдох webhook ирэх бүрт шинэчил.
Боловсруулах webhook үйл явдлууд
| Үйл явдал | Таны апп юу хийх вэ |
|---|---|
checkout.session.completed | Шинэ Stripe харилцагч болон захиалгын ID-г хэрэглэгчтэйгээ холбох |
invoice.paid | Захиалгыг идэвхтэй болгож, шинэ хугацааны дуусах огноог бүртгэх |
invoice.payment_failed | Хэрэглэгчид картаа амжилтгүй болсныг мэдэгдэж, портал руу холбох |
invoice.payment_action_required | Картын баталгаажуулалтыг хийхийг хэрэглэгчээс хүсэх |
customer.subscription.updated | Төлөвлөгөө, статус, товлогдсон цуцлалтыг шинэчлэх |
customer.subscription.deleted | Төлбөртэй хандалтыг хасах |
customer.subscription.trial_will_end | Туршилт дуусахаас өмнө хэрэглэгчид сануулах; Stripe үүнийг гурван өдрийн өмнө илгээдэг |
Stripe-ийн webhook баримтын боловсруулагчийн дүрмүүд хэвээр хүчинтэй: гарын үсгийг түүхий биеэр шалга, хурдан 2xx хариул, давхардсан болон дараалалгүй үйл явдлыг боловсруул, дахин оролтод бэлд. Webhook гэж юу вэ гарын авлага ойлголтыг тайлбарлана, харин төлбөрийн гарын авлага дүрмүүдийг дэлгэрэнгүй жагсаасан.
Алхам алхмаар
- Тестийн горимд бүтээгдэхүүн, үнэ үүсгэ Stripe дээр.
- Нууц мэдээлэл нэм: нууц түлхүүр, үнийн ID-ууд, дараа нь webhook-ийн гарын үсгийн нууц. Хэзээ ч фронтэнд бүү тавь.
- Үнийн хуудас: төлөвлөгөө бүрийн товчлуур таны серверийг дуудаж, нэвтэрсэн хэрэглэгчид зориулж захиалгын горимын Checkout Session үүсгэнэ. Төлбөрийг бүртгэлтэй тааруулахын тулд хэрэглэгчийн ID-гаа хавсаргаарай.
- Webhook endpoint: гарын үсгийг шалгаж, дээрх үйл явдлуудыг боловсруулж, хэрэглэгч бүрийн захиалгын бичлэгийг шинэчил.
- Онцлогуудыг хамгаалах хадгалагдсан статус, төлөвлөгөөн дээр, хамгаалагдсан үйлдэл бүрт серверт шалгаж, зөвхөн товчлуур нуух биш.
- Хэрэглэгчийн портал: Stripe Dashboard-д тохируулна (аль төлөвлөгөө рүү шилжиж болох, цуцалж болох эсэх), дараа нь Биллингээ удирдах товчлуур нэмж, серверт портал session үүсгээд тийш шилжүүлнэ.
- Амжилтгүй төлбөр: Stripe-ийн биллингийн тохиргоонд дахин оролтын зан байдал, эцсийн оролтын дараа юу болохыг сонго.
past_dueүед аппд баннер харуул. - Бүх мөчлөгийг туршаад, дараа нь нийтэлж, бодит webhook бүртгэ.
Таны AI builder-т өгөх запрууд
Stripe-аар захиалгын биллинг нэм. Төлөвлөгөө: Starter (үнийн ID STRIPE_PRICE_STARTER-д) болон Pro (STRIPE_PRICE_PRO). Үнийн хуудас нь серверт STRIPE_SECRET_KEY ашиглан захиалгын горимын Checkout Session үүсгэж, нэвтэрсэн хэрэглэгчийн ID-г хавсаргана. Stripe харилцагчийн ID, захиалгын ID, төлөвлөгөө, статусыг хэрэглэгч дээр хадгал. Нууц түлхүүрийг хэзээ ч браузерт бүү гарга.
POST /api/stripe/webhook нэм. STRIPE_WEBHOOK_SECRET-ээр гарын үсгийг түүхий хүсэлтийн биеэр шалга. checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted болон customer.subscription.trial_will_end-ийг боловсруул. Давхардсан үйл явдлыг үл тоох тул боловсруулсан үйл явдлын ID-г бүртгэ. Хэрэглэгчийн статусыг захиалгын объектоос шинэчил, ирсэн үйл явдлын дарааллаас биш.
Pro функцүүдийг серверт зөвхөн статус active эсвэл trialing, төлөвлөгөө нь Pro байвал нээ. Статус past_due үед "Төлбөр амжилтгүй, картаа шинэчилнэ үү" гэсэн баннер харуул. Энэ хэрэглэгчийн Stripe хэрэглэгчийн порталыг нээх Биллингээ удирдах товчлуур нэм.
Шинэчлэх, бууруулах, пропорци
Хэрэглэгч төлөвлөгөө сольж байхад Stripe-ийн баримтын дагуу өөрчлөлт ихэвчлэн пропорци үүсгэдэг: шинэ үнийг одоогийн биллингийн хугацааны үлдсэн хэсэгт хэрэглэнэ. Пропорцийг урьдчилан харж эсвэл унтраах боломжтой. Төлөвлөгөөнүүд ижил интервалтай бол биллингийн огноо хэвээр үлдэнэ; сараас жилд шилжихэд биллингийн огноо шилжсэн өдөр болно. Хэрэглэгчдэд порталд төлөвлөгөө солихыг зөвшөөрөх нь энэ логикийг бичих шаардлагыг арилгана, гэвч аль шилжилтийг зөвшөөрөхийг порталын тохиргоонд шийд.
Тестийн жагсаалт
Stripe-ийн тестийн горим болон тестийн карт ашиглан бүх статусыг туулаарай:
- Шинэ захиалга зөв хэрэглэгчид зөв төлөвлөгөөг олгодог
- Төлсний дараа табыг шууд хаахад ч хандалт гардаг (энэ нь webhook ажиллаж байгааг баталдаг)
- Бүртгүүлэх үед татгалзсан карт юу ч олгодоггүй
- Амжилтгүй болсон сунгалт нь хэрэглэгчийг past_due руу оруулж, баннер харуулдаг
- Порталд картаа шинэчлэхэд active статус сэргэдэг
- Дээшлүүлэх ба бууруулах нь онцлогуудыг зөв өөрчилдөг
- Хугацааны эцэст цуцлахад хандалт төгсгөлийн огноо хүртэл үлдэж, дараа нь хасагддаг
- Туршилтын хэрэглэгч хандалт авч, сануулга хүлээн авч, зөв төлбөртэй болж эсвэл хандалтаа алддаг
- Ижил webhook үйл явдлыг хоёр удаа илгээхэд юу ч өөрчлөгддөггүй
Stripe-ийн тестийн цаг (test clocks) нь хугацаа өнгөрөхийг дуурайлган, сар хүлээлгүйгээр сунгалтыг туршиж болно. Яаж ашиглахыг Stripe-ийн одоогийн тестийн баримтаас шалгаарай.
Түгээмэл алдаанууд
- Амжилтын хуудсан дээр хандалт олгох. Хэрэглэгч төлөөд тэр хуудсанд хүрэхгүй байж магадгүй. Webhook ашигла.
- Зөвхөн эхний төлбөрийг боловсруулах. Сунгалт, амжилтгүй болсон, цуцлалтууд хожим үйл явдал болж ирдэг.
- Төлөвлөгөөний статусыг зөвхөн фронтэнд шалгах. Хэн ч таны API-г шууд дуудаж чадна.
- Санамсаргүйгээр нэг хэрэглэгч олон захиалгатай болох. Шинэ Checkout Session үүсгэхийн өмнө одоо байгаа захиалгыг шалга, эсвэл одоогийн харилцагчдыг порталд чиглүүл.
- Эхний амжилтгүй сунгалтад хандалтыг хасах. Карт боринхон шалтгаанаар бүтэлгүйтдэг. Богино хугацааны хүлээлт, тодорхой баннер харилцагчдыг хадгална.
- Бодит горимын webhook-ийг мартах. Тестийн болон бодит endpoint-ууд өөр гарын үсгийн нууцтай.
- Татвар, буцаан олголтыг үл тоох. Нэвтрүүлэхээс өмнө буцаан олголтын бодлогоо шийдэж, нягтлангаасаа татварын үүргээ шалгуулаарай.
Захиалга Mythex дээр
Mythex дээр бүтээсэн аппууд таны өөрийн Stripe данс, түлхүүрийг ашигладаг; аппдаа Stripe-ийг нэг товчоор холбох боломжгүй. Тестийн түлхүүр болон үнийн ID-гаа төслийн нууц мэдээлэл болгон нэм, дээрх шиг запр ашиглан, Preview дээр Stripe-ийн тестийн картаар туршаарай. Webhook нь аппын нийтийн URL-ийг шаарддаг тул Stripe-д endpoint бүртгэхээсээ өмнө нийтэлж, бодит түлхүүрт шилжсэний дараа бодит аппд авахын тулд дахин нийтэл. Харна уу: Stripe-аар төлбөр хүлээн авах болон backend дээрх webhook-ийг боловсруулах. Харин илүү өргөн хүрээнд, SaaS MVP хэрхэн бүтээх вэ нь биллингийн эргэн тойронд юу бүтээхийг авч үздэг.
Асуултууд
Stripe-аар захиалга нэмэх хамгийн энгийн арга юу вэ?
Stripe Dashboard дээр давтагдах үнэтэй бүтээгдэхүүн үүсгэж, хэрэглэгчдийг захиалгын горимын Stripe Checkout руу явуулж, захиалгын үйл явдлыг webhook-ээр боловсруулж, Биллингээ удирдах товчлуурыг Stripe-ийн хостлогдсон хэрэглэгчийн портал руу холбоно. Ингэснээр картын маягт, төлөвлөгөө солих дэлгэцийг өөрөө бүтээх шаардлагагүй.
Захиалгын хувьд ямар Stripe webhook үйл явдал хэрэгтэй вэ?
Доод тал нь: шинэ захиалгыг хэрэглэгчтэй холбох checkout.session.completed, төлбөр бүрийг баталгаажуулах invoice.paid, сунгалт амжилтгүй болсон тухай анхааруулах invoice.payment_failed, мөн төлөвлөгөөний өөрчлөлт болон цуцлалтыг хянах customer.subscription.updated ба customer.subscription.deleted.
Захиалгын төлбөр амжилтгүй болбол юу болдог вэ?
Stripe-ийн 2026 оны 9-р сарын байдлаарх баримтын дагуу захиалга ихэвчлэн past_due болдог, Stripe таны тохиргоонд үндэслэн төлбөрийг дахин оролдож чадна. Эцсийн оролдлогын дараа таны Dashboard-ийн тохиргоо нь цуцлагдах, unpaid болох эсвэл past_due хэвээр үлдэхийг шийднэ.
Карт асуухгүйгээр үнэгүй туршилтын хугацаа санал болгож болох уу?
Тийм. Stripe үнэгүй туршилтыг дэмждэг, мөн баримтдаа тохируулсан үед төлбөрийн арга байхгүйгээр дуусах туршилтын хугацаанд paused статусыг тайлбарласан. Урьдчилан карт авах нь ихэвчлэн бүртгэл цөөн, гэхдээ төлбөртэй хэрэглэгч олон байхыг илэрхийлдэг; бүтээгдэхүүндээ аль нь тохирохыг туршаарай.