Для начала работы с API необходимо хотя бы один раз авторизоваться в системе
Базовый URL для доступа к API:
http://cskc.ru/api/devinsight/
Запросы на получение и запись данных осуществляются с помощью HTTP-методов GET и POST соответственно. Данные передаются в кодировке UTF-8. В ответ на HTTP-запрос сервер отправляет HTTP-ответ клиенту в JSON-формате.
Все операции выполняются от имени конкретного пользователя и требует идентификации с помощью параметров userlogin (имя пользователя в системе) и userpsw (md5-хэш пароля пользователя). После авторизации будет автоматичсески определен тип отправителя (обычный отправитель или интернет-магазин). Например, вызов операции получения названий местоположений будет выглядеть следующим образом:
http://cskc.ru/api/devinsight/cities/?userlogin=email&userpsw=md5password
Любой ответ от сервера представлен в JSON-формате. В случае успешного выполнения запроса и в зависиомсти от типа отправителя возвращается необходимый набор ключей и значений, предназначенный для конкретного ответа на запрос.
Пример ответа при успешном выполнении операции получения тарифов:
[
{
"name":"Экспресс",
"desc":"Доставка на следующий рабочий день",
"code":"expr",
"time":"1-2",
"price":3369,
"is_volume_weight":false,
"weight":"10",
"dimensions":"Габариты: 10x10x10"
},
{
"name":"Особое поручение",
"desc":"Доставка с ограничением по времени, вручение лично в руки и другие особые поручения",
"code":"special",
"time":"1",
"price":5425,
"is_volume_weight":false,
"weight":"10",
"dimensions":"Габариты: 10x10x10"
},
{
"name":"Самовывоз",
"desc":"Самовывоз из ПВЗ по адресу Пресненский вал, 17с1",
"code":"self",
"time":"1-2",
"price":3369,
"is_volume_weight":false,
"weight":"10",
"dimensions":"Габариты: 10x10x10"
}
]
В случае выполнения операции с ошибкой возвращается JSON-узел error, содержащий описание ошибки
Пример сообщения об ошибке:
{
"error":"Не передан вес отправления"
}
Возвращает список всех доступных местоположений в зависимости от типа отправителя.
Метод: GET
URL: http://cskc.ru/api/devinsight/cities/
Входные параметрыПоле | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
- обязательные поля
Выходные параметрыПоле | Описание |
---|---|
Moscow_SaintPetersburg_std | Москва - Санкт-Петербург для обычных отправителей |
Moscow_SaintPetersburg_im | Москва - Санкт Петербург для интернет-магазинов |
Moscow_region_std | Московская область для обычных отправителей |
Moscow_region_im | Московская область для интернет-магазинов |
Cities_Russia | Города России |
International | Международные |
//Передаем параметры
$requestParams = array(
'userlogin' => 'email', //Имя пользователя в системе
'userpsw' => 'md5password', //md5-хэш пароля пользователя в системе
);
print("REQUEST: <pre>");
print_r($requestParams );
print("</pre><br/>");
print("RESULT: <br/><br/>");
//Отправка GET запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cskc.ru/api/devinsight/cities/?".http_build_query($requestParams));
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec($ch);
if ($server_output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close ($ch);
print("<pre>");
print_r($server_output);
print("</pre><br/>");
print("RESULT FORMATTED: <br/>");
print("<pre>");
print_r(json_decode($server_output, true));
print("</pre><br/>");
{"Cities_Russia":{"1_rus":"Горноалтайск (Алтай)","2_rus":"Алтай респ. прочие","3_rus":"Барнаул (Алтайский кр.)","4_rus":"Алтайский край прочие","5_rus":"Благовещенск (Амурская)","6_rus":"Амурская прочие","7_rus":"Архангельск(Архангельская","8_rus":"Архангельская прочие","9_rus":"Астрахань (Астраханская)","10_rus":"Астраханская прочие","11_rus":"Уфа (Башкортостан)","12_rus":"Башкортостан прочие","13_rus":"Белгород (Белгородская)","14_rus":"Белгородская прочие","15_rus":"Брянск (Брянская)","16_rus":"Брянская прочие","17_rus":"Улан-Удэ (Бурятия)","18_rus":"Бурятия прочие","19_rus":"Владимир (Владимирская)","20_rus":"Владимирская прочие","21_rus":"Волгоград (Волгоградская)","22_rus":"Волгоградская прочие","23_rus":"Вологда (Вологодская)","24_rus":"Череповец (Вологодская)","25_rus":"Вологодская прочие","26_rus":"Воронеж (Воронежская)","27_rus":"Воронежская прочие","28_rus":"Махачкала (Дагестан)","29_rus":"Дагестан прочие","30_rus":"Биробиджан (Еврейская)","31_rus":"Еврейская А.О. прочие","32_rus":"Иваново (Ивановская)","33_rus":"Ивановская прочие","34_rus":"Иркутск (Иркутская)","35_rus":"Иркутская прочие","36_rus":"Нальчик (Кабардино-Балк.)","37_rus":"Кабардино-Балкарская проч","38_rus":"Калининград (Калининград)","39_rus":"Калининградская прочие","40_rus":"Калуга (Калужская)","41_rus":"Калужская прочие","42_rus":"Элиста (Калмыкия)","43_rus":"Калмыкия прочие","44_rus":"Петропавловск-Камчатский","45_rus":"Камчатская прочие","46_rus":"Черкесск (Карачаево-Чер.)","47_rus":"Карачаево-Черкессия прочи","48_rus":"Петрозаводск (Карелия)","49_rus":"Карелия прочие","50_rus":"Киров (Кировская)","51_rus":"Кировская прочие","52_rus":"Кемерово (Кемеровская)","53_rus":"Кемеровская прочие","54_rus":"Новокузнецк (Кемеровская)","55_rus":"Сыктывкар (Коми)"...}
Возвращает доступые тарифы с расчётом стоимости доставки.
Метод: POST
URL: http://cskc.ru/api/devinsight/tariffs/
Входные параметрыПоле | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
from_where_text | Пункт отправления |
from_client_text | Пункт получения |
weight | Вес (в кг) |
length | Габариты: длина |
width | Габариты: ширина |
height | Габариты: высота |
- обязательные поля
Выходные параметрыПоле | Описание |
---|---|
name | Наименование тарифа |
desc | Описание тарифа |
code | Код тарифа |
time | Срок доставки (в днях) |
price | Цена тарифа |
is_volume_weight | true, если вес рассчитывается по объемному весу |
weight | Вес (в кг) |
dimensions | Габариты |
//Передаем параметры
$requestParams = array(
'userlogin' => 'email', //Имя пользователя в системе
'userpsw' => 'md5password', //md5-хэш пароля пользователя в системе
'from_where_text' => 'Ростов-на-Дону', //Пункт отправления
'from_client_text' => 'Санкт-Петербург', //Пункт получения
'weight' => '15', //Вес (в кг)
'length' => '10', //Габариты: длина
'width' => '10', //Габариты: ширина
'height' => '10', //Габариты: высота
);
print("REQUEST: <pre>");
print_r($requestParams );
print("</pre><br/>");
print("RESULT: <br/><br/>");
//Отправка POST запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cskc.ru/api/devinsight/tariffs/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($requestParams));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec($ch);
if ($server_output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close ($ch);
print("<pre>");
print_r($server_output);
print("</pre><br/>");
print("RESULT FORMATTED: <br/>");
print("<pre>");
print_r(json_decode($server_output, true));
print("</pre><br/>");
[{"name":"Экспресс","desc":"Доставка на следующий рабочий день","code":"expr","time":"1","price":4356.5,"is_volume_weight":false,"weight":"15","dimensions":"Габариты: 10x10x10"},{"name":"Особое поручение","desc":"Доставка с ограничением по времени, вручение лично в руки и другие особые поручения","code":"special","time":"1-2","price":7112.5,"is_volume_weight":false,"weight":"15","dimensions":"Габариты: 10x10x10"},{"name":"Самовывоз","desc":"Самовывоз из ПВЗ по адресу Пресненский вал, 17с1","code":"self","time":"","price":4356.5,"is_volume_weight":false,"weight":"15","dimensions":"Габариты: 10x10x10"}]
Оформляет заказ и возвращает ID заказа и его стоимость.
Метод: POST
URL: http://cskc.ru/api/devinsight/order/
Входные параметрыПоле | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
from_where_text | Пункт отправления |
from_client_text | Пункт получения |
weight | Вес (в кг) |
length | Габариты: длина |
width | Габариты: ширина |
height | Габариты: высота |
tariff_code | Код тарифа |
order_date | Дата вызова курьера (В формате ДД-ММ-ГГГГ) |
shipping_surcharge | Доп сбор за доставку (в т.ч. НДС) |
form_pay | Форма оплаты наложенного платежа:
|
insurance | Срахование. По умолчанию false. |
insurance_amount | Сумма страхования |
description_package | Описание груза |
Отправитель | |
sender_name | ФИО отправителя |
sender_phone | Телефон отправителя |
sender_street | Улица отправителя |
sender_house | Дом отправителя |
sender_building | Корпус (строение) отправителя |
sender_appt | Квартира (офис) отправителя |
sender_district | Район отправителя |
sender_region | Область отправителя |
sender_postcode | Индекс отправителя |
sender_company | Компания отправителя |
sender_notes | Примечание отправителя |
sender_invoice | Вх. накладная отправителя |
Получатель | |
recipient_name | ФИО получателя |
recipient_phone | Телефон получателя |
recipient_street | Улица получателя |
recipient_house | Дом получателя |
recipient_building | Корпус (строение) получателя |
recipient_appt | Квартира (офис) получателя |
recipient_district | Район получателя |
recipient_region | Область получателя |
recipient_postcode | Индекс получателя |
recipient_company | Компания получателя |
recipient_email | Email получателя |
recipient_notes | Примечание получателя |
Список товаров (Каждый товар должен быть новым массивом в массиве items (см. пример). Только для интернет магазинов) | |
ARTICLE | Код товара/артикул |
NAME | Наименование товара |
PAYMENT | Оплата с получателя за ед товара в т.ч. НДС, руб |
WEIGHT | Вес за единицу (в кг). Суммарный вес товаров не должен превышать рассчитанный вес |
QUANTITY | Количество |
- обязательные поля
- обязательные поля только для интернет-магазинов
Выходные параметрыПоле | Описание |
---|---|
id | ID заказа |
price | Стоимость заказа |
//Передаем параметры
$requestParams = array(
'userlogin' => 'email', //Имя пользователя в системе
'userpsw' => 'md5password', //md5-хэш пароля пользователя в системе
'from_where_text' => 'Ростов-на-Дону', //Пункт отправления
'from_client_text' => 'Санкт-Петербург', //Пункт получения
'weight' => '15', //Вес (в кг)
'length' => '10', //Габариты: длина
'width' => '10', //Габариты: ширина
'height' => '10', //Габариты: высота
'tariff_code' => 'expr', //Код тарифа
'order_date' => '12-04-2018', //Дата вызова курьера (В формате ДД-ММ-ГГГГ)
'insurance' => true, //Страхование (Да/Нет)
'insurance_amount' => '200', //Страхование сумма
'description_package' => 'Чехлы для телефонов', //Описание груза
'sender_name' => 'Иванов Иван Иванович', //ФИО отправителя
'sender_phone' => '+7900000000', //Телефон отправителя
'sender_street' => 'Ивановская', //Улица отправителя
'sender_house' => '10', //Дом отправителя
'sender_building' => '1', //Корпус отправителя
'sender_appt' => '100', //Квартира (офис) отправителя
'sender_district' => 'Ивановский', //Район отправителя
'sender_region' => 'Ивановская', //Область отправителя
'sender_postcode' => '100200', //Индекс отправителя
'sender_company' => 'ООО Иванов', //Компания отправителя
'sender_notes' => 'Примечание Иванова', //Примечание отправителя
'recipient_name' => 'Петров Петр Петрович', //ФИО получателя
'recipient_phone' => '+79001111111', //Телефон получателя
'recipient_street' => 'Петровская', //Улица получателя
'recipient_house' => '20', //Дом получателя
'recipient_building' => '2', //Корпус получателя
'recipient_appt' => '200', //Квартира (офис) получателя
'recipient_district' => 'Петровский', //Район получателя
'recipient_region' => 'Петровская', //Область получателя
'recipient_postcode' => '200100', //Индекс получателя
'recipient_company' => 'ООО Петров', //Компания получателя
'recipient_email' => 'petr@mail.ru', //Почта получателя
'recipient_notes' => 'Примечание Петра', //Примечание получателя
);
print("REQUEST: <pre>");
print_r($requestParams );
print("</pre><br/>");
print("RESULT: <br/><br/>");
//Отправка POST запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cskc.ru/api/devinsight/order/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($requestParams));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec($ch);
if ($server_output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close ($ch);
print("<pre>");
print_r($server_output);
print("</pre><br/>");
print("RESULT FORMATTED: <br/>");
print("<pre>");
print_r(json_decode($server_output, true));
print("</pre><br/>");
//Передаем параметры
$requestParams = array(
'userlogin' => 'email', //Имя пользователя в системе
'userpsw' => 'md5password', //md5-хэш пароля пользователя в системе
'from_where_text' => 'Ростов-на-Дону', //Пункт отправления
'from_client_text' => 'Санкт-Петербург', //Пункт получения
'weight' => '15', //Вес (в кг)
'length' => '10', //Габариты: длина
'width' => '10', //Габариты: ширина
'height' => '10', //Габариты: высота
'tariff_code' => 'expr', //Код тарифа
'order_date' => '12-04-2018', //Дата вызова курьера (В формате ДД-ММ-ГГГГ)
'shipping_surcharge' => 100, //Доп сбор за доставку (в т.ч. НДС)
'form_pay' => 'cash', //Форма оплаты наложенного платежа
'insurance' => false, //Страхование (Да/Нет)
//'insurance_amount' => , //Страхование сумма
'description_package' => 'Чехлы для телефонов', //Описание груза
'sender_name' => 'Иванов Иван Иванович', //ФИО отправителя
'sender_phone' => '+7900000000', //Телефон отправителя
'sender_street' => 'Ивановская', //Улица отправителя
'sender_house' => '10', //Дом отправителя
'sender_building' => '1', //Корпус отправителя
'sender_appt' => '100', //Квартира (офис) отправителя
'sender_district' => 'Ивановский', //Район отправителя
'sender_region' => 'Ивановская', //Область отправителя
'sender_postcode' => '100200', //Индекс отправителя
'sender_company' => 'ООО Иванов', //Компания отправителя
'sender_notes' => 'Примечание Иванова', //Примечание отправителя
'sender_invoice' => '34521', //Вх. накладная отправителя (если для ИМ, то обязательна)
'recipient_name' => 'Петров Петр Петрович', //ФИО получателя
'recipient_phone' => '+79001111111', //Телефон получателя
'recipient_street' => 'Петровская', //Улица получателя
'recipient_house' => '20', //Дом получателя
'recipient_building' => '2', //Корпус получателя
'recipient_appt' => '200', //Квартира (офис) получателя
'recipient_district' => 'Петровский', //Район получателя
'recipient_region' => 'Петровская', //Область получателя
'recipient_postcode' => '200100', //Индекс получателя
'recipient_company' => 'ООО Петров', //Компания получателя
'recipient_email' => 'petr@mail.ru', //Почта получателя
'recipient_notes' => 'Примечание Петра', //Примечание получателя
);
//Список товаров
$requestParams['items'][] = array(
'ARTICLE' => '123', //Код товара/артикул*
'NAME' => 'Силиконовый чехол для iPhone 8', //Наименование товара*
'PAYMENT' => '300', //Оплата с получателя за ед товара в т.ч. НДС, руб
'WEIGHT' => '1', //Вес за единицу*
'QUANTITY' => '10', //Количество*
);
$requestParams['items'][] = array(
'ARTICLE' => '22', //Код товара/артикул*
'NAME' => 'Чехол-книжка для Samsung Galaxy S9', //Наименование товара*
'PAYMENT' => '200', //Оплата с получателя за ед товара в т.ч. НДС, руб
'WEIGHT' => '1', //Вес за единицу*
'QUANTITY' => '5', //Количество*
);
print("REQUEST: <pre>");
print_r($requestParams );
print("</pre><br/>");
print("RESULT: <br/><br/>");
//Отправка POST запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cskc.ru/api/devinsight/order/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($requestParams));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec($ch);
if ($server_output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close ($ch);
print("<pre>");
print_r($server_output);
print("</pre><br/>");
print("RESULT FORMATTED: <br/>");
print("<pre>");
print_r(json_decode($server_output, true));
print("</pre><br/>");
{"id":387,"price":850}
Возвращает данные о заказе для отслеживания.
Метод: GET
URL: http://cskc.ru/api/devinsight/tracking/
Входные параметрыПоле | Описание |
---|---|
userlogin | Имя пользователя в системе |
userpsw | md5-хэш пароля пользователя в системе |
order | Номер заказа |
- обязательные поля
Выходные параметрыПоле | Описание |
---|---|
order_date | Дата заказа |
order_number | Номер заказа |
delivery_date | Дата доставки |
delivery_time | Время доставки |
name | ФИО получателя |
status | Статус заказа |
//Передаем параметры
$requestParams = array(
'userlogin' => 'email', //Имя пользователя в системе
'userpsw' => 'md5password', //md5-хэш пароля пользователя в системе
'order' => '385' //Номер заказа
);
print("REQUEST: <pre>");
print_r($requestParams );
print("</pre><br/>");
print("RESULT: <br/><br/>");
//Отправка GET запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cskc.ru/api/devinsight/tracking/?".http_build_query($requestParams));
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec($ch);
if ($server_output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close ($ch);
print("<pre>");
print_r($server_output);
print("</pre><br/>");
print("RESULT FORMATTED: <br/>");
print("<pre>");
print_r(json_decode($server_output, true));
print("</pre><br/>");
{"order_date":"10.12.2018","order_number":"С385","delivery_date":"","delivery_time":"","name":"Петров Петр Петрович","status":"В обработке"}