Leiðbeiningar

Hvað er webhook? Hvernig öpp láta hvert annað vita

Webhook er sjálfvirk skilaboð sem ein þjónusta sendir appinu þínu um leið og eitthvað gerist. Þegar greiðsla viðskiptavinar heppnast sendir Stripe webhook á vefslóð í appinu þínu sem segir „greiðsla heppnaðist, hér eru upplýsingarnar“, og appið þitt bregst við — merkir pöntunina greidda, sendir kvittun, opnar reikninginn. Í stuttu máli: API er þegar appið þitt spyr aðra þjónustu spurningar; webhook er þegar hin þjónustan kallar í appið þitt og segir því eitthvað.

Af hverju það skiptir máli þegar þú smíðar með AI

Um leið og appið þitt tekur við greiðslum, tekur við innsendum formum frá öðru tóli eða tengist þjónustum eins og GitHub, Shopify eða dagatali, lendirðu í webhook. Þau eru yfirleitt rétta leiðin til að vita að eitthvað gerðist — en þau eru líka staðurinn þar sem öpp smíðuð með AI eru oftast lúmskt röng:

  • Móttökupunkturinn tekur við hvaða beiðni sem er, þannig að hver sem er getur falsað atburðinn „greiðsla heppnaðist“.
  • Appið veitir aðgang á endurbeiningarsíðu eftir greiðslu í stað þess að gera það í webhook, þannig að fólk sem lokar glugganum snemma fær aldrei það sem það greiddi fyrir, og fólk sem finnur árangurs-vefslóðina fær það ókeypis.
  • Sami atburður berst tvisvar og viðskiptavinurinn fær tvær pantanir eða tvo pósta.

Ef þú skilur hvernig webhook virka geturðu beðið um verndina strax í upphafi.

Hliðstæða úr daglegu lífi: sendingarskilaboð

Þú getur komist að því hvort pakkinn þinn er kominn á tvo vegu. Þú getur gengið að útidyrunum á tíu mínútna fresti til að athuga (það er polling — appið þitt kallar endurtekið í API til að spyrja „eitthvað nýtt?“). Eða sendillinn getur sent þér skilaboð þegar pakkinn er afhentur (það er webhook).

Skilaboðin eru greinilega betri — svo lengi sem þú getur treyst þeim. Ef hver sem er gæti sent þér „pakki afhentur“ skilaboð myndirðu vilja einhverja leið til að vita að þau komu frá sendlinum. Og ef síminn þinn var slökktur þegar skilaboðin komu myndirðu vilja að sendillinn reyndi aftur síðar. Þessi tvö atriði — sannreyning og endursendingar — eru stærstur hluti þess sem gerir webhook flókin.

Hvernig webhook virkar, skref fyrir skref

  1. Þú býrð til móttökupunkt í bakenda appsins þíns: vefslóð eins og https://yourapp.com/webhooks/stripe sem tekur við POST beiðnum.
  2. Þú skráir þá vefslóð hjá veitandanum og velur hvaða atburði þú vilt (til dæmis „afgreiðslu lokið“ og „áskrift afturkölluð“).
  3. Veitandinn gefur þér undirritunarleyndarmál. Þú geymir það sem leyndarmál á þjóninum þínum — sjá umhverfisbreytur og leyndarmál.
  4. Atburður gerist. Veitandinn sendir HTTP beiðni á vefslóðina þína með JSON gögnum sem lýsa honum, auk undirskriftarhauss.
  5. Appið þitt sannreynir undirskriftina, skráir auðkenni atburðarins, svarar fljótt með árangurskóða (200) og framkvæmir síðan verkið.
  6. Ef appið þitt svarar ekki með árangri reyna margir veitendur aftur síðar.

Undirskriftir

Undirskrift sannar að beiðnin kom frá veitandanum og var ekki breytt. Stripe reiknar til dæmis HMAC (eins konar lykilað fingrafar) með SHA-256 yfir beiðnisefnið og tímastimpil, með undirritunarleyndarmálinu, og sendir það í hausnum Stripe-Signature. Appið þitt framkvæmir sama útreikning með sínu eintaki af leyndarmálinu; ef niðurstöðurnar passa er beiðnin ósvikin. Þar sem tímastimpillinn er líka undirritaður geturðu hafnað gömlum beiðnum sem einhver tók upp og endurspilar síðar — bókasöfn Stripe nota sjálfgefið fimm mínútna þolmörk, samkvæmt skjölum þess frá september 2026.

Eitt hagnýtt atriði: undirskriftin er reiknuð yfir hrá beiðnisefnið. Ef rammaverkið þitt þáttar JSON og forsniðar það aftur áður en þú sannreynir, mistekst athugunin. Þetta er mjög algeng villa.

Endursendingar, afrit og röð

Veitendur eru mismunandi, athugaðu skjöl hvers og eins. Frá september 2026:

HegðunStripeGitHub
Sjálfvirkar endursendingarJá, í allt að þrjá daga með vaxandi bili í lifandi hamNei; þú sendir misheppnaðar sendingar aftur handvirkt eða með skriptu
SvartímiSvaraðu með 2xx fljótt, áður en hæg vinna fer af staðSending sem tekur lengri tíma en 10 sekúndur að svara telst misheppnuð

Skjöl Stripe segja líka að atburðir berist ekki endilega í þeirri röð sem þeir gerðust, og að sami atburður geti stöku sinnum borist oftar en einu sinni, og mæla því með að fylgjast með auðkennum atburða.

Almenna lexían á við um alla veitendur: atburðir geta borist seint, oftar en einu sinni og úr röð. Móttökukóðinn þinn ætti að vera idempotent — að vinna sama atburð tvisvar hefur sömu áhrif og að vinna hann einu sinni.

Dæmi: opna greitt námskeið

Þú selur netnámskeið. Nemandi smellir á Kaupa, greiðir á hýstu greiðslusíðu Stripe og er sendur aftur á vefsíðuna þína.

Brothætta leiðin: „Takk“-síðan opnar námskeiðið. Ef nemandinn lokar vafranum meðan á endurbeiningunni stendur hefur hann greitt en fær ekki aðgang. Ef einhver giskar á takk-vefslóðina fær hann aðgang án þess að greiða.

Webhook-leiðin:

  1. Þegar Stripe staðfestir greiðsluna sendir það atburðinn checkout.session.completed á /webhooks/stripe.
  2. Bakendinn þinn sannreynir undirskriftina með undirritunarleyndarmálinu. Ef hún mistekst svarar hann 400 og gerir ekkert.
  3. Hann athugar hvort auðkenni atburðarins hafi þegar verið unnið. Ef já svarar hann 200 og hættir.
  4. Hann vistar auðkenni atburðarins, svarar 200 og veitir síðan nemandanum aðgang og sendir velkomnapóst.
  5. Takk-síðan segir bara „Greiðsla móttekin — námskeiðið birtist eftir augnablik“ og athugar aðgangsstöðu nemandans.

Síðar, ef áskrift er afturkölluð eða kort hafnar, segja aðrir webhook-atburðir appinu þínu að fjarlægja eða gera hlé á aðgangi. Þannig haldast áskriftarvörur í samstillingu við reikningagerð — sjá hvað SaaS er og hvernig þú bætir greiðslum við appið þitt.

Lykilhugtök

  • Endapunktur (endpoint): vefslóðin í appinu þínu sem tekur við webhook.
  • Atburður / gögn (payload): hvað gerðist og gögnin sem lýsa því (venjulega JSON).
  • Undirritunarleyndarmál: sameiginlega leyndarmálið sem notað er til að sannreyna undirskriftir.
  • Idempotent: óhætt að keyra oftar en einu sinni með sömu niðurstöðu.
  • Polling: að spyrja API endurtekið um breytingar í stað þess að bíða eftir webhook.
  • Göng (tunnel): tól sem gefur fartölvu tímabundna opinbera vefslóð svo webhook nái til hennar meðan á þróun stendur.

Algeng mistök og misskilningur

  • Að sannreyna ekki undirskriftir. Vefslóð móttökupunktsins er ekki leyndarmál. Sannreyningin er það sem gerir beiðnina traustverðuga.
  • Að vinna hæga vinnu áður en svarað er. Að senda tölvupóst eða búa til PDF áður en þú svarar getur valdið tímamörkum, sem kalla fram endursendingar, sem skapa afrit.
  • Að gera ráð fyrir nákvæmlega einu sinni, í röð. Skráðu auðkenni atburða og treystu ekki á komuröð.
  • Að nota forskoðunarvefslóð. Webhook þurfa stöðuga, opinbera vefslóð. Einkaforskoðanir og localhost eru ekki aðgengilegar af netinu; notaðu birtu vefslóðina þína (eða göng meðan þú prófar).
  • Að blanda saman prófunar- og lifandi leyndarmálum. Veitendur gefa oft út mismunandi undirritunarleyndarmál fyrir prófunar- og lifandi ham. Geymdu bæði og notaðu það rétta.
  • Að treysta gögnunum blint í mikilvægum ákvörðunum. Fyrir áhættusamar aðgerðir er skynsamlegt að sækja nýjustu stöðu frá API veitandans eftir að atburður berst.

Hvað þú átt að biðja AI-smíðatólið um

Bættu við POST /webhooks/stripe endapunkti á þjóninum. Sannreyndu Stripe-undirskriftina með hráa beiðnisefninu og leyndarmálinu STRIPE_WEBHOOK_SECRET. Hafnaðu ógildum undirskriftum með 400. Geymdu auðkenni hvers atburðar og slepptu atburðum sem þegar hafa verið unnir. Svaraðu 200 fljótt og vinndu síðan checkout.session.completed með því að merkja pöntunina greidda og senda kvittunina. Skráðu tegund atburðarins. Veittu ekki aðgang frá árangurssíðu afgreiðslunnar.

Prófaðu það svo: sendu prófunaratburð úr mælaborði veitandans, sendu sama atburð aftur og sendu beiðni með röngri undirskrift. Aðeins sá fyrsti ætti að breyta einhverju.

Webhook í Mythex

Mythex keyrir ekki sérstaka webhook-þjónustu; þú biður agentinn um að bæta webhook-endapunkti í bakenda appsins þíns og bendir veitandanum á birtu vefslóðina þína, því webhook þurfa opinbert vistfang. Undirritunarleyndarmálið fer í leyndarmál verkefnisins og ef þú breytir því í lifandi appi birtir þú aftur. Skjalauppskriftin meðhöndlun webhook inniheldur upphafsskipun, og verslunarsniðmát eru góður upphafspunktur fyrir öpp sem taka við greiðslum.

Spurningar

Hvað er webhook í einföldu máli?

Webhook er sjálfvirk skilaboð sem ein þjónusta sendir á vefslóð í appinu þínu þegar eitthvað gerist, eins og að greiðsla heppnast eða form er sent inn. Í stað þess að appið þitt spyrji aftur og aftur hvort eitthvað hafi breyst, segir hin þjónustan því frá.

Hver er munurinn á webhook og API?

Með API-kalli spyr appið þitt aðra þjónustu um eitthvað og fær svar. Með webhook kallar hin þjónustan í appið þitt þegar atburður verður. Margar tengingar nota hvort tveggja: webhook til að heyra um atburði, API-köll til að sækja upplýsingar eða grípa til aðgerða.

Eru webhook örugg?

Þau geta verið það, ef þú sannreynir þau. Vel hannaðir veitendur undirrita hvert webhook með leyndarmáli sem bara þú deilir, og appið þitt ætti að hafna öllum beiðnum sem undirskriftin passar ekki við. Án þeirrar athugunar gæti hver sem finnur vefslóðina sent falska atburði.

Hvað gerist ef appið mitt er niðri þegar webhook er sent?

Það fer eftir veitandanum. Stripe reynir til dæmis aftur að senda misheppnaðar sendingar í allt að þrjá daga í lifandi ham, en GitHub reynir ekki sjálfkrafa aftur og ætlast til þess að þú sendir aftur. Athugaðu skjöl hvers veitanda og hannaðu móttökukóðann þinn þannig að hann ráði við seinkaða eða endurtekna atburði.

Mythex · Pricing · Smíðaðu hvað sem er með gervigreind · Sniðmát fyrir vefsíður og forrit · Mythex í samanburði · Orðasafn um forritasmíði með gervigreind · Ókeypis verkfæri fyrir forritasmíði með gervigreind · 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 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 简体中文 繁體中文(香港) 繁體中文(台灣)