API використовується для передачі інформації про ваучер між Discountomat і системою продавця. Це дозволяє партнеру перевірити дійсність ваучерів у своїй системі та викупити ваучери. Партнеру не потрібно використовувати для цього інтерфейс партнера.
Можливі приклади використання:
- Клієнт купує ваучер, умовою послуги є введення коду на сайті партнера при створенні замовлення. Завдяки API ваучер негайно перевіряється на дійсність після цього введення. Потім його вартість знімається в кошику партнера і водночас ваучер автоматично погашається в Дисконтоматі.
- Таким же чином можна також перевірити дійсність ваучерів у системі бронювання партнера або завантажити придбаний кредит на певну вартість клієнту безпосередньо на веб-сайті партнера.
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 (у разі помилки). У разі виникнення помилки запис про помилку містить код помилки (код ) та її опис (повідомлення ). Крім вказівки в полі помилки, у разі помилки система повертає відповідний код статусу 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>
}
Поля variant і 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
}
}
Примітка. Щоб використовувати Partner API для вирахування вартості або продуктів у вашому кошику, спробуйте додати кілька атрибутів до параметра voucherData. Це важливо, особливо якщо ви хочете використовувати параметр ваучера. Це важливо, якщо у вас є кілька діючих рекламних акцій із різною вартістю продукту. Зокрема, ми рекомендуємо використовувати атрибути продукту або варіанту.