Skip to main content
Полностью рабочий пример: маленький сервер, который создаёт платёж, отдаёт покупателю ссылку на оплату и принимает вебхук о поступлении, помечая заказ оплаченным. Это тот же поток, что в Быстром старте, но собранный в один запускаемый файл. Дальше — две версии: Python (Flask) и Node.js (Express). Логика одинаковая.

Что делает пример

Хранилище заказов — простой словарь в памяти (в реальном приложении замените на БД).

Код примера

app.py

Запуск

Проверка:

На что обратить внимание в примере

  • Сырое тело для вебхука. И во Flask (request.get_data()), и в Express (express.raw) подпись проверяется по сырым байтам. express.json() на вебхук‑роуте всё сломает.
  • Два разных секрета. SECRET — для подписи исходящих запросов; WEBHOOK_SECRET — для проверки входящих вебхуков. Это разные значения из разных источников.
  • Дедупликация. SEEN защищает от повторной выдачи товара — вебхук может прийти несколько раз.
  • 2xx в конце. Отвечаем ok только после обработки; при ошибке вернули бы не‑2xx, чтобы Oblodai повторил доставку.
  • В памяти — только для примера. ORDERS/SEEN замените на БД, иначе после перезапуска данные и дедуп‑ключи потеряются.

Что дальше


Связанные страницы

Быстрый старт

Приём первого платежа

Объект вебхука

POST /v1/payment