Отправка запросов по API
Чтобы отправить запрос по API интернет-магазина, понадобятся следующие данные.
appId | Идентификатор приложения. |
appSecret | Секретный ключ приложения, который указан в его свойствах. |
siteId | Уникальный идентификатор сайта, он всегда одинаковый для одного и того же сайта. |
sitePassword | Пароль для доступа к этому сайту для указанного приложения. |
siteHost | Один из доменов сайта, куда будут отправляться запросы. Можно использовать любой активный домен сайта. |
Для магазина, где создается приложение, они доступны в форме редактирования приложения.
Формат запросов
Все запросы отправляются по адресу методом POST
http://{Domen_Magazina}/api/2.3/{API _Method}.json
В запрос необходимо добавить ключ auth и сделать его массивом со следующими параметрами.
app_id | Идентификатор приложения. |
method | Название метода. |
token | Ключ запроса, который формируется объединением через двоеточие следующих параметров в указанном порядке.
Все это нужно преобразовать алгоритмом MD5. Пример: md5($method . ':' . $appId . ':' . $appSecret . ':' . $sitePassword). |
Для работы с API вы можете использовать готовый клиент, написанный на языке программирования PHP.
Пример запросов к API
<?php // Ключ приложения из его настройки (appSecret). Хранится в файлах настроек. define('APP_SECRET_KEY', 'b577___ключ_приложения____a47'); // Псевдоним приложения (appId). define('APP_ID', 'digistr-mycrm'); // Параметры сайта, к которому будет запрос. Обычно хранятся в базе данных. $site = array( 'digistr_id' => 'b577___уникальный_код_сайта____a47', 'digistr_password' => '997________пароль_сайта________1c3', 'digistr_host' => 'demo.digistr.ru' ); require_once(/* Путь к клиенту */ 'DigistrAPI.php'); $digistr = new DigistrAPI(APP_ID, APP_SECRET_KEY, $site['digistr_id'], $site['digistr_password'], $site['digistr_host']); // Получаем список объектов Webhook. $webhooks = $digistr->query('Webhook/Get'); // Делаем с данными что-нибудь. print_r($webhooks); // Добавляем объект Webhook. $hook = array( // Тип 'event' => 'request.create', // Ссылка, где будут приниматься запросы 'url' => 'http://' . getEnv('HTTP_HOST') . getEnv('REQUEST_URI') . '?action=request', // Подпись запросов. Секретная строка для будущей проверки запроса. 'key' => 'SECRET12345' ); // Отправляем на сайт $digistr->query('Webhook/Save', array('Webhook' => $hook)); // Где-нибудь в коде можно обрабатывать созданный Webhook. Данные приходят в $_POST. if (!empty($_GET['action']) && $_GET['action'] == 'request') { $key = !empty($_POST['key']) ? $_POST['key'] : ''; if ($key == md5('SECRET12345')) { $message = 'Name: ' . $_POST['data']['name'] . ', Phone: ' . $_POST['data']['phone']; mail('[email protected]', 'Заказ звонка', $message); } } ?>