Вебхуктар
VERYO серверіңізге кодтың жеткізілгені мен расталғаны туралы хабарлайды, сондықтан API-ге қайта-қайта сұрау жіберудің қажеті жоқ. Мекенжай, оқиғалар және құпия кабинеттегі Вебхуктар бөлімінде орнатылады. Сол жерде webhook.test тест оқиғасын жіберуге және жеткізу журналын қарауға болады.
Мекенжай https:// деп басталуы керек және ішкі желіге апармауы керек.
Оқиғалар
| Оқиға | Қашан | data өрістері |
|---|---|---|
verification.delivered |
Арна кодты жеткізді | verification_id, phone, channel, cost_tiyn |
verification.verified |
Пайдаланушы дұрыс кодты енгізді | verification_id, phone, status |
verification.failed |
Енгізу әрекеттері немесе арналар таусылды | verification_id, phone, status; жеткізу сәтсіз болса, reason |
correlation_id сұрауда берілген болса, data ішіне қосылады. Кодтың мерзімі өткені туралы оқиға жіберілмейді.
{
"id": "evt_1a2b3c4d5e6f70819a2b",
"type": "verification.delivered",
"created_at": "2026-11-08T10:00:03Z",
"data": {
"verification_id": "vrf_8c1f04a2b7d93e6f5a10",
"phone": "+77011234567",
"channel": "telegram",
"cost_tiyn": 900,
"correlation_id": "order-42"
}
}
Қолтаңбаны тексеру
| Тақырып | Мәні |
|---|---|
X-Veryo-Event-Id |
Оқиға идентификаторы |
X-Veryo-Timestamp |
Жіберу уақыты, Unix секундтары |
X-Veryo-Signature |
sha256= және HMAC-SHA256(құпия кілт, "<timestamp>.<шикі дене>") мәнінің hex түрі |
Қолтаңба JSON талданғанға дейін сұраудың шикі денесі бойынша есептеледі:
import { createHmac, timingSafeEqual } from 'node:crypto'
function verify(rawBody, timestamp, signature, secret) {
const hash = createHmac('sha256', secret).update(`${timestamp}.${rawBody}`).digest('hex')
const expected = Buffer.from(`sha256=${hash}`)
const got = Buffer.from(signature)
return got.length === expected.length && timingSafeEqual(got, expected)
}
Құпия баптауларды алғаш сақтаған кезде беріледі. Кабинетте құпияны ауыстырғанда ескісі бірден жарамсыз болады.
Жауап және қайталаулар
10 секунд ішінде 2xx кодымен жауап беріңіз. Редиректтер орындалмайды. Сәтсіз болса, VERYO жіберуді 1 минут, 5 минут, 30 минут, 2 сағат, 6 сағат және 15 сағаттан кейін қайталайды — барлығы 7 әрекет.
Жеткізу «кемінде бір рет» қағидаты бойынша жұмыс істейді: бір оқиға екі рет келуі мүмкін. Қайталанғандарын оқиғаның
idмәні бойынша сүзіп тастаңыз.