API заавар
Webhook
Үлдэгдэл багасах, кредит болон өөрийн домэйн үйлчилгээ дуусах үед таны серверт мэдэгдэл ирнэ.
Webhook нь үйл явдал болоход WeSend таны серверийн хаяг руу илгээдэг POST хүсэлт. Үүгээр кредитээ автоматаар цэнэглэх, багтаа мэдэгдэх, илгээлтээ түр зогсоох боломжтой.
- 1
Хаяг нэмэх
Самбарын Тохиргоо, Webhook хэсэгт
https://хаягаа нэмж, хүлээн авах үйл явдлаа сонгоно. Нэг төсөлд 5 хүртэл хаяг нэмнэ. - 2
Нууц түлхүүрээ хадгалах
whsec_-ээр эхэлсэн түлхүүрийг зөвхөн нэг удаа харуулна. Серверийнхээ орчны хувьсагчид хадгална. - 3
Турших
«Турших» товч
webhook.testүйл явдал илгээж, таны серверийн хариуг тэр даруй харуулна.
Үйл явдал
{
"id": "evt_9b2f6c1e4a7d4f0e8c3b5a6d7e8f9012",
"type": "balance.low",
"createdAt": "2026-10-20T03:15:30.000Z",
"projectId": "7f3c2a10-5b8e-4d6a-9c1f-2e3d4b5a6c7d",
"data": {
"balance": 4200,
"threshold": 5000
}
}id нь үйл явдлыг таних дугаар. Дахин илгээсэн хүсэлт ижил id-тай ирэх тул нэг үйл явдлыг хоёр удаа боловсруулахаас сэргийлж хадгална уу.
Толгой мэдээлэл
Гарын үсэг шалгах
v1 нь t болон хүсэлтийн биеийг цэгээр холбосон мөрийн (t.body) HMAC-SHA256 утга. Биеийг JSON болгон задлахаас өмнөх яг ирсэн хэлбэрээр нь шалгаж, 5 минутаас хуучин t-тэй хүсэлтийг татгалзана.
import crypto from 'node:crypto'
import express from 'express'
const app = express()
app.post('/wesend/webhook', express.raw({ type: 'application/json' }), (req, res) => {
const header = req.get('WeSend-Signature') || ''
const { t, v1 } = Object.fromEntries(header.split(',').map(part => part.split('=')))
const expected = crypto.createHmac('sha256', process.env.WESEND_WEBHOOK_SECRET)
.update(`${t}.${req.body}`).digest('hex')
const fresh = Math.abs(Date.now() / 1000 - Number(t)) < 300
const valid = v1?.length === expected.length && crypto.timingSafeEqual(Buffer.from(v1), Buffer.from(expected))
if(!fresh || !valid) return res.sendStatus(400)
const event = JSON.parse(req.body)
if(event.type === 'balance.low') {
// Top up, alert the team...
}
res.sendStatus(200)
})Дахин илгээх
- Таны сервер 10 секундын дотор
2xxхариу өгвөл хүрсэнд тооцно. Бусад хариу, хугацаа хэтрэх, холбогдож чадахгүй бол дахин илгээнэ. - Дахин оролдлого 1, 5, 30 минут, 2, 6, 12 цагийн дараа, нийт 7 удаа. Түүнээс хойш хүрээгүй гэж тэмдэглэнэ.
- Redirect дагахгүй. Хаяг нь нийтэд нээлттэй
httpsсервер байна. - Сүүлийн 30 хоногийн илгээлт, хариуг Тохиргоо, Webhook хэсэгт харна.
Эдгээр үйл явдлын үед төслийн гишүүдэд имэйл, эзэмшигчид SMS-ээр мөн мэдэгдэнэ. Webhook нь тэдгээрийг орлохгүй, нэмэлт суваг юм.