Интеграция с интернет-магазинами

«Моя посылка» — настройте сервис «под себя», чтобы по максимуму использовать возможности проекта.

Индивидуальная настройка сервиса «Моя посылка»
для удобного взаимодействия.

«Моя посылка» предлагает интернет-магазинам широкий спектр возможностей для удобного отслеживания курьерских и почтовых отправлений. Программное обеспечение нашего сервиса позволяет индивидуально настроить функционал, с учетом потребностей конкретного пользователя.

На этой странице разработчики найдут необходимую информацию, а также примеры возможных ошибок при выполнении запросов. Это поможет правильно организовать работу с сервисом — подключить приложения, настроить нужные функции, отключить «лишние» возможности. Благодаря этому взаимодействие с проектом «Моя посылка» будет максимально удобным для вас.

Общие сведения

API проекта «Моя посылка» позволяет организовать быстрый доступ ваших приложений к функционалу сервиса. С его помощью можно автоматизировать часть операций и выполнять различные действия со стороны приложений в любое время. Вы можете получать текущие статусы отправлений, добавлять новые трек-номера на отслеживание и т.п.

Взаимодействие с сервисом «Моя посылка» происходит с помощью обмена JSON-сообщениями. Формат JSON обеспечивает быструю передачу данных и не требует реализации сложных клиентов для обращений к серверу API.

Запросы отправляются на специальный адрес методом POST. Если требуется, то в теле запроса в виде JSON-строки передаётся объект, описывающий входные параметры. Обязательна передача заголовка Content-Type: application/json.

Версии API

API Версия Описание
Tracker API v3 Позволяет получать статусы отправлений, информацию по типам и номерам посылок, управлять пользовательскими почтовыми отправлениями
User API v2 Позволяет управлять информацией и получать данные по пользователю
Zip API v2 Позволяет получать информацию по почтовым индексам

Авторизация

В случае, когда метод API требует авторизации пользователя, необходимо передавать сервису дополнительную информацию.

Авторизация пользователя происходит путем передачи дополнительного HTTP-заголовка X-Api-Key со значением сгенерированного ранее ключа доступа. Чтобы получить ключ авторизации к API, необходимо зайти в свой профиль и сгенерировать новый, либо использовать уже существующий.

Ошибки при выполнении запросов

Если сервис не может обработать входящий запрос по разным причинам, то возвращается JSON строка следующей структуры:

{
    "status": 500,
    "error": "APPLICATION_ERROR",
    "path": "/tracker/v3/get-tracker-statuses"
}

где:

  • status - цифровой код ошибки, совпадает с кодом HTTP статуса;
  • error - уникальный строковый код ошибки;
  • path - путь, к которому осуществлен запрос API.
Общие коды ошибок
  • BAD_REQUEST - некорректный формат запроса, HTTP статус 400;
  • INVALID_ARGUMENT_VALUE - некорректный тип или формат передаваемого аргумента, HTTP статус 400;
  • UNAUTHORIZED - требуется авторизация пользователя, HTTP статус 401;
  • ACCESS_DENIED - доступ к указанному ресурсу запрещен, HTTP статус 403;
  • NOT_FOUND - адрес API не существует, HTTP статус 404;
  • APPLICATION_ERROR - фатальная ошибка приложения, HTTP статус 500.

Примеры выполнения запросов

// пример с использованием функций расширения curl
$params = array(
    'number' => '11111111111111'
);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'https://api.moyaposylka.ru/tracker/v3/detect-tracker-types');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_VERBOSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($curl, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-Api-Key: INSERT_YOUR_API_KEY_HERE'
]);
$content = curl_exec($curl);
curl_close($curl);

$result = json_decode($content, true);
// обработка результата...
// простой пример с использованием функции file_get_contents
$params = array(
    'number' => '11111111111111'
);

$opts = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'Content-Type: application/json' . "\n"
            . 'X-Api-Key: INSERT_YOUR_API_KEY_HERE',
        'content' => json_encode($params),
        'timeout' => 60,
        'ignore_errors' => true
    )
);

$context = stream_context_create($opts);
$content = file_get_contents('https://api.moyaposylka.ru/tracker/v3/detect-tracker-types', false, $context);

$result = json_decode($content, true);
// обработка результата...