Подключите наше отслеживание посылок к своему сайту: увеличьте лояльность пользователей, уменьшите количество возвратов и улучшите информированность о прохождении посылок.
Сервис Post2Go предоставляет доступ к данным об отслеживании посылок с помощью API, реализованного протоколом JSON-RPC 2. Сам протокол знать не обязательно, мы опишем его ниже.
Перед тем, как вы сможете получить доступ к API, вам необходимо зарегистрироваться и оставить заявку на подключение. Вам будет предоставлен доступ к интерфейсу управления подключенными приложениями, в котором вы сможете сгенерировать ключ для доступа к API.
Все запросы к API делаеются к точке доступа, расположенной по адресу http://api.post2go.ru/v2/jsonrpc
.
Каждый запрос обязательно должен содержать следующие заголовки:
X-Authorization-Token: ВАШ_API_КЛЮЧ
Content-Type: application/json
Тело запроса всегда должно иметь указанный вид:
{
"jsonrpc": "2.0",
"method": "methodName",
"params": { },
"id": 1
}
jsonrpc
обязателен и его значение всегда должно быть 2.0
;method
обязателен, в него должно быть записано название запрашиваемого метода;params
обязателен, если у метода нет параметров — нужно передать пустой объект { }
как в примере;id
обязателен, он позволяет идентифицировать ответ API. Если вам это не нужно, то просто передавайте в нём любую строку или число.Ответ API в случае успеха выглядит следующим образом:
{
"jsonrpc": "2.0",
"id": 1,
"result": [ ]
}
jsonrpc
передаётся всегда и его значение всегда 2.0
;id
копируется значение id
полученное в запросе;result
передаётся всегда, но может содержать значения null
, [ ]
или { }
. Его значение всегда зависит от метода.Если параметр result
отсутствует, значит произошла ошибка. Ответ в случае ошибки выглядит так:
{
"jsonrpc": "2.0",
"error": {
"code": 401,
"message": "Invalid or expired X-Authorization-Token"
},
"id": null
}
jsonrpc
передаётся всегда и его значение всегда 2.0
;id
копируется значение id
полученное в запросе, кроме случаев когда произошла глобальная ошибка;error
всегда содержит объект ошибки с кодом и сообщением. Расшифровку возможных кодов смотрите ниже.Внимание! Проверяйте тип ошибки по коду, а не по тексту. Текст может меняться со временем, либо зависеть от поступившенго запроса, а код является фиксированным.
Не передан X-Authorization-Token
в заголовках запроса:
{
"jsonrpc": "2.0",
"error":{
"code": 401,
"message": "X-Authorization-Token is required and must be a string"
},
"id": null
}
X-Authorization-Token
передан, но является неверным:
{
"jsonrpc": "2.0",
"error":{
"code": 401,
"message": "Invalid or expired X-Authorization-Token"
},
"id": null
}
Синтаксическая ошибка при разборе запроса, передан неправильный JSON:
{
"jsonrpc": "2.0",
"error":{
"code": -32700,
"message": "Parse error"
},
"id": null
}
Передан неправильный запрос, например не указан один из обязательных параметров:
{
"jsonrpc": "2.0",
"error":{
"code": -32600,
"message": "Invalid request"
},
"id": null
}
Запрошенный метод не существует или не доступен:
{
"jsonrpc": "2.0",
"error":{
"code": -32601,
"message": "Requested method does not exist"
},
"id": null
}
Один из переданных параметров не соответствует требованиям:
{
"jsonrpc": "2.0",
"error":{
"code": -32602,
"message": "Invalid parameter"
},
"id": null
}
Произошла внутренняя ошибка сервера:
{
"jsonrpc": "2.0",
"error":{
"code": -32603,
"message": "Internal error"
},
"id": null
}
Запрошенный объект не найден:
{
"jsonrpc": "2.0",
"error":{
"code": 404,
"message": "Nothing found"
},
"id": null
}
Попытка получить информацию о треке до постановки на отслеживание:
{
"jsonrpc": "2.0",
"error":{
"code": 403,
"message": "Access denied. You should addTracking to access this operation."
},
"id": null
}