Есть ли опыт работы с платежными системами
Что проверяют
Не столько список провайдеров, сколько понимание того, где в платежах всё ломается: двойные списания, потерянные уведомления, расхождение статусов. Следом обычно спрашивают: что будет, если вебхук пришёл дважды или не пришёл вовсе.
Как отвечать
Рассказывайте о своём проекте по каркасу:
- провайдер и схема: с кем интегрировались (ЮKassa, CloudPayments, Т-Банк, СБП) и как. Если карта вводится на платёжной странице провайдера, ваши серверы её данных не видят, и объём требований PCI DSS резко сужается;
- идемпотентность: при создании платежа передаётся ключ (у ЮKassa заголовок
Idempotence-Key), и повтор после таймаута не создаёт второй платёж; - вебхуки: проверка подлинности (подпись, если провайдер её даёт, либо список IP и повторный запрос статуса через API), обработка в фоне через Celery, дедупликация по идентификатору платежа с уникальным ограничением в базе;
- статусы: платёж это конечный автомат, у ЮKassa
pending,waiting_for_capture,succeeded,canceled. Переходы только вперёд, отдельно двухстадийная оплата с холдированием и возвраты; - деньги:
Decimalили целые копейки, никогдаfloat; - сверка и чеки: регулярная сверка с реестром провайдера и фискальные чеки по 54-ФЗ, если продаёте физлицам в России.
Со стороны Python назовите детали: httpx или requests с явными таймаутами, официальный SDK провайдера, тестовый режим магазина и заглушки в тестах. Цифры приводите свои: сколько платежей в день, какая доля ошибок, что изменилось после вашей работы.
Если опыта нет, так и скажите и покажите, что знаете, где подводные камни. Тестовый магазин в пет-проекте уже даёт материал для разговора.
Где спотыкаются
Рассказывают только про «отправил запрос, получил ответ». Без идемпотентности и обработки таймаутов такая интеграция при первом сбое сети спишет деньги дважды.
Считают редирект пользователя на страницу «успешно» фактом оплаты. Источник правды это вебхук или статус из API, а до редиректа пользователь может и не дойти.
Заявляют «соблюдал PCI DSS», не понимая, что это за стандарт. Если карта вводится у провайдера, честнее сказать, что вы специально не принимали данные карт.