API используется для передачи информации о ваучерах между Discountomat и системой продавца. Он позволяет партнеру проверять действительность ваучеров в своей системе и выкупать ваучеры. Партнеру не нужно использовать интерфейс партнера для этой цели.
Возможные примеры использования:
- Клиент приобретает ваучер, где условием услуги является ввод кода на сайте партнера при создании заказа. Благодаря API ваучер сразу же проверяется на действительность после этого ввода. Затем его стоимость вычитается в корзине партнера, и в то же время ваучер автоматически погашается в Discountomat.
- Аналогичным образом можно проверить действительность ваучеров в системе бронирования партнера или загрузить купленный кредит определенной стоимости на счет клиента непосредственно на сайте партнера.
API партнера требует токен, который уникален для каждого партнера и отправляется как часть каждого запроса. Чтобы использовать API партнера, свяжитесь с вашим/нашим торговцем.
Формат запроса
Точка доступа API находится по адресу /api.
Формат запроса:
<URL přístupového bodu>/<akce>[<parametry>]
Все запросы представляют собой стандартные HTTP GET-запросы, т.е. запрос на проверку действительности ваучера может выглядеть следующим образом:
https://www.zlavomat.sk/api/vouchercheck?code=1234-5677-77-111&token=123456789012345.
Формат ответа
Ответ сервера всегда в формате JSON с соответствующим заголовком Content-type. Базовая структура ответа следующая.
{
"result": true,
"data": {
...
},
"error": {
"code": 0,
"message": null
}
}
Значением элемента результата является true (в случае успеха) или false (в случае ошибки). В случае ошибки запись об ошибке содержит код ошибки (code ) и ее описание (message ). Помимо указания в поле ошибки, система возвращает соответствующий код статуса HTTP (400, 401, 403, 404) в случае ошибки.
Элемент данных содержит данные, возвращаемые вызванным действием, и его содержимое является индивидуальным.
Все данные представлены в формате ГГГГ-ММ-ДДТЧЧ:ММ:ССЗ (ISO8601; например, 2011–01–01T10:10:10+02:00).
Проверка ваучера
- действие: voucherCheck
- параметры: токен (обязательно; уникальный токен партнера), код (обязательно; код ваучера)
Существует три кода тестовых ваучеров:
- 1234–5677–77–111 (платный, неиспользованный),
- 2234–5688–88–222 (платный, б/у),
- 3234–5699–99–333 (бесплатно, неиспользованный).
Если приложение использует один из этих кодов, сервер вернет соответствующий ответ (в случае оплаченного и неиспользованного ваучера он также вернет образец ваучера и данные о событии).
Формат данных ответа
{
"token": <autentizační token>,
"code": <kód voucheru>,
"voucherData": <data voucheru>
}
Параметр voucherData содержит определение ваучера в следующем формате.
{
"id": <ID voucheru>,
"orderId": <ID objednávky>,
"title": <název voucheru>,
"ordered": <datum a čas objednávky; datum a čas>,
"paidDate": <datum zaplacení objednávky; datum>
"validFrom": <začátek platnosti voucheru; datum>,
"validTo": <konec platnosti voucheru; datum>,
"key": <kód voucheru>,
"code": <kód voucheru>,
"product": <ID akce>,
"productName": <název akce>,
"variant": <ID varianty akce>,
"variantName": <název varianty akce>,
"imageUrl": <URL obrázku>,
"smallImageUrl": <URL náhledu>,
"productUrl": <URL akce>
}
Поля option и variantName содержат идентификатор или имя заказанного варианта события, если событие содержит варианты. Если нет, оба атрибута имеют значение NULL .
Ошибочные состояния
- Код 1101 (код статуса HTTP 400): токен аутентификации или код ваучера не был введен,
- Код 1102 (код статуса HTTP 403): токен отсутствует в базе данных,
- код 1103 (код статуса HTTP 404): ваучер с указанным кодом не существует,
- код 1104 (код статуса HTTP 401): заказ, по которому был выдан ваучер, не был оплачен,
- код 1105 (код статуса HTTP 401): ваучер уже был использован,
- код 1106 (код статуса HTTP 401): ваучер был возвращен,
- код 1107 (код статуса HTTP 401): заказ или ваучер был отменен,
- код 1108 (код статуса HTTP 401): счет за мероприятие уже был выставлен партнеру; дальнейшие ваучеры не могут быть востребованы,
- код 1109 (код статуса HTTP 401): срок действия ваучеров на это мероприятие еще не начал истекать.
- код 1111 (код состояния HTTP 500): внутренняя ошибка сервера
Пример запроса
https://www.zlavomat.sk/api/vouchercheck?code=1234-5677-77-111&token=123456789012345
Пример ответа
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Использование ваучера
- Действие: ваучерПрименить
- параметры: токен (обязательно; уникальный токен партнера), код (обязательно; код ваучера)
Попытки использовать ваучер указанного кода.
Номер тестового ваучера может быть использован для целей тестирования. В этом случае ваучер не будет погашен, но система вернет ответ, как будто он был погашен.
Формат данных ответа
Формат ответа точно такой же, как и в случае проверки действительности ваучера.
Ошибочные состояния
- Код 1201 (код статуса HTTP 400): токен аутентификации или код ваучера не был введен,
- код 1202 (код статуса HTTP 403): токен отсутствует в базе данных,
- код 1203 (код статуса HTTP 404): ваучер с указанным кодом не существует,
- код 1204 (код статуса HTTP 401): заказ, по которому был выдан ваучер, не был оплачен,
- код 1205 (код статуса HTTP 401): ваучер уже был использован,
- код 1206 (код статуса HTTP 401): ваучер был возвращен,
- код 1207 (код статуса HTTP 401): заказ или ваучер был отменен,
- код 1208 (код статуса HTTP 401): счет за мероприятие уже был выставлен партнеру; дальнейшие ваучеры не могут быть востребованы,
- код 1209 (код статуса HTTP 401): срок действия ваучеров на это мероприятие еще не начал истекать.
- код 1211 (код состояния HTTP 500): внутренняя ошибка сервера
Пример запроса
https://www.zlavomat.sk/api/voucherapply?code=1234-5677-77-111&token=123456789012345
Пример ответа
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Примечание: Чтобы использовать API партнера для вычета стоимости или продуктов в вашей корзине, рассмотрите возможность включения нескольких атрибутов в параметр voucherData. Это важно, особенно если вы хотите использовать параметр voucher. Это важно, когда у вас есть несколько запущенных акций с разной стоимостью продуктов. В частности, мы рекомендуем использовать атрибуты product или variation.