🪃Опрацювання Callback(Webhook)
❓ Як опрацьовувати зворотні виклики
Callback (або Webhook) – це механізм взаємодії між двома сервісами, під час якого сервіс ініціатор надсилає сповіщення (або повідомлення) про подію усім підписникам (subscribers) HTTP запитом, методом POST з тілом JSON (з деталями замовлення). Детальніше можна прочитати у Вікіпедії за посиланням https://uk.wikipedia.org/wiki/Webhook
Навіщо це потрібно?
Використання механізму зворотних викликів може знадобитись у випадках, коли вам необхідно реагувати на події щодо змін замовлення – наприклад, таких як зміна статусу або призначення кур'єра.
Використання механізму зворотних викликів не є обов'язковим – використовуйте його у разі потреби.
Як генерується підпис?
Підпис генерується з даних, доступних за ключем data, які сортуються за цим ключем та перетворюються на JSON-рядок, з якого генерується hash HMAC-SHA512. Приклади генерування підпису можна побачити нижче 👇
Як почати отримувати сповіщення?
Отримайте токен для автентифікації.
Отримайте список подій, доступних для підписки.
Надішліть запит:
curl -X GET {PLATFORM_SERVICE_API_URI}/v1/merchant/callback/events \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {AUTH_TOKEN}'Отримайте відповідь:
{
"total": 5,
"items": [
{
"name": "order.new",
"description": "Fires when new order created"
},
{
"name": "order.item.changed",
"description": "Fires when order item is changed"
},
{
"name": "order.status.changed",
"description": "Fires when order status is changed"
},
{
"name": "order.courier.assigned",
"description": "Fires when courier is assigned to order"
},
{
"name": "store.availability.changed",
"description": "Fires when store is open/closed"
}
]
}Створіть підписника за допомогою ендпоїнта. Для створення потрібно вказати company_id та список подій, на які реагуватиме система – ви будете отримувати сповіщення на вказаний вами callback uri.
Відправляємо запит:
Отримуємо відповідь:
Якщо у відповіді немає secret, це означає, що підписник, швидше за все, не створився – потрібно спробувати ще раз або звернутись до підтримки.
Отримуйте сповіщення на переданий callback uri.
Як правильно опрацьовувати сповіщення?
Оскільки ми з вами працюємо у відкритому інтернеті, на ваш callback uri можуть надіслати будь-який HTTP запит з будь-якими даними, тому вам обов'язково необхідно впевнитись, що сповіщення прийшло від LOKO Merchant Platform.
Отримуємо сповіщення на вказану callback uri.
Приклад отримання нового замовлення:
Приклад отримання змін по доступності бранчі (магазину):
З відповіді треба дістати signature для подальших дій.
Верифікуємо тіло за допомогою secret та signature.
PHP
Готово! Ви успішно обробили сповіщення.
Last updated