Оплата и оформление
ЮKassa: почему не создаётся платёж на сайте
Магазин не открывает оплату через ЮKassa. Объясняем, какие сведения помогут отличить неверные настройки запроса от задержки ответа и ошибки перехода.
Что происходит и с чего начать
До появления платёжной формы сайт обращается в ЮKassa и просит создать операцию. В запросе передаются параметры покупки, а в ответе приходит результат создания и информация для продолжения оплаты. Если покупатель не увидел форму, это ещё не означает, что операция отсутствует. Ответ мог задержаться или потеряться после её создания. Поэтому полезно сначала найти попытку по времени и заказу, а уже затем решать, нужен ли повторный запрос и как его выполнить.
Что можно проверить самостоятельно
- Запишите номер заказа, сумму, время и текст ошибки. Посмотрите, появилась ли соответствующая операция в кабинете ЮKassa и какой у неё текущий статус.
- Уточните, работает ли интеграция в тестовом или рабочем режиме. Настройки должны относиться к нужному магазину и окружению; секретный ключ на скриншотах не нужен.
- Проверьте, возникает ли проблема при любом заказе или только с определённой суммой, составом либо способом оплаты. Это поможет выбрать один воспроизводимый пример.
Как понять результаты проверки
Разработчик сопоставляет ответ API с переданными параметрами. API — программный интерфейс, через который сайт общается с платёжной системой. Важно различать явный отказ и неизвестный результат после сетевого ожидания. Для безопасного повтора предусмотрен механизм идемпотентности: повтор одной операции должен распознаваться как повтор, а не новая покупка. Точный порядок работы проверяется по используемой версии интеграции. Сам факт получения ссылки ещё не доказывает последующее списание или изменение статуса заказа.
Что проверяет разработчик
Для этой части понадобятся доступ к настройкам, журналам ошибок или коду. Её можно передать специалисту вместе с результатами предыдущих шагов.
- Сверьте идентификатор магазина и используемый ключ с выбранным окружением. Проверьте, не смешаны ли тестовые настройки с рабочими.
- Найдите HTTP-статус и описание ошибки в ответе API. Особое внимание уделите сумме, валюте, способу подтверждения и адресу возврата.
- Если произошёл тайм-аут, проверьте, не был ли платёж уже создан. Повтор запроса без сохранённой связи с заказом может породить лишние операции.
На что обратить внимание
Сетевой тайм-аут означает отсутствие своевременного ответа, а не обязательно отсутствие платежа. Приложение должно различать отказ с известной причиной и неопределённый результат запроса.
Как исправляют причину
Исправьте параметры по конкретному ответу API и сохраняйте идентификатор созданного платежа у заказа. Для повторов используйте предусмотренный интеграцией механизм идемпотентности. Не показывайте посетителю секреты или полный технический ответ.
Как убедиться, что проблема решена
Создайте тестовый платёж, вернитесь в магазин и проверьте серверное подтверждение. Отдельно проверьте повтор нажатия: он не должен терять связь между заказом и оплатой.
После исправления проверьте создание платежа, открытие формы и получение окончательного результата магазином. Отдельно воспроизведите повторное нажатие и отменённую попытку в тестовом окружении. Согласуйте, как интерфейс сообщает о неопределённом результате: он не должен уверенно утверждать «платёж не создан», если сайт просто не дождался ответа. Для реальных покупок сначала выполняется сверка существующих операций.