Оплата в WooCommerce обрывается на последнем шаге
Типичная ситуация. Домен, название компании и скриншоты кабинета здесь не публикуются.
Магазин на WooCommerce принимает заказ до экрана оплаты, дальше цепочка рвётся. Иногда банк списывает деньги, а статус в магазине остаётся «ожидает оплаты». Иногда кнопка оплаты сразу показывает отказ, хотя тестовая карта банка в личном кабинете проходит. Ниже разбор существующего модуля, не запуск нового магазина.
Что обычно видно до правки
- Заказ есть в WooCommerce, оплаты в журнале модуля нет.
- Адрес возврата с платёжной страницы не совпадает с адресом сайта или режется редиректом на HTTP.
- В кабинете банка боевой магазин, на сайте остались тестовые ключи — или наоборот.
- После смены домена или установки SSL ссылки уведомлений указывают на старый адрес.
Интеграция оплаты
Модуль должен и создать платёж, и принять уведомление, что банк провёл его. Ломается чаще второе: сайт не отвечает на callback, отвечает редиректом на главную или проверяет подпись старым секретом. Пока уведомление не доходит, склад и письмо клиенту живут отдельно от денег.
Подключаем эквайринг Сбер, Т-Банк и ЮKassa. Другие платёжные бренды в эту схему не берём. Если модуль уже стоит и перестал проводить оплату, это ремонт существующей оплаты. Если способа оплаты на сайте ещё нет — это новое подключение, другая оценка.
Безопасность
Секретные ключи в открытом виде в примечании к заказу или в публичном JS не хранят. Страница оплаты должна открываться по HTTPS, иначе браузер или банк обрывает возврат. Доступ к настройкам модуля оставляют роли, которой нет у редактора контента.
Скорость
Тяжёлая страница оформления с десятком плагинов на каждый шаг сама по себе не «ломает банк», но человек закрывает вкладку до возврата. Кеш страницы оформления, который запоминает чужую корзину или nonce, даёт отказ уже на следующем заказе. Оформление заказа из полностраничного кеша исключают.
SEO-техника
Страницы корзины, оформления и «заказ принят» обычно закрывают от индекса. Если закрыли слишком широко и банк возвращает покупателя на закрытый редиректом URL, человек видит пустую корзину при уже созданном заказе. Технические адреса оплаты не должны становиться посадочными, но адрес возврата обязан открываться.
Что делать
Нужен номер заказа, который не перешёл в «оплачен», и доступ к модулю, не к личному кабинету покупателя. Страница услуги — оплата и интеграции.
Срок и стоимость
Исправить существующую оплату, если модуль уже установлен, — от 2 000 ₽. Подключить новую оплату — от 10 000 ₽. Точная сумма после того, как ясно, какой из двух случаев на сайте и на каком шаге обрывается заказ.
Похожая ситуация?
Напишите в чат, что происходит на сайте. Помощник ответит сразу. Программист в рабочее время обычно отвечает в течение часа. Работу начинаем после согласования. Ссылку на бесплатную проверку главной можно приложить из раздела проверки сайта.
