170 похожих чатов

Всем привет, подключаю платежку у них в доке сказано как

сделать подпись :

The signature message is built by concatenating the following data with a line break "\n"

HTTP Method ("POST")
MD5 hash of payload (the XML itself)
Content-Type header (e.g. "text/xml; charset=utf-8")
Timestamp as sent in Date header
Additional custom headers (usually empty)
Request URI string (usually "/transaction")
Afterwards you build the HMAC digest with SHA512 of this message with the shared secret as key. The digest should be generated in binary (not hexadecimal) and then base64 encoded.

вот как я это делаю:

xml = '<?xml version='1.0' encoding='utf-8'?>...'
now = datetime.utcnow()
form = 'EEE, dd LLL yyyy hh:mm:ss'
date = format_datetime(now, form, locale='en') + ' GMT'

headers = {
'Content-Type': 'text/xml; charset=utf-8',
'Date': date,
'Authorization': ''
}

b64body = base64.b64encode(xml.encode())
signature_string = f"POST\n{b64body}\n{headers['Content-Type']}\n{headers['Date']}\n/transaction\n{shared_key}"
sign = base64.b64encode(hashlib.sha512(signature_string.encode()).hexdigest().encode())
headers['Authorization'] = f'Gateway {api_key}:{sign}'

но оно его не принимает, подскажите пожалуйста правильно ли я заинкодил sign согласно описанию ?

1 ответов

14 просмотров

во-первых, не надо так строить хмл

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта