API

Վեբհուկեր

Վեբհուկը HTTP-հարցում է, որը FoodSoul-ը ուղարկում է ձեր համակարգի հասցեին, երբ հաշվում տեղի է ունենում իրադարձություն՝ նոր պատվեր, կարգավիճակի փոփոխություն, կարծիք և այլք:.

Բաժանորդագրությունը հասցեով և իրադարձություններով ստեղծվում է մեթոդով:

POST Վեբհուկի բաժանորդագրության ստեղծում

Հասցե — բաժանորդագրության URL-ն է, մեթոդը՝ POST:.

Ձևաչափ, ստորագրություն և կրկնություններ

Վեբհուկի հարցման մարմին։ Յուրաքանչյուր հարցում՝ POST Content-Type: application/json-ով դեպի բաժանորդագրության URL։ URL-ը պետք է սկսվի https-ով։
Վերնագրեր՝ X-Webhook-Event — իրադարձության կոդ, X-Webhook-ID — event_uuid, X-Webhook-Signature — sha256= և հարցման սկզբնական մարմնի HMAC-SHA256 hex-ով, օգտագործելով մասնաճյուղի գաղտնիքը (webhooks_subscriptions.generate_secret)։
Ստուգեք ստորագրությունը սկզբնական մարմնի վրա մինչև JSON-ի վերլուծությունը՝ hash_equals(hash_hmac('sha256', $body, $secret), substr($signature, 7))։ Ժամանակի նշում ստորագրության մեջ չկա, ալիքը պաշտպանված է HTTPS-ով։
Առաքումը համարվում է ընդունված ցանկացած 2xx պատասխանի դեպքում 10 վայրկյանի ընթացքում։ Վերահղումներ չեն կատարվում։ Հակառակ դեպքում առաքումը կրկնվում է՝ 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

namestringկարող է լինել null

Օրինակ: John Doe

phonestringպարտադիր

Հեռախոսահամար միջազգային ձևաչափով, առանց ձևավորման

Օրինակ: +79114579423

genderstringկարող է լինել null

Արժեքներ:womanman

Օրինակ: man

date_of_birthstringկարող է լինել null

Ծննդյան ամսաթիվը 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

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