Я не особо углубился в джанго и подписи
Я пытаюсь создать подпись на основе заданных требований
i = мое имя пользователя, v = срок действия и s = подпись
i: MYUSERNAME
v: UNIX TIMESTAMP + 2 часа
a: MY_API_KEY
s: ПОДПИСЬ SHA1, то есть ("i = MYUSERNAME & v = (UNIX_TIMESTAMP + API_KEY)")
Что у меня есть до сих пор.
import hashlib
import datetime
from datetime import timedelta
import time
now = datetime.datetime.now()
now = now + timedelta(hours=2)
seconds = time.mktime(now.timetuple())
seconds = seconds
API = "87df234207v4444444"
signature = hashlib.sha1()
signature.update("i=MYUSERNAME&v=%s%s" % (seconds, API))
Затем, когда я пингую URL, я получаю ответ «Плохая подпись»
Опять же, мои знания в этой области ограничены, ваша помощь очень ценится
и правильный iframe для получения правильного кода: http://api.myurl.com/i=MYUSERNAME&v=UNIX TIMESTAMP + 2 HOURS&s=MY VALID SIGNATURE
PDF документация
Представьте, что нам нужно вычислить подпись для следующего URI:
http://framed.incloode.com/index.php?i=TEST&arg1=val1&arg2=val2&t=123
Метод для расчета подписи заключается в следующем:
- Просмотрите полный список параметров и значений,
- Добавьте их в одну длинную строку безопасного HTML-строки, как обычный запрос GET,
- Чтобы указать, когда эта ссылка должна быть действительной, необходимо добавить действительность.
Срок действия - метка времени UNIX - для срока действия 2 часа должно быть передано значение time () + 7200. Эта достоверность (параметр и значение) также должна быть добавлена в строку для подписи.
Для вышеупомянутого URI это теперь будет выглядеть так:
я = TEST & арг1 = знач1 & арг2 = знач2 & т = 123 & v = 1444567890
Запросы в исходном URI должны быть заменены этим списком.
- Собранная выше строка затем декодируется из HTML (htmlspecialchars_decode ()), поэтому в итоге получается строка, которая выглядит следующим образом:
я = ТЕСТ & arg1 = val1 & arg2 = val2 & t = 123 & v = 1444567890
- «INCLOODE_API_SECRET», который вы предоставили, должен быть добавлен к этой строке:
я = TEST & arg1 = val1 & арг2 = значение2 & т = 123 & v = 1444567890 ** INCLOODE_API_SECRET **
- Затем, наконец, должна сгенерироваться контрольная сумма SHA1 этой строки. Затем она добавляется в список параметров / значений, полученный на шаге (3).
Это может выглядеть так:
http://framed.incloode.com? я = TEST & арг1 = знач1 & арг2 = знач2 & т = 123 & v = 1444567890 & s = abcdef0123456789 * * тысячу пятьдесят-одна