Tash1moto
@Tash1moto

В чем может быть проблема при отправке запроса privatbank API?

Здравствуйте.
Нужна помощь с privatbank api.
делал всё по документации - https://api.privatbank.ua/#p24/balance

from requests import post
from hashlib import sha1,md5
from re import sub,search

url = "https://api.privatbank.ua/p24api/balance"
xml_string = open('test.xml','r').read()
sign = str(search('\w{32}',xml_string).group())
sha1_md5_sign = sha1(md5(sign).hexdigest()).hexdigest()
data = str(sub(sign, sha1_md5_sign, xml_string))
res = post(url, data=data, headers={'Content-Type':'application/xml; charset=UTF-8'})

print data
print res.text


то что отправляю ( data ):
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0">
	<merchant>
		<id>133777</id>
		<signature>ec57cf1953d1027e0aae08e1d09f05fbcf3e6c20</signature>
	</merchant>
	<data>
		<oper>cmt</oper>
		<wait>0</wait>
		<test>0</test>
		<payment id="">
		<prop name="cardnum" value="1337133713371337" />
		<prop name="country" value="UA" />
		</payment>
	</data>
</request>


test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0">
	<merchant>
		<id>133777</id>
		<signature>p99CtLx7FR2rZ7ux78C41xmlGGjHfsec</signature>
	</merchant>
	<data>
		<oper>cmt</oper>
		<wait>0</wait>
		<test>0</test>
		<payment id="">
		<prop name="cardnum" value="1337133713371337" />
		<prop name="country" value="UA" />
		</payment>
	</data>
</request>


Пароль нормально шифруется в sha1md5, 40 символов, по идее всё должно быть нормально.
Но, в результате получаю ответ:
<?xml version="1.0" encoding="UTF-8"?><response version="1.0"><data><error message ="invalid signature" /></data></response>


Убирал табы, пробелы, писал в одну строку, всегда один ответ "invalid signature"
  • Вопрос задан
  • 1054 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы