Atzvani
Saņemiet parakstītus idempotentus servera-servera notikumus un pabeigtos asinhronizācijas rezultātus.
Atzvani
Konfigurējiet atzvanīšanas URL Profils → Atzvani un asinhronie rezultāti. Modeļa vārti nosūta HTTPS POST pieprasījumi par iespējotiem konta paziņojumiem un pabeigti vietējās asinhronizācijas secinājumu pieprasījumi. Atzvanīšanas piegāde ir neatkarīga no secinājumu apstrādes un darbojas, izmantojot īpašu izturīgu Model Gate darbinieku rindu.
Atzvanīšanas URL un izejošā drošība
Izmantojiet publiski pieejamu HTTPS galapunktu. Atzvanīšanas URL validācija ir izejošās drošības robeža. Atpakaļcilpas, privātais, saišu lokālais, operatora līmeņa NAT, dokumentācija/tests, multiraide, nenoteikti un rezervēti IP diapazoni tiek noraidīti. Saglabāšanas un piegādes laikā resursdatora nosaukums tiek apstiprināts; novirzīšanas tiek atkārtoti apstiprinātas. Nenorādiet atzvanīšanu uz iekšējiem pakalpojumiem vai novirzīšanu uz privātajiem tīkliem.
Kopējā pasākuma aploksne
Katrai atzvanīšanai tiek izmantota viena un tā pati aploksne:
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {}
}
event_id ir stabils katram viena loģiskā notikuma atkārtotam mēģinājumam. Atcelt piegādes dublikātus līdz event_id; neizseciniet identitāti, salīdzinot pārējo lietderīgo slodzi. occurred_at ir UTC RFC3339. Laika gaitā derīgās kravas var iegūt papildu laukus, tāpēc patērētājiem ir jāignorē nezināmie lauki.
Katrā piegādē ir iekļauts arī tas pats notikuma ID X-Model-Gate-Event-ID.
Pasākumu katalogs
account.balance_low
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"balance": "10.1234567890",
"threshold": "20.0000000000",
"currency": "USD"
}
}
key.spend_limit_threshold_reached
{
"event_id": "01J...",
"event": "key.spend_limit_threshold_reached",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"key_id": "KEY_PUBLIC_ID",
"key_name": "Bank integration",
"usage": "80.1234567890",
"spend_limit": "100.0000000000",
"threshold_percent": 80,
"currency": "USD"
}
}
group.spend_limit_threshold_reached
Lietderīgā krava izmanto group_id, group_name, precīza decimāldaļa usage, precīza decimāldaļa spend_limit, vesels skaitlis threshold_percent, un currency = "USD".
request.completed
{
"event_id": "01J...",
"event": "request.completed",
"occurred_at": "2026-08-28T07:00:00.123456Z",
"data": {
"request_id": "01J...",
"status": "completed",
"response_status": 200,
"response": {"id":"msg_...","type":"message"}
}
}
response_status ir nederīgs, ja nepastāv augšējais HTTP statuss. Neizdevušos/atcelto/beigusies asinhronizācijas rezultāti var ietvert data.error.
Atzvanīšanas lietderīgās slodzes finanšu vērtības ir precīzas decimāldaļas; tās nav UI noapaļotas displeja vērtības.
Sliekšņa brīdinājumi tiek atkārtoti aktivizēti pēc tam, kad uzraudzītā vērtība atstāj savu sliekšņa stāvokli. Sliekšņa darbinieks novērtē apstākļus aptuveni reizi minūtē ārpus izsecināšanas karstā ceļa, tāpēc sliekšņa atzvanīšanas signāls nav reāllaika milisekundes šķērsošanas signāls.
Pieprasījuma formāts
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Event-ID: 01J...
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Paraksta pārbaude
Aprēķiniet HMAC-SHA256, izmantojot precīzu virkni <timestamp>.<raw_body> izmantojot profilā ģenerēto atzvanīšanas noslēpumu. Pilns noslēpums tiek parādīts tikai tad, kad tas tiek ģenerēts vai pagriezts, un miera stāvoklī tiek glabāts šifrēts. Salīdziniet heksadecimālo parakstu nemainīgā laikā un noraidiet laikspiedolus ārpus pieņemtā atkārtošanas loga. HMAC laikspiedols ir raksturīgs piegādes mēģinājumam; uz event_id saglabājas stabila visu atkārtoto mēģinājumu laikā.
Piegāde, atbilde un atkārtojumi
Jebkurš HTTP 2xx atbilde pieņem notikumu. HTTP 200 ar tukšu ķermeni ieteicams. Transporta kļūdas, taimauta un katra atbilde, kas nav 2xx, ir kļūmes.
Katram pasākumam ir ne vairāk kā Kopā 6 mēģinājumi: sākotnējais mēģinājums plus pieci atkārtojumi. Seko neveiksmīgiem mēģinājumiem 1–5 5 sekundes, 30 sekundes, 2 minūtes, 10 minūtes un 1 stunda. Katrs mēģinājums ir grūts 15 sekundes kopējais taimauts. Pēc sestā neveiksmīgā mēģinājuma notikums kļūst par terminālu failed un vairs nav automātiska atkārtota mēģinājuma. Novecojušas darbinieku prasības tiek automātiski atgrieztas ilgstošajā rindā.
Pirms atbildes neveiciet ilgstošu darbu. Pārbaudiet parakstu, saglabājiet/atceliet dublikātu event_id, atgriezties 2xx, un apstrādāt asinhroni.