📗
Руководство мерчанта
  • Регламенты
    • Политика сотрудничества
    • Обработка апелляций
    • Курс USDT
    • Формулы расчетов
  • Личный кабинет
    • Ввод USDT
    • Вывод USDT
    • Автоматический вывод USDT
    • Персональный сайт апелляций
    • История баланса
    • Экспорт статистики
    • История транзакций
  • API
    • Авторизация
      • Запрос токена
      • Подпись
    • Просмотр баланса
    • Вывод баланса
    • Заявки на ввод
      • Создание заявки на ввод
        • Для карт
        • Для счёта
        • Для СБП
        • Трансгран
        • Для SberPay
        • Для TPay
        • Для эквайринга
        • Для платёжной формы
        • Для QR НСПК
        • Для карт (внутрибанк)
        • Для СБП (внутрибанк)
      • Просмотр списка заявок на ввод
      • Просмотр заявки на ввод
      • Просмотр статуса заявки на ввод
      • Отмена заявки на ввод
      • Колбэк по заявке на ввод
    • Заявки на вывод
      • Создание заявки на вывод
        • Для карты
        • Для СБП
      • Просмотр списка заявок на вывод
      • Просмотр заявки на вывод
      • Просмотр статуса заявки на вывод
      • Колбэк по заявке на вывод
    • Апелляции
      • Создание апелляции
      • Отмена апелляции
      • Список апелляций
      • Просмотр апелляции
      • Колбэк по апелляциям
    • Справочники
      • Банки
        • Список банков
    • Курсы валют
Powered by GitBook
On this page
  1. API
  2. Авторизация

Подпись

Подпись создается для обеспечения целостности запроса.

Подпись формируется путем объединения тела запроса и пути запроса с параметрами запроса, после чего выполняется хэширование с использованием алгоритма HMAC SHA-256 и секрета ( sign_token) , предоставленного менеджером HM.

Пример:

{
  "amount": 123.456
}/v2/merchant/transactions?queryParam1=123&queryParam2=456

Примеры кода для вычисления хэша:

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 signature
function 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');
}
using System.Security.Cryptography;

public string CalculateSignature(string url, string requestJson, string secret)
{
    string signatureString = requestJson + url;

    using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secret)))
    {
        byte[] hashBytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(signatureString));
        return Convert.ToBase64String(hashBytes);
    }
}
import org.apache.commons.codec.digest.HmacUtils;
import org.apache.commons.codec.binary.Hex;
import java.net.URI;
import java.nio.charset.StandardCharsets;


public String calculateSignature(URI url, String requestJson, String secret) {
   String signatureString = requestJson + url.getPath() + url.getQuery();

   byte[] hmacSha256 = HmacUtils.hmacSha256(secret.getBytes(StandardCharsets.UTF_8), signatureString);
   
   return Hex.encodeHexString(hmacSha256);

}

PreviousЗапрос токенаNextПросмотр баланса

Last updated 4 months ago