Задать вопрос
DJWOMS1
@DJWOMS1
Веб-программист

Контрольная подпись на python?

Такая проблема. Мой сайт и сайт платежной системы делают разные контрольные суммы Код

m_shop = "297863614"
            m_orderid = "1"#str(user)
            m_amount = "1.00"#str(money)
            m_curr = "RUB"
            description = "Test"
            m_desc = binascii.b2a_base64(description.encode('utf8'))[:-1]
            m_key = "123"
            list_of_value_for_sign = map(str, [m_shop, m_orderid, m_amount, m_curr, m_desc,
                                                    m_key]) 
            result_string = ":".join(list_of_value_for_sign)
            sign_hash = sha256(result_string.encode())
            sing = sign_hash.hexdigest().upper()

            return render(request, 'profuser/payeer_form.html', {'money': money, 'user': user, 'description': m_desc, 'sing': sing})

Получаю

"m_sign":"8C0EA00770F5A68C3436A67E3C6D808AF4FB5EDCCF908E6A4B4EC325FE77DF7F"
А вот сайт который дала тех. поддержка, верная сумма rextester.com/l/python Код

import binascii
from hashlib import sha256

m_shop = "297863614"
m_orderid = "1"
m_amount = "1.00"
m_curr = "RUB"
description = "Test"
m_desc = binascii.b2a_base64(description.encode('utf8'))[:-1]
m_key = "123"
list_of_value_for_sign = map(str, [m_shop, m_orderid, m_amount, m_curr, m_desc,
                                                        m_key]) 
result_string = ":".join(list_of_value_for_sign)
sign_hash = sha256(result_string.encode())
sing = sign_hash.hexdigest().upper()

print sing

Сумма 63AD11CA912BE9E55A7BBBCC4A88BF36E39C6C314929C536C65982AD04F2751D Импорт на моем сайте есть.

В чем проблема?
  • Вопрос задан
  • 224 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы