Документация разработчика
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 часа |
После этого запрос будет удалён из очереди, даже если доставка так и не состоялась.