Документация разработчика
Webhook — механизм получения уведомлений об определённых событиях на свой сервер.
- Новая заявка
- Новая оплата
Для того чтобы начать использовать технологию webhook, вам необходимо подключить модуль "Webhooks", выбрать необходимые события и указать соответствующие URL (ссылки) на которые мы будем уведомлять вас о событиях.
Мы отправляем запросы HTTP-методом POST. Все запросы сопровождаются подписью, что позволяет проверить запрос и убедиться, что данные посылаем именно мы. Подпись передается через заголовки HTTP запроса с именем taplink-signature.
Пример кода если в настройках выбран формат данных JSON:
$data = file_get_contents('php://input'); $_POST = json_decode($data, true); $signature = hash_hmac('sha1', $data, 'СЕКРЕТНАЯ ФРАЗА'); if ($signature == $_SERVER['HTTP_TAPLINK_SIGNATURE']) { ... }
Пример кода если в настройках выбран формат данных Form (Deprecated):
$signature = hash_hmac('sha1', json_encode($_POST, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 'СЕКРЕТНАЯ ФРАЗА'); if ($signature == $_SERVER['HTTP_TAPLINK_SIGNATURE']) { ... }
profile_id | ID профиля |
username | Имя пользователя |
name | Имя контакта |
Email контакта | |
phone | Телефон контакта |
status_id | статус заявки (1 - новая, 2 - в работе, 3 - выполнена, 4 - Отмена) |
contact_id | ID контакта |
block_id | ID блока (если это форма, если это магазин - то null) |
order_id | ID счета |
order_number | Номер счета в системе клиента |
order_status_id | Статус счета (1 - не оплачен, 2 - оплачен, 3- отменен, 4 - в процессе, 5 - возврат, 6 - преавторизация (нужно подтверждение в ЛК) ) |
purpose | Назначение платежа |
tms_modify | Дата/время последнего изменения счета |
budget | Бюджет счета |
currency_code | Код валюты счета |
currency_title | Валюта счета (знак) |
page_link | Ссылка на страницу где был сформирована заявка |
lead_id | ID заявки |
ip | IP адрес клиента |
lead_number | Номер заявки в системе клиента |
tms_created | Дата/время создания заявки |
records | Пользовательские поля формы заявки, состоит из заголовка поля (title), значения поля (value) и типа поля (type) |
records_extended | Дополнительные поля, состоит из имени поля (name), типа поля (type) и значения поля (value). |
offers | Товары в корзине |
discounts | Промокоды и акции |
shipping | Данные доставки, массив из полей: price, country, state, city, addr1, shipping_method. Набор полей зависит от метода доставки. |
1 | Строка |
3 | Имя |
5 | Текстовое поле |
6 | |
7 | Телефон |
8 | Список |
9 | Выбор |
10 | Галочка |
11 | Страна |
12 | Число |
13 | Дата |
14 | Время |
ИМЯ | ТИП | ОПИСАНИЕ |
lead_number | number | Номер заявки |
budget | number | Стоимость к оплате если указана цена |
order_link | string | Ссылка на оплату счета |
order_number | number | Номер счета |
page_link | string | Ссылка на страницу с которой поступила заявка |
ИМЯ | ТИП | ОПИСАНИЕ |
lead_number | number | Номер заявки |
contacts | text | Контакты заявки одним текстом |
cart | text | Корзина заказа одним текстом |
budget | number | Стоимость заказа |
shipping | text | Информация о доставке одним текстом |
shipping_price | number | Стоимость доставки |
order_link | string | Ссылка на оплату счета |
order_number | number | Номер счета |
weight | number | Вес заказа |
page_link | string | Ссылка на каталог |
discounts | string | Использованные скидки одним текстом |
string | Строка |
number | Число |
text | Многостраничный текст |
{ "action":"leads.created", "data":{ "profile_id":"56", "username":"taplink.ru", "contact_id":"0", "block_id":"0", "page_link":"https://taplink.cc/taplink.ru", "lead_id":"0", "ip":"201.195.126.8", "lead_number":"0", "date_created":"2017-10-18", "tms_created":"2017-10-18 12:00:52", "records":[ { "value":"Василий", "type":"3", "title":"Имя" }, { "value":"vasiliy@mymail.com", "type":"6", "title":"Email" } ], "name":"", "email":"", "phone":"" } }
При отправке запроса информация считается принятой, если в заголовке http ответа будет возвращён код от 100 до 299, согласно таблице кодов статусов w3.org.
Первая попытка отправки происходит сразу после совершения выбранного действия. В случае, когда попытка неудачна, произойдёт повторная отправка по правилам, представленным в таблице ниже.
Номер попытки | Время, прошедшее с предыдущей попытки |
1 | 5 минут |
2 | 15 минут |
3 | 15 минут |
4 | 1 час |
5 | 1 час |
6 | 2 часа |
7 | 2 часа |
8 | 4 часа |
После этого запрос будет удалён из очереди, даже если доставка так и не состоялась.