API se koristi za prijenos informacija o vaučerima između Discountomata i sustava trgovca. Partneru omogućuje provjeru valjanosti vaučera u svom sustavu i otkup vaučera. Partner ne mora koristiti Partnersko sučelje u tu svrhu.
Mogući primjeri upotrebe:
- Kupac kupuje vaučer, pri čemu je uvjet za uslugu unošenje koda na web stranici partnera prilikom kreiranja narudžbe. Zahvaljujući API-ju, nakon ovog unosa odmah se provjerava valjanost vaučera. Tada se njegova vrijednost oduzima u košarici partnera i istovremeno se bon automatski otkupljuje u Discountomatu.
- Na isti način također je moguće provjeriti valjanost bonova u sustavu rezervacija partnera ili kupcu izravno na web stranici partnera učitati kupljeni kredit određene vrijednosti.
Partnerski API zahtijeva token koji je jedinstven za svakog partnera i šalje se kao dio svakog zahtjeva. Za korištenje Partnerskog API-ja kontaktirajte svog/našeg trgovca.
Format zahtjeva
Pristupna točka API-ja nalazi se na /api.
Format zahtjeva je
<URL přístupového bodu>/<akce>[<parametry>]
Svi zahtjevi su standardni HTTP GET zahtjevi, odnosno zahtjev za provjeru valjanosti vaučera može izgledati ovako:
https://www.zlavomat.sk/api/vouchercheck?code=1234-5677-77-111&token=123456789012345.
Format odgovora
Odgovor poslužitelja je uvijek u JSON formatu s odgovarajućim zaglavljem tipa sadržaja. Osnovna struktura odgovora je sljedeća.
{
"result": true,
"data": {
...
},
"error": {
"code": 0,
"message": null
}
}
Vrijednost stavke rezultata je istinita (u slučaju uspjeha) ili lažna (u slučaju pogreške). U slučaju pogreške, unos pogreške sadrži šifru pogreške (šifra ) i njezin opis (poruka ). Uz indikaciju u polju za pogrešku, sustav vraća odgovarajući HTTP statusni kod (400, 401, 403, 404) u slučaju pogreške.
Stavka podataka sadrži podatke koje vraća pozvana radnja i njezin je sadržaj individualan.
Svi podaci su u formatu GGGG-MM-DDTHH:MM:SSZ (ISO8601; npr. 2011–01–01T10:10:10+02:00).
Validacija vaučera
- akcija: voucherCheck
- parametri: token (obavezno; jedinstveni partnerski token), kod (obavezno; kod vaučera)
Postoje tri koda testnih vaučera:
- 1234–5677–77–111 (plaćeno, neiskorišteno),
- 2234–5688–88–222 (plaćeno, korišteno),
- 3234–5699–99–333 (neplaćen, neiskorišten).
Ako aplikacija koristi jedan od ovih kodova, poslužitelj će vratiti odgovarajući odgovor (u slučaju plaćenog i neiskorištenog bona, također će vratiti uzorak vaučera i podatke o događaju).
Format podataka odgovora
{
"token": <autentizační token>,
"code": <kód voucheru>,
"voucherData": <data voucheru>
}
Parametar voucherData sadrži definiciju vaučera u sljedećem formatu.
{
"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>
}
Polja varijanta i naziv varijante sadrže ID ili naziv naručene varijante događaja, ako događaj sadrži varijante. Ako nije, oba atributa su NULL .
Uvjeti pogreške
- Kod 1101 (HTTP statusni kod 400): autentifikacijski token ili kod vaučera nisu uneseni,
- Kod 1102 (HTTP statusni kod 403): token nije u bazi podataka,
- kod 1103 (HTTP statusni kod 404): vaučer s danim kodom ne postoji,
- šifra 1104 (HTTP statusni kod 401): nije plaćen nalog po kojem je vaučer izdan,
- kod 1105 (HTTP statusni kod 401): vaučer je već iskorišten,
- kod 1106 (HTTP statusni kod 401): vaučer je vraćen,
- kod 1107 (HTTP statusni kod 401): narudžba ili bon je otkazan,
- kod 1108 (HTTP statusni kod 401): događaj je već naplaćen partneru; ne mogu se tražiti daljnji bonovi,
- kod 1109 (HTTP statusni kod 401): vaučeri za ovaj događaj još nisu počeli istjecati.
- kod 1111 (HTTP statusni kod 500): interna pogreška poslužitelja
Primjer zahtjeva
https://www.zlavomat.sk/api/vouchercheck?code=1234-5677-77-111&token=123456789012345
Primjer odgovora
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Iskorištavanje vaučera
- Radnja: vaučer Prijava
- parametri: token (obavezno; jedinstveni partnerski token), kod (obavezno; kod vaučera)
Pokušava iskoristiti vaučer danog koda.
Broj testnog vaučera može se koristiti za potrebe testiranja. U tom slučaju vaučer se neće iskoristiti, ali će sustav vratiti odgovor kao da je iskorišten.
Format podataka odgovora
Format odgovora je potpuno isti kao u slučaju provjere valjanosti vaučera.
Uvjeti pogreške
- Kod 1201 (HTTP statusni kod 400): autentifikacijski token ili kod vaučera nisu uneseni,
- kod 1202 (HTTP statusni kod 403): token nije u bazi podataka,
- kod 1203 (HTTP statusni kod 404): vaučer s danim kodom ne postoji,
- šifra 1204 (HTTP statusna šifra 401): nije plaćen nalog po kojem je vaučer izdan,
- kod 1205 (HTTP statusni kod 401): vaučer je već iskorišten,
- kod 1206 (HTTP statusni kod 401): vaučer je vraćen,
- kod 1207 (HTTP statusni kod 401): narudžba ili bon je otkazan,
- kod 1208 (HTTP statusni kod 401): događaj je već naplaćen partneru; ne mogu se tražiti daljnji bonovi,
- kod 1209 (HTTP statusni kod 401): vaučeri za ovaj događaj još nisu počeli istjecati.
- kod 1211 (HTTP statusni kod 500): interna pogreška poslužitelja
Primjer zahtjeva
https://www.zlavomat.sk/api/voucherapply?code=1234-5677-77-111&token=123456789012345
Primjer odgovora
{
"result": true,
"data": {
"token": "123456789012345",
"code": "1234567890-123",
"voucherData": {
"title": <název voucheru>,
...
}
},
"error": {
"code": 0,
"message": null
}
}
Napomena: da biste koristili Partner API za odbijanje vrijednosti ili proizvoda u košarici, razmislite o uključivanju više atributa u parametar voucherData. Ovo je važno, pogotovo ako želite koristiti parametar vaučera. To je važno kada imate više aktivnih promocija s različitim vrijednostima proizvoda. Posebno preporučamo korištenje atributa proizvoda ili varijante.