Задача
Разработать интеграцию с платежным агрегатором для приёма платежей от клиентов. Взаимодействие должно происходить исключительно через сторонний сервис (hosted-форма) - ваш сервер не должен принимать реквизиты карт (безопасность по PCI DSS).
Функциональные требования
1. Аутентификация
- Использовать Public ID (идентификатор магазина) и API Secret (секретный ключ).
- Переключение между тестовым и боевым окружением через одну конфигурационную переменную.
2. Функция генерации платежной ссылки
Написать функцию, которая на вход принимает:
- Сумму заказа
- Уникальный номер заказа
- Email клиента (для отправки электронного чека)
- Краткое описание услуги или товара
Функция должна возвращать готовую ссылку формата «https://...оплата/…», при переходе на которую пользователь попадает на hosted-форму платежного агрегатора.
3. Обработка вебхуков (уведомлений о платежах)
- Принять уведомление от платежного агрегатора по факту успешной оплаты.
- Проверить подпись через заголовок Content-HMAC - защита от подделки запросов.
- Обновить статус заказа во внутренней системе.
4. Тестовый режим
- Возможность переключать интеграцию между рабочим (продакшн) и тестовым режимом с помощью одного флага/конфига (например «TEST_MODE = True»).
- В тестовом режиме использовать тестовую учетную запись (test account) и тестовые ключи.
Дополнительно
Код должен быть написан так, чтобы не использовались названия конкретных компаний, сайтов, телефонов или email. Вся конфиденциальная информация - в переменных окружения.