Подпись
Подпись создается для обеспечения целостности запроса.
Подпись формируется путем объединения тела запроса и пути запроса с параметрами запроса, после чего выполняется хэширование с использованием алгоритма HMAC SHA-256 и секрета ( sign_token) , предоставленного менеджером HM.
Пример:
{
"amount": 123.456
}/v2/merchant/transactions?queryParam1=123&queryParam2=456Для запросов с Content-Type = multipart/form-data, для подписи используется только путь запроса с параметрами запроса.
Примеры кода для вычисления хэша:
import hashlib
import hmac
def calculate_signature(url, request_json, secret):
request_json_string = json.dumps(request_json)
parsed_url = urlparse(url)
signature_string = request_json_string + parsed_url.path + parsed_url.query
signature = hmac.new(secret.encode('utf-8'), signature_string.encode('utf-8'), hashlib.sha256).hexdigest()
return signaturefunction calculateSignature($url, $requestJson, $secret) {
$signatureString = $requestJson.parse_url($url, PHP_URL_PATH).parse_url($url, PHP_URL_QUERY);
$signature = hash_hmac('sha256', $signatureString, $secret);
return $signature;
}const crypto = require('crypto');
function calculateSignature(url, requestJson, secret) {
const signatureString = requestJson + url.pathname + url.search;
const hmac = crypto.createHmac('sha256', secret);
hmac.update(signatureString);
return hmac.digest('hex');
}Last updated