Формирование подписи
Запросы для взаимодействия с сервисом подписываются с использованием алгоритма SHA256.
Подпись формируется отдельно для каждого запроса.
Для формирования подписи, выполните следующие шаги:
Тело запроса сортируется по алфавиту и кодируется в BASE64.
Конкатенируем кодированное тело запроса и secret_key(предоставляется отдельно)
Используя хэш функцию SHA256 хэшируем полученный результат конкатенации
Добавляем подпись в заголовках запроса X-Signature
В формировании подписи не учавствуют ключи имеющие вложенную структуру:
info
Поля запроса заполненные как "" не участвуют в формировании подписи./
import json
import base64
import hashlib
#Тело запроса меняется в зависимости от запроса
request_data = {
"agent": "tarlan",
"project": "mobile",
"service_code": "101",
}
#Для примера взяли secret 12345
secret = "12345"
sorted_data = json.dumps(
request_data,
sort_keys=True,
ensure_ascii=False,
separators=(',', ':'),
)
base64_encoded_data = base64.b64encode(sorted_data.encode()).decode()
data_to_sign = base64_encoded_data + secret
sha256_hash = hashlib.sha256(data_to_sign.encode()).hexdigest()
print("Sign:",sha256_hash)
Last updated