Взаимодействие
Вызов методов
Для вызова любого метода GP.API необходимо отправить POST запрос по протоколу HTTPS на указанный адрес
Авторизация вызова
Для авторизации вызова используется HTTP Basic Auth — отправка логина и пароля в заголовке HTTP запроса. В качестве логина используется Site ID, в качестве пароля — API Secret. Оба этих значения можно получить в личном кабинете.
Обратите внимание
Если в запросе не передан заголовок с данными аутентификации или переданы неверные данные, система вернет HTTP статус 401 – Unauthorized.
Важно
API secret используется для обеспечения безопасности. Он должен хранится в защищенном месте.
Обработка ответа
Каждый запрос в GP.API возвращает ответ сериализованный в формате JSON.
Ответ является стандартизированным и может содержать один из объектов
-
response - доступен, в случае успешного ответа
-
error - доступен, в случае возникновения ошибки при выполнении запроса
Пример успешного ответа
{
"response": {
"success": 1,
"timestamp": 1491279174.7654
}
}
Пример ошибки
{
"error": {
"code": 10002,
"text": "Invalid parameter `site_id`",
"error_id": 990,
"timestamp": 1597852096.013394,
"name": "site_id"
}
}
Обработка ошибок
В случае возникновения ошибки будет возвращен объект error, содержащий поля
Параметр | Тип | Описание |
---|---|---|
code | int | Код ошибки |
text | string | Текстовое описание ошибки |
error_id | int | Идентификатор ошибки, который может быть запрошен службой поддержки |
timestamp | float | Время возникновения ошибки в формате unixtime |
{additional_field} | {mixed} | Дополнительные информационные поля |
Список возможных кодов ошибки
Код ошибки | Текст ошибки |
---|---|
10000 | Required parameter %s not found or empty |
10001 | One of parameters %s is required |
10002 | Invalid parameter %s |
10010 | Item %s with %s = '%s' not found |
10011 | Item %s with %s = '%s' already exists |
10030 | Invalid credentials |
10401 | Authorization required |
10403 | Permission denied |
10404 | Specified method is not found |
10429 | Too many requests |
10500 | Something went wrong, try to repeat later |
10800 | External service call error: %s |
Как реагировать
API подразумевает три исхода выполнения запроса: ошибка, успешное выполнение, неуспешное выполнение.
Ошибка
Ошибка возникает в том случае, когда в вызов метода были переданные неверные параметры или объект, который необходимо изменить (например подтвердить оплату) не может быть изменен, потому что имеет определенный статус в системе или не принадлежит текущему сайту. Т.е. наличие ошибки в ответе сигнализирует о технических проблемах взаимодействия с системой и никак не связано с действиями самого пользователя (неверная карта, нет средств для оплаты и т.д.).
Пример
{
"error": {
"code": 10002,
"text": "Invalid parameter `site_id`",
"error_id": 990,
"timestamp": 1597852096.013394,
"name": "site_id"
}
}
Успешное выполнение
Успешное выполнение подразумевает, что метод был вызван без ошибок и операция была проведена успешно.
Пример
{
"response": {
"success": 1,
"timestamp": 1491279174.7654
}
}
Неуспешное выполнение
Неуспешное выполнение возникает в том случае, когда метод был вызван без ошибок, но при вызове стороннего компонента (например - отправки данных в банк-эквайер) возникла проблема. В данном случае система дополнительно вернет в ответе поле reason
, которое будет содержать описание ошибки.
Пример
{
"response": {
"success": 0,
"timestamp": 1491279174.7654,
"reason": "Недостаточно средств для оплаты"
}
}