Гарын авлагууд

Webhook гэж юу вэ? Апп-ууд хоорондоо хэрхэн мэдэгдэдэг вэ

Webhook бол юм болох мөчид нэг үйлчилгээ таны app-д илгээдэг автомат мессеж юм. Харилцагчийн төлбөр амжилттай болоход Stripe таны app дахь хаяг руу «төлбөр амжилттай, дэлгэрэнгүй энд байна» гэсэн webhook илгээж, таны app хариу үйлдэл үзүүлдэг — захиалгыг төлсөн гэж тэмдэглэх, баримт илгээх, акаунтыг нээх. Товчхондоо: API бол таны app нөгөө үйлчилгээнээс асуулт асуудаг; webhook бол нөгөө үйлчилгээ таны app-ийг дуудаж юм хэлдэг.

AI-аар бүтээхэд яагаад чухал вэ

Таны app төлбөр хүлээн авах, өөр хэрэгслээс маягтын илгээлт авах, эсвэл GitHub, Shopify, календарь зэрэг үйлчилгээтэй холбогдох мөчид та webhook-тэй тулгарна. Тэд ихэвчлэн юм болсныг мэдэх зөв арга боловч AI-аар бүтээсэн app-ууд хамгийн их нарийн алдаа гаргадаг газар ч мөн:

  • Endpoint ямар ч хүсэлтийг хүлээн авдаг тул хэн ч «төлбөр амжилттай» үйл явдлыг хуурамчаар илгээж болно.
  • App нь хандалтыг webhook дээр бус checkout-ийн буцах хуудсан дээр олгодог тул tab-аа эрт хаасан хүмүүс төлсөн зүйлээ хэзээ ч авдаггүй, харин амжилтын URL-ийг олсон хүмүүс үнэгүй авдаг.
  • Ижил үйл явдал хоёр удаа ирэхэд харилцагч хоёр захиалга эсвэл хоёр имэйл авдаг.

Webhook хэрхэн ажилладагийг мэдвэл эдгээр хамгаалалтыг урьдчилан хүсэх боломжтой.

Өдөр тутмын жишээ: хүргэлтийн мессеж

Багцаа ирснийг хоёр аргаар мэдэж болно. Та арван минут тутам урд хаалга руу явж шалгаж болно (энэ бол polling — таны app давтан API дуудаж «шинэ зүйл байна уу?» гэж асуудаг). Эсвэл хүргэгч хүргэснээ чамд мессежээр мэдэгдэж болно (энэ бол webhook).

Мессеж нь итгэж чадвал тодорхой илүү сайн. Хэн нэгэн «багц хүргэгдлээ» гэсэн мессеж илгээж чадвал, та үүнийг жинхэнэ хүргэгчээс ирснийг баталгаажуулах арга хэрэгтэй. Мөн мессеж ирэх үед утас тань унтраалттай байсан бол хүргэгч дараа дахин оролдохыг хүснэ. Эдгээр хоёр асуудал — баталгаажуулалт ба дахин оролдлого — webhook-ийг хэцүү болгодог гол зүйлс юм.

Webhook алхам алхмаар хэрхэн ажилладаг вэ

  1. Таны app-ийн backend дээр endpoint үүсгэнэ: POST хүсэлтийг хүлээн авдаг https://yourapp.com/webhooks/stripe гэх мэт URL.
  2. Тэр URL-ээ үйлчилгээ үзүүлэгчид бүртгүүлж, ямар үйл явдал хүсэхээ сонгоно (жишээлбэл «checkout дууссан» ба «захиалга цуцлагдсан»).
  3. Үйлчилгээ үзүүлэгч танд гарын үсгийн нууц өгнө. Үүнийг сервер дээрээ нууцлалт болгож хадгална — орчны хувьсагч ба нууцлалт-ийг үзнэ үү.
  4. Үйл явдал болно. Үйлчилгээ үзүүлэгч таны URL руу үйл явдлыг тодорхойлсон JSON биетэй HTTP хүсэлт, гарын үсгийн header-тэй хамт илгээнэ.
  5. Таны app гарын үсгийг баталгаажуулж, үйл явдлын ID-г бүртгэж, хурдан 200 амжилтын кодоор хариулаад дараа нь ажлаа хийнэ.
  6. Таны app амжилтын хариу өгөөгүй бол олон үйлчилгээ үзүүлэгч дараа дахин оролддог.

Гарын үсэг

Гарын үсэг нь хүсэлт үйлчилгээ үзүүлэгчээс ирсэн бөгөөд өөрчлөгдөөгүйг батална. Жишээлбэл Stripe нууц түлхүүрээ ашиглан хүсэлтийн биеийн болон цагийн тэмдгийн дээр SHA-256-аар HMAC (түлхүүртэй хурууны хээ гэх мэт зүйл) тооцож, Stripe-Signature header-т илгээдэг. Таны app нууцын хуулбартайгаа адил тооцоо хийдэг; үр дүн таарвал хүсэлт жинхэнэ. Цагийн тэмдэг мөн гарын үсэгтэй тул хэн нэгний бичиж аваад дараа дахин тоглуулсан хуучин хүсэлтийг татгалзаж болно — Stripe-ийн сангууд 2026 оны 9-р сарын байдлаар баримт бичгийнхээ дагуу анхдагчаар таван минутын хугацаа зөвшөөрдөг.

Нэг практик нарийн зүйл: гарын үсгийг түүхий хүсэлтийн биеэр тооцдог. Хэрэв таны framework баталгаажуулахын өмнө JSON-ийг задалж дахин форматлавал шалгалт амжилтгүй болно. Энэ бол маш түгээмэл алдаа.

Дахин оролдлого, давхардал, дараалал

Үйлчилгээ үзүүлэгч бүр өөр байдаг тул тус бүрийн баримт бичгийг шалгана уу. 2026 оны 9-р сарын байдлаар:

ҮйлдэлStripeGitHub
Автомат дахин оролдлогоТийм, жинхэнэ горимд нэмэгдэх зайтайгаар гурван хүртэл өдөрҮгүй; амжилтгүй хүргэлтийг та гараар эсвэл скриптээр дахин илгээнэ
Хариултын хугацааУдаан ажил хийхээс өмнө хурдан 2xx-ээр хариулах10 секундээс удаан хариулсан хүргэлтийг амжилтгүй гэж тооцдог

Stripe-ийн баримт бичигт үйл явдлууд тэдгээр болсон дарааллаараа ирнэ гэдгийг баталгаажуулдаггүй, мөн ижил үйл явдал заримдаа хоёроос олон удаа ирж болно гэж бичсэн тул үйл явдлын ID-г хянахыг зөвлөдөг.

Ерөнхий зарчим аливаа үйлчилгээ үзүүлэгчид хамаарна: үйл явдлууд хоцорч, хоёроос олон удаа болон дарааллаас гадуур ирж болно. Таны handler idempotent байх ёстой — ижил үйл явдлыг хоёр удаа боловсруулах нь нэг удаа боловсруулахтай адил үр дүнтэй байна.

Жишээ: төлбөртэй сургалтыг нээх

Та онлайн сургалт зардаг. Суралцагч Худалдаж авах товчийг дарж, Stripe-ийн хостлогдсон checkout хуудсаар төлж, таны сайт руу буцаагдана.

Эмзэг арга: «баярлалаа» хуудас сургалтыг нээдэг. Хэрэв суралцагч буцах үед хөтчөө хаавал тэр төлсөн боловч хандалтгүй үлдэнэ. Хэн нэгэн баярлалаа хуудасны URL-ийг таавал төлбөргүйгээр хандалт авна.

Webhook-ийн арга:

  1. Stripe төлбөрийг баталгаажуулахад /webhooks/stripe руу checkout.session.completed үйл явдал илгээнэ.
  2. Таны backend гарын үсгийг нууцаар баталгаажуулна. Амжилтгүй бол 400 хариулаад юу ч хийхгүй.
  3. Энэ үйл явдлын ID өмнө нь боловсруулагдсан эсэхийг шалгана. Тийм бол 200 хариулаад зогсоно.
  4. ID-г хадгалж, 200 хариулаад, дараа нь суралцагчид хандалт олгож, тавтай морилно уу имэйл илгээнэ.
  5. Баярлалаа хуудас зөвхөн «Төлбөр хүлээн авлаа — таны сургалт удахгүй гарч ирнэ» гэж хэлж, суралцагчийн хандалтын статусыг шалгана.

Дараа нь захиалга цуцлагдвал эсвэл карт амжилтгүй болвол бусад webhook үйл явдлууд таны app-д хандалтыг хасах эсвэл түр зогсоохыг хэлнэ. Захиалгат бүтээгдэхүүн биллингтэй хэрхэн синк хийдгийг ингэж бий болгодог — SaaS гэж юу вэ болон app-дээ төлбөр нэмэх арга-ийг үзнэ үү.

Гол нэр томъёо

  • Endpoint: webhook хүлээн авдаг таны app дахь URL.
  • Үйл явдал / payload: юу болсон, түүнийг тодорхойлсон өгөгдөл (ихэвчлэн JSON).
  • Гарын үсгийн нууц: гарын үсгийг баталгаажуулахад ашигладаг хуваалцсан нууц.
  • Idempotent: ижил үр дүнтэй нэг өгөгдлийг хоёр удаа ажиллуулахад аюулгүй.
  • Polling: webhook хүлээхийн оронд API-гаас өөрчлөлтийг давтан асуух.
  • Tunnel: хөгжүүлэлтийн үед webhook-д хүрч чадахаар лаптоп дээрээ түр нийтийн URL өгдөг хэрэгсэл.

Түгээмэл алдаа, буруу ойлголт

  • Гарын үсгийг шалгахгүй байх. Endpoint-ийн URL нь нууц биш. Баталгаажуулалт л хүсэлтийг итгэх боломжтой болгодог.
  • Хариулахын өмнө удаан ажил хийх. Хариулахын өмнө имэйл илгээх эсвэл PDF үүсгэх нь timeout үүсгэж, энэ нь дахин оролдлого, давхардлыг үүсгэдэг.
  • Яг нэг удаа, дарааллаар ирнэ гэж үзэх. Үйл явдлын ID-г бүртгэж, ирэх дарааллаар найдахгүй бай.
  • Preview URL ашиглах. Webhook-д тогтвортой нийтийн хаяг хэрэгтэй. Хувийн preview болон localhost интернетээс хүрдэггүй; нийтэлсэн URL-ээ ашигла (эсвэл туршихдаа tunnel).
  • Туршилт ба жинхэнэ нууцыг холих. Үйлчилгээ үзүүлэгчид ихэвчлэн туршилт ба жинхэнэ горимд өөр гарын үсгийн нууц өгдөг. Хоёуланг нь хадгалж, зөв нь ашигла.
  • Чухал шийдвэрт payload-д сохроор итгэх. Өндөр эрсдэлтэй үйлдлийн хувьд үйл явдлыг хүлээн авсны дараа үйлчилгээ үзүүлэгчийн API-аас хамгийн сүүлийн төлөвийг татах нь зохистой.

AI builder-тээ юу гуйх вэ

Сервер дээр POST /webhooks/stripe endpoint нэм. Түүхий хүсэлтийн бие болон STRIPE_WEBHOOK_SECRET нууцыг ашиглан Stripe-ийн гарын үсгийг баталгаажуул. Буруу гарын үсгийг 400-аар татгалз. Үйл явдал бүрийн ID-г хадгалж, өмнө боловсруулсан үйл явдлыг алга. Хурдан 200 хариулаад, дараа нь checkout.session.completed-ийг захиалгыг төлсөн гэж тэмдэглэж, баримт илгээх замаар боловсруул. Үйл явдлын төрлийг логло. Checkout-ийн амжилтын хуудсаас хандалт бүү олго.

Дараа нь туршаарай: үйлчилгээ үзүүлэгчийн dashboard-аас туршилтын үйл явдал илгээ, дахин ижил үйл явдлыг илгээ, мөн буруу гарын үсэгтэй хүсэлт илгээ. Зөвхөн эхнийх нь юу нэгэн зүйлийг өөрчлөх ёстой.

Mythex дээрх webhook

Mythex тусдаа webhook үйлчилгээ ажиллуулдаггүй; та агентаас app-ийнхаа backend-д webhook endpoint нэмэхийг хүсч, үйлчилгээ үзүүлэгчийг нийтэлсэн URL рүү чиглүүлнэ, учир нь webhook-д нийтийн хаяг хэрэгтэй. Гарын үсгийн нууц нь таны төслийн нууцлалтад орно, мөн жинхэнэ app дээр үүнийг өөрчилбөл дахин нийтэлнэ. Webhook боловсруулах docs-ийн жор нь стартер prompt-тай, мөн төлбөр хүлээн авдаг app-д дэлгүүрийн загварууд сайн эхлэл болно.

Асуултууд

Энгийнээр хэлбэл webhook гэж юу вэ?

Webhook бол төлбөр амжилттай болох эсвэл маягт илгээгдэх зэрэг үйл явдал болоход нэг үйлчилгээ таны app-ийн вэб хаяг руу илгээдэг автомат мессеж юм. Таны app юу өөрчлөгдсөнийг давтан асуухын оронд нөгөө үйлчилгээ өөрөө мэдэгдэнэ.

Webhook болон API-ийн ялгаа юу вэ?

API дуудалтад таны app нөгөө үйлчилгээнээс юм асуугаад хариу авдаг. Webhook-д үйл явдал болоход нөгөө үйлчилгээ таны app-ийг дуудна. Олон интеграц хоёуланг нь ашигладаг: webhook-ээр үйл явдлыг мэдэж, API дуудалтаар дэлгэрэнгүйг авах эсвэл үйлдэл хийдэг.

Webhook аюулгүй юу?

Шалгавал аюулгүй болж чадна. Сайн зохиогдсон үйлчилгээ үзүүлэгчид webhook бүрийг зөвхөн танд байдаг нууц түлхүүрээр гарын үсэг зурдаг, мөн таны app гарын үсэг таарахгүй хүсэлт бүрийг татгалзах ёстой. Энэ шалгалтгүйгээр URL-ийг олсон хэн ч хуурамч үйл явдал илгээж болно.

Webhook илгээгдэх үед app минь унтарсан бол юу болох вэ?

Үйлчилгээ үзүүлэгчээс хамаарна. Жишээлбэл Stripe жинхэнэ горимд амжилтгүй хүргэлтийг гурван хүртэл өдрийн турш дахин оролддог, харин GitHub автоматаар дахин оролддоггүй бөгөөд та дахин илгээх ёстой. Үйлчилгээ бүрийн баримт бичгийг шалгаж, хоцорсон эсвэл давтагдсан үйл явдалд тэсвэртэй handler бүтээгээрэй.

Mythex · Pricing · AI-аар юуг ч бүтээ · Вэбсайт болон аппын загварууд · Mythex-ийн харьцуулалт · AI-аар апп бүтээх тайлбар толь · AI-аар апп бүтээх үнэгүй хэрэгслүүд · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)