API Яндекс.Деньги: отделите кошелёк от приёма платежей
Название «API Яндекс.Деньги» в старых статьях может смешивать операции электронного кошелька и интернет-эквайринг. Для новой интеграции сначала определите сервис и договор: API кошелька и API ЮKassa — разные интерфейсы с разной авторизацией.
Приём платежа через ЮKassa
- Используйте актуальную документацию и тестовый магазин. Не копируйте старый endpoint или токен из статьи.
- Создавайте платёж на сервере с уникальным ключом идемпотентности. Сумму и состав заказа берите из доверенной серверной модели.
- Если требуется подтверждение покупателя, направляйте его в предусмотренный платёжный сценарий.
- Проверяйте фактический статус платежа через API/обработку уведомлений, прежде чем выдавать заказ.
Состояния важнее страницы успеха
Возврат пользователя на return URL не доказывает оплату. Различайте pending, waiting_for_capture, succeeded и canceled; нужные переходы зависят от выбранного способа подтверждения и режима capture. Повтор уведомления не должен повторно выдавать товар.
Что проверить в тестовой среде
- Успех, отмену, таймаут и повтор того же запроса.
- Несоответствие суммы и заказа, дублирующие уведомления.
- Хранение секретного ключа только на сервере и отсутствие его в логах.
- Повторное получение статуса при сомнительном результате.
Список способов оплаты, доступность сервиса и договорные требования проверяются у провайдера. Этот материал объясняет структуру интеграции и не обещает универсальных способов оплаты или гарантий защиты данных.