6 часов мучаюсь с этой проблемой. В официально документации читал, но так и не понял какой токен использовать. Перепробовал много вариантов, но результат всё тот же. Для проверки платежей использую GetState запрос (
https://securepay.tinkoff.ru/v2/GetState). Ссылку для оплаты создаёт правильно.
post = {
"TerminalKey": "",
"Amount": "100",
"OrderId": "112113",
"Description": "testingintestsss12",
"DATA": {
"Phone": "+71234567890",
"Email": "a@test.com"
},
"Receipt": {
"Email": "a@test.ru",
"Phone": "+79031234567",
"EmailCompany": "b@test.ru",
"Taxation": "osn",
"Items": [
{
"Name": "тест",
"Price": 100,
"Quantity": 1.00,
"Amount": 100,
"Tax": "vat10"
}
]
}
}
token = [ {"Amount": post["Amount"]},
{"Description": post["Description"]},
{"OrderId": post["OrderId"]},
{"Password":""},
{"TerminalKey": post["TerminalKey"]}]
tokentr = token[0]["Amount"] + token[1]["Description"] + token[2]["OrderId"] + token[3]["Password"] + token[4]["TerminalKey"]
tokensha256 = str(hashlib.sha256(tokentr.encode()).hexdigest())
x = requests.post('https://securepay.tinkoff.ru/v2/Init', json=post).json()
print(x)
checkopl = {
"TerminalKey" : "",
"PaymentId" : x["PaymentId"],
"Token" : tokensha256
}
y = requests.post('https://securepay.tinkoff.ru/v2/GetState', json=checkopl).json()
print(y)
Ошибка:
{'Success': False, 'ErrorCode': '204', 'Message': 'Неверные параметры.', 'Details': 'Неверный токен. Проверьте пару TerminalKey/SecretKey.'}