Повратни позиви

Примајте потписана обавештења између сервера и завршене резултате асинхронизације.

Повратни позиви

Конфигуришите УРЛ за повратни позив у Профил → Повратни позиви и асинхронизовани резултати. Модел Гате шаље ХТТПС POST захтеви за омогућена обавештења о налогу и за довршене захтеве за асинхроне закључке.

УРЛ повратног позива

Користите јавно доступну ХТТПС крајњу тачку. Крајња тачка треба да прочита необрађено тело захтева, да провери потпис, да обради догађај идемпотентно и да врати ХТТП 200 чим је догађај прихваћен.

Догађаји

Повратни позиви могу укључивати:

  • завршени резултати асинхронизованог закључивања;
  • обавештења о ниском стању на рачуну када су омогућена;
  • Обавештења о ограничењу потрошње АПИ кључа када су омогућена;
  • обавештења о ограничењу потрошње за кључну групу када су омогућена.

Асинхронизована испорука резултата је омогућена кад год се конфигурише УРЛ за повратни позив. Поља за потврду обавештења у Профилу контролишу само одговарајућа упозорења о стању и ограничењу.

Формат захтева

POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256

Пример корисног оптерећења асинхронизованог резултата:

{
  "event":"async.completed",
  "request_id":"01J...",
  "status":"completed",
  "response":{"id":"msg_...","type":"message"}
}

Поља корисног оптерећења могу се временом проширити. Занемарите непозната поља.

Провера потписа

Заглавље потписа има овај формат:

X-Model-Gate-Signature: t=<unix>,v1=<hmac_sha256>

Израчунајте ХМАЦ-СХА256 преко тачног низа <timestamp>.<raw_body> користећи тајну за повратни позив приказану у Профилу. Упоредите хексадецимални потпис са поређењем константног времена и одбаците временске ознаке изван вашег прихваћеног прозора за понављање.

Испорука и поновни покушаји

Врати ХТТП 200 након безбедног прихватања догађаја. Одговори који нису 2кк и неуспеси везе могу да се покушају поново. Ваша крајња тачка стога мора бити идемпотентна; користити request_id заједно са event као кључ за дедупликацију.

Не обављајте дуготрајан посао пре него што одговорите. Ставите догађај у ред интерно, вратите се 200, и обрадити га асинхроно.

Повезана документација