API

Вебхуктар

Вебхук — бұл FoodSoul жүйесінде оқиға орын алғанда: жаңа тапсырыс, мәртебенің өзгеруі, пікір және басқа да жағдайларда, сіздің жүйеңіздің мекенжайына жіберілетін HTTP-сұраныс.

Жазылым мекенжайы мен оқиғалар арқылы келесі әдіспен жасалады:

POST Вебхукқа жазылуды жасау

Мекенжай — жазылымдағы URL, әдіс — POST.

Пішімі, қолтаңба және қайталанулар

Вебхук сұранысының денесі. Әрбір сұраныс — Content-Type: application/json бар POST, жазылу URL-іне жіберіледі. URL https-пен басталуы тиіс. Заголоварлар: X-Webhook-Event — оқиға коды, X-Webhook-ID — event_uuid, X-Webhook-Signature — sha256= және филиалдың құпия сөзімен (webhooks_subscriptions.generate_secret) сұраныс денесінің түпнұсқасына HMAC-SHA256 (hex). Қолтаңбаны JSON талдаудан бұрын түпнұсқа дене бойынша тексеріңіз: hash_equals(hash_hmac('sha256', $body, $secret), substr($signature, 7)). Қолтаңбада уақыт белгісі жоқ, арна HTTPS арқылы қорғалған. Жеткізу қабылданған болып саналады, егер 10 секунд ішінде кез келген 2xx жауап қайтарылса. Бағыттаулар орындалмайды. Әйтпесе жеткізу қайталанады: 7 әрекет, біріншісі бірден, кейін 1, 5, 15, 60, 180 және 360 минуттан соң. Бір жеткізудің барлық әрекеттерінде бірдей X-Webhook-ID болады. Журналдан қайта жіберу (webhooks_logs.resend) де сол X-Webhook-ID пайдаланады — осы идентификатор бойынша өңделген жеткізулерді өткізіп жіберіңіз. 20 рет қатарынан сәтсіз жеткізу жазылымды өшіреді (blocked), ал иесі мен жүйелік әкімшіге хат жіберіледі. Жазылымды қайта қосу үшін webhooks_subscriptions.unblock пайдаланыңыз. Дене оқиға деректерін қамтиды: клиент, пікір және тапсырыс картасы толық беріледі. Бонус балансы берілмейді: ол желілер пулына ортақ, оны API арқылы алу керек.

Тақырыптар

X-Webhook-Eventstringміндетті

Мысал: order.created

X-Webhook-IDstringміндетті

Мысал: 5f0c6b1e-6a1d-4c1e-9d6b-3a7f0e2b8c41

X-Webhook-Signaturestringміндетті

Мысал: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

Оқиғалар

  • client.registered
  • client.updated
  • client.bonuses_changed
  • order.created
  • order.status_changed
  • order.payment_status_changed
  • feedback.created
  • courier.assigned
  • item.stop_list_changed
  • branch.work_status_changed

Сұраныс денесі

object (WebhookPayload)
eventstringміндетті

Мәндер:client.registeredclient.updatedclient.bonuses_changedorder.createdorder.status_changedorder.payment_status_changedfeedback.createdcourier.assigneditem.stop_list_changedbranch.work_status_changed

Мысал: order.status_changed

event_uuidstringміндетті

Мысал: 5f0c6b1e-6a1d-4c1e-9d6b-3a7f0e2b8c41

date_creationstring (DataTimeFormatSQL) міндетті

Мысал: 2024-05-02 08:31:16

branch_idintegerміндетті

Мысал: 8412

dataoneOfміндетті
Бір нұсқа
object (WebhookDataClientRegistered)

client.registered — жаңа телефон немесе осы филиалда аккаунтқа алғашқы кіру

client_branch_profile_idintegerміндетті

Мысал: 730112

namestringnull мәнін қабылдай алады

Мысал: John Doe

phonestringміндетті

Халықаралық форматтағы телефон нөмірі, форматтаусыз

Мысал: +79114579423

genderstringnull мәнін қабылдай алады

Мәндер:womanman

Мысал: man

date_of_birthstringnull мәнін қабылдай алады

Туған күні Y-m-d форматында

Мысал: 1982-01-03

Дене үлгісі

{
  "event": "order.status_changed",
  "event_uuid": "5f0c6b1e-6a1d-4c1e-9d6b-3a7f0e2b8c41",
  "date_creation": "2024-05-02 08:31:16",
  "branch_id": 8412,
  "data": {
    "client_branch_profile_id": 730112,
    "name": "John Doe",
    "phone": "+79114579423",
    "gender": "man",
    "date_of_birth": "1982-01-03"
  }
}

Жүйеңіздің жауабы

2XX

Қабылданды

default

Не принято, доставка повторяется