Пишу платежную систему для сайта на Django. Прочитал документацию по платежке Тинькофф, делаю все как там написано.
#...
data = {
"TerminalKey": "111111111",
"Amount": amount,
"OrderId": str(order_id),
"Description": description,
"DATA": {
"Email": user.email
},
"Receipt": {
"Email": "example@example.ru",
"Taxation": "patent",
"Items": [item]
}
}
token = self.generate_token(data)
data["Token"] = token
headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106",
"Upgrade-Insecure-Requests": "1",
"Accept-Encoding": "gzip, deflate, br",
"content-type": "application/json",
"Access-Control-Allow-Origin": "*",
"X-Requested-With": "XMLHttpRequest",
"Accept": "*/*"
}
data_json = json.dumps(data, ensure_ascii=False, indent=4)
headers["Content-Length"] = str(sys.getsizeof(data))
response = requests.post("https://securepay.tinkoff.ru/v2/Init", data=data_json, headers=headers)
#...
Возвращается ответ 400 от сервера, когда принтую
print(response.text)
print(response.content)
там ничего нет. При этом когда отправляю запрос на сервер Тинькофф напрямую через Postman, то все работает корректно и приходит нужный ответ от сервера. Я не понимаю в чем проблема, что только уже не перепробовал, добавлял различные хедеры, сконвертировал dict к json, но все бестолку, а через Postman все как работало, так работает.
Запрос в Postman выглядит так