Отследить отправление

Документация по веб-сервисам API сайта cskc.ru

Общая информация

Для начала работы с 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 Форма оплаты наложенного платежа:
  • "cash" - Начичлный расчет
  • "cashless" - Безначичлный расчет
  • "paid" - Оплачен
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":"В обработке"}