Кнопка оплаты появилась, тестовый платёж прошёл, но интеграция ещё не готова. Важно проверить, как сайт узнаёт результат, связывает его с заказом и восстанавливается после ошибки связи. Для подключения ЮKassa подготовьте не только доступ к магазину, но и описание вашего процесса продажи. От него зависит работа модуля или собственного кода.
Определите способ подключения

Для распространённой CMS сначала проверьте подходящий модуль и его совместимость с установленными версиями. Для собственного приложения опишите создание платежа, подтверждение и работу с заказом отдельно. Зафиксируйте, кто хранит настройки, устанавливает обновления и разбирает сообщения об ошибках после запуска.
Тестовые и рабочие данные доступа разделите. Секретный ключ не должен попадать в код страницы, браузер или публичный репозиторий. Разработчику нужен согласованный защищённый способ получить необходимые настройки. После смены ответственного предусмотрите отзыв прежнего доступа и проверку сохранённой конфигурации.
Свяжите платёж с неизменяемым снимком заказа
Перед запросом сервер рассчитывает сумму по текущему заказу и сохраняет, что именно оплачивается. Не принимайте сумму только из поля браузера. Сохраните внутренний номер попытки и полученный идентификатор платежа. Тогда результат можно сопоставить даже после закрытия вкладки или повторного обращения клиента.
Если покупатель изменил корзину после создания платежа, определите дальнейшее поведение: новая попытка для нового состава или запрет изменения уже переданного заказа. Для условного магазина подарков добавленная упаковка не должна тихо менять сумму заказа, по которому клиент уже находится на странице оплаты.
Различайте состояния платежа
В API ЮKassa предусмотрены состояния pending, waiting_for_capture, succeeded и canceled. Сопоставляйте их с процессом магазина, учитывая выбранный одноэтапный или двухэтапный сценарий. Ожидание подтверждения не равнозначно успешному окончательному платежу. Описанное в интерфейсе состояние должно быть понятно сотруднику, который выдаёт товар.
При повторе одного и того же запроса используйте механизм идемпотентности по документации API. Повтор с тем же ключом относится к той же операции и её параметрам; новая операция требует отдельного решения. Не создавайте новый платёж после каждого сетевого таймаута, пока не установили результат прежней попытки.
Обрабатывайте уведомление на сервере
Возврат пользователя на страницу магазина не подтверждает поступление оплаты. Серверный обработчик должен проверить полученное событие предусмотренным ЮKassa способом и сопоставить платёж, сумму и валюту с вашим заказом. Не добавляйте вымышленную проверку подписи, которой нет в выбранном протоколе. Используйте актуальные требования провайдера.
Повторное событие не должно повторять письмо о выдаче, списание товара или открытие доступа. Сначала сохраните подтверждённое состояние и результат обработки, затем запускайте следующие действия в согласованном порядке. Если обработчик недоступен, нужен журнал и способ последующей сверки по идентификатору платежа.
Проведите тест до переключения магазина
Проверьте успех, отмену, повторный запрос и закрытие вкладки после оплаты. Отдельно пройдите возврат, если он входит в объём работ. Смотрите состояние в ЮKassa, в магазине и в связанных системах. Успех только на одном экране не показывает, что вся цепочка завершилась.
При переходе к рабочему режиму проверьте ключи, адрес уведомлений, доступность сервера и права сотрудников. Состав данных для расчётных документов согласуйте заранее с ответственным за них и требованиями подключения. Запишите порядок отката настроек и наблюдения за первыми реальными операциями. Подключение считается пригодным к работе, когда ошибки можно обнаружить и разобрать без догадок по словам покупателя.
Связанные материалы
Оплата прошла, заказ не обновился: как сверять состояния
Идемпотентность: как не выполнить одну операцию два раза
Проверка оплаты: успешный платёж, отказ, повтор и возврат
Документация для проверки
Формат взаимодействия и идемпотентность: ЮKassa
Ссылки на документацию проверены 8 октября 2026 года. Названия настроек и возможности сервисов могут меняться; перед внедрением сверяйте актуальные условия.
Коротко о важном
Можно ли хранить секретный ключ ЮKassa в JavaScript?
Нет. Секретные настройки нужны серверной части и должны храниться вне публичного кода. Для браузера используйте только предусмотренные выбранным сценарием данные.
Страница успешной оплаты доказывает, что заказ оплачен?
Нет. Проверяйте доверенный серверный результат и его связь с конкретным платежом, заказом, суммой и валютой.
Как повторить запрос после сетевого сбоя?
Сначала установите состояние прежней попытки. Для повторения той же операции используйте механизм идемпотентности ЮKassa с тем же ключом и параметрами по документации.



