Разработчикам


Введение

В данном разделе описаны методы API для сервиса Ship2Go. Данные методы позволяют рассчитывать стоимость, отслеживать посылки по трекинг-номерам, получать статус заявок и т.п.

Методы делятся на публичные и приватные. Публичные методы не требуют зарегистрированного в сервисе Ship2Go магазина. Для приватных необходимо зарегистрировать хотя бы один магазин.

Доступ к API осуществляется GET или POST запросами на адрес https://api.ship2go.ru/{метод}?{параметры}.

Ответ любого из методов API может быть представлен так:

{
    "status": {
        "code": "{статус код}",
        "message": "{описание}"
    },
    ...
    // далее ответ, специфичный для каждого метода
}
Статус код по смыслу дублирует HTTP-статусы. Может принимать следующие значения:
  • 200 — все хорошо
  • 400 — некорректный запрос
  • 401 — требует авторизации
  • 403 — доступ запрещен
  • 500 — ошибка выполнения запроса
  • 503 — сервис недоступен
Описание — текстовое представление статуса.

Защищенные методы требуют два обязательных параметра: shop_id и sign. Где shop_id - идентификатор магазина, а sign - вычисляемая подпись запроса.
Подпись sign вычисляется следующим образом.
Зайдите в настройки магазина на вкладку "Настройки API" и скопируйте секретный ключ.
Подготовьте параметры запроса с которыми вы будете обращаться к приватному методу.
Эти параметры необходимо представить в виде строк "{название параметра}={значение параметра}" и отсортировать эти строки по алфавиту.
Подпись расчитывается как md5 хеш от строки:

{секретный ключ}{название параметра1}={значение параметра1}&{название параметра2}={значение параметра2}&... и т.д.
Пример расчета подпись можно посмотреть на вкладке Демонстрация создания подписи
Также защищенные методы требуют чтобы ip компьютера, который делает вызов был включен в список разрешенных ip адресов. Список можно дополнить в разделе Настройки API для интернет магазина.

Для некоторых методов существует режим полинга. В этом режиме при первом запросе возвращается идентификатор для получения данных - data_id. С помощью этого идентификатора можно получать данные кусочками.