@belkinark

Как проверять оплату в эквайринг Тинькофф?

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.'}
  • Вопрос задан
  • 1442 просмотра
Решения вопроса 1
@belkinark Автор вопроса
Разобрался с проблемой.
tokentr = token[1]["Password"] + x["PaymentId"] + token[0]["TerminalKey"]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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