Взаимодействие
Вызов методов
Для вызова любого метода 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": "Недостаточно средств для оплаты"
}
}