Подпись запросов
Все запросы должны отправляться методом POST.
Запрос должен быть подписан.
Для подписания запросов Content-Type application/json необходимо использовать MD5-хэш тела запроса, закодированный в base64 объединенный с вашим закрытым ключом API.
Передаваемый JSON должен быть отсортирован в алфавитном порядке.
Для подписания запросов отличающихся от Content-Type application/json вам необходимо закодировать пустую строку в base64 и объединить ее с вашим закрытым ключом API.
В каждым запросе необходимо передавать 2 параметра в Header:
Parameter
Описание
Merchant
Merchant ID, который Вы можете найти в личном кабинете мерчанта в разделе интеграция
Signature
Подписанное тело запроса
Пример подписи запросов с Content-Type application/json
const md5 = require('md5');
const API_KEY = '6b8dcc0cd0bf4e42986d6b4da7edbfd5';
const data = {
"amount": "30000",
"currency": "UZS",
"order_id": "122251322334",
"payment_type": "HUMOP2P",
"additional_data": "example",
"url_callback": "https://example.com/callback",
"url_success": "https://example.com/url_success",
"url_error": "https://example.com/url_error",
"fingerprint": "f23b9d67-9cee-4096-b9d3-492efbf32471"
};
const getSortedObject = (obj) => {
if (typeof obj !== "object" || Array.isArray(obj) || obj === null) return obj;
const sortedObject = {};
const keys = Object.keys(obj).sort();
keys.forEach(key => sortedObject[key] = getSortedObject(obj[key]));
return sortedObject;
}
const sortedObject = getSortedObject(data);
const json = JSON.stringify(sortedObject).replace(/[']/g, '');
const signature = md5(`${Buffer.from(json).toString('base64')}${API_KEY}`);Last updated