Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SdkError: Incorrect webhook request token #5

Open
TimPchelintsev opened this issue Oct 22, 2023 · 2 comments
Open

SdkError: Incorrect webhook request token #5

TimPchelintsev opened this issue Oct 22, 2023 · 2 comments

Comments

@TimPchelintsev
Copy link
Contributor

Успешно принимал несколько месяцев платежи на самописном сайте, рабочий терминал в Тинькофф Кассе включен,
ключи не менялись, на днях после успешной оплаты в функции обработки webhook без изменения кода там начала вылетать ошибка:

SdkError: Incorrect webhook request token
    at WebhookHandler.handleWebhookRequest (/var/task/app/node_modules/@jfkz/tinkoff-payment-sdk/dist/webhook-handler/webhook-handler.js:31:19)
    at tinkoffWebhook (/var/task/app/.next/server/pages/api/webhooks/tinkoff.js:230:47)
    at /var/task/app/node_modules/next/dist/server/api-utils/node.js:440:16
    at /var/task/app/node_modules/next/dist/server/lib/trace/tracer.js:113:36
    at NoopContextManager.with (/var/task/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7057)
    at ContextAPI.with (/var/task/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:516)
    at NoopTracer.startActiveSpan (/var/task/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:18086)
    at ProxyTracer.startActiveSpan (/var/task/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:18847)
    at /var/task/app/node_modules/next/dist/server/lib/trace/tracer.js:102:107
    at NoopContextManager.with (/var/task/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7057)
    at ContextAPI.with (/var/task/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:516)
    at NextTracerImpl.trace (/var/task/app/node_modules/next/dist/server/lib/trace/tracer.js:102:32)
    at apiResolver (/var/task/app/node_modules/next/dist/server/api-utils/node.js:438:63)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async NextNodeServer.runApi (/var/task/app/node_modules/next/dist/server/next-server.js:668:9)
    at async Object.fn (/var/task/app/node_modules/next/dist/server/next-server.js:1132:35) {
  payload: {}
}
Error: Runtime exited without providing a reason
Runtime.ExitError

Посмотрел по коду библиотеки, в функции handleWebhookRequest:

// Validating request token
// -----

const checkToken = generateSignature({
  payload,
  password,
});

if (payload?.Token !== checkToken) {
  throw new SdkError({
    payload,
    message: 'Incorrect webhook request token',
  });
}

Выходит, если в коде библиотеки и на моей стороне ничего не менялось, что-то изменилось на стороне Тинькофф?

@TimPchelintsev
Copy link
Contributor Author

TimPchelintsev commented Oct 22, 2023

Протестировал платежи локально на тестовом терминале, работает как и прежде.
Выходит, перестало работать только на продакшн(vercel), там ключи как стояли так и стоят.
Нашел документацию Тинькофф, https://www.tinkoff.ru/kassa/dev/payments/#tag/Notifikacii-Merchanta-ob-operaciyah/Notifikacii-po-HTTP(s)/Proverka-tokenov

Сверил с реализацией в коде библиотеки, изменений тоже не видно.
Написал в чат Тинькофф Бизнес, посмотрим что они скажут.

@jfkz
Copy link
Owner

jfkz commented Oct 25, 2023

@TimPchelintsev

Попробуй зафиксировать на версии 1.3.2, например. Я принял коммит исключительно по СДК: fa69766, но у меня не было возможности его протестировать на реальном примере. У Тинькова нормальная практика расхождения реального АПИ и задокументированного, поэтому вполне может быть баг в именовании полей.

Либо действительно действовать по ответу от саппорта.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants