Giftery API
API Reference
All Giftery API methods are available over the HTTPS protocol on URL https://api.giftery.es/v1
Request parameters
https://api.giftery.es/v1/?id={ID}&cmd={CMD}&data={DATA}&sig={SIG}&in={in}&out={json}| param | description |
|---|---|
| id | Required. ID assigned to partner. |
| cmd | Required. Method name. |
| data | Required. Query parameters in the selected format. |
| sig | Required: Signature authorizing request validity. |
| in | Request parameters format (json / xml / url-encoded). Default: url-encoded |
| out | Output format (json / xml / url). Default: json |
Example:
https://api.giftery.es/v1/
?id=322
&cmd=makeOrder
&data=product_id%3D726%26face%3D50%26testmode%3D1
&sig=0f7ebdda213e3ed38eede322a562ae5ad322f2154a5de7ebe1819e84645664e1Steps to sign request (“sig” parameter generation)
| param | description |
|---|---|
| cmd | Requested method |
| data | "data" as string from the request. Example: "product_id=343&face=2000" |
| secret | Secret key assigned to partner |
Calculate SHA256-hash of string concatenation
sig = sha256(cmd + data + secret) // sha256-hash from concatenated string, 64 chars
Example:
javascript
sig = sha256("testCmd" + "value=1" + "verySecretString");
sig == "18beeebac7b9889627aa67598faa50625cf400cd3073d0c0dc940ab3b8c6ae49"; // trueRequest status and error handling
On success the response would be the following (parameter “out=json”):
json
{"status": "ok", "data": {...}}On error:
json
{"status": "error", "error": {"code": 3601, "text": "Некорректно заполнены поля: face"}}Script for Postman
This pre-script will help configure the working environment in Postman for convenient interaction with the Giftery API.
javascript
/**
* GET https://{{host}}?cmd=Test&data=[]&sig={{sig}}&id={{id}}
**/
const clientID = 'YOUR_ID';
const secretKey = 'YOUR_SECRET';
const apiHost = 'API_HOST';
let url = pm.request.url.toString();
let _cmd = getQueryParameter(url, 'cmd');
let _data = getQueryParameter(url, 'data');
let concatenatedString = _cmd + _data + secretKey;
let signature = CryptoJS.SHA256(concatenatedString).toString(CryptoJS.enc.Hex);
pm.environment.set('sig', signature);
pm.environment.set('id', clientID);
pm.environment.set('host', apiHost);
function getQueryParameter(url, parameterName) {
const queryString = url.split('?')[1];
if (!queryString) return "";
const paramPairs = queryString.split('&');
for (const pair of paramPairs) {
const [key, ...rest] = pair.split('=');
if (key === parameterName) {
return decodeURIComponent(rest.join('='));
}
}
return "";
}