Вебформат

Главная/Блог/Сайты и e-commerce

Сайты и e-commerce8 октября 20267 мин

Оплата и бонусы подключены, но в тестовом режиме: три проверки для владельца магазина

Магазин одежды открылся на боевом домене. На витрине бонусы и три способа оплаты, в кабинете сервиса лояльности видны события с сайта. Шесть дней заказ при этом нельзя было оплатить по-настоящему, двенадцать дней покупатели видели бонусы, которых в боевом кабинете не существовало. Показываем три проверки, которые отличают работающую интеграцию от подключённой к песочнице.

Тестовый и боевой контур сервиса · оплата и бонусы магазина
Тестовый и боевой контур сервиса · оплата и бонусы магазина

Владельцу магазина сообщают: оплата подключена, бонусная программа подключена. Он открывает сайт и видит кнопки оплаты и блок с бонусами, заходит в кабинет сервиса и видит события с сайта. Всё на месте, проверять как будто нечего.

Так выглядел мультибрендовый магазин одежды на 1С-Битрикс, с которым мы работаем. Сайт переехал на боевой домен и открылся для поисковиков. Программа лояльности в это время общалась с тестовым контуром сервиса, а все три платёжные системы стояли в тестовом режиме. Первая настоящая оплата стала возможна через шесть дней после открытия, программа лояльности вышла из песочницы через двенадцать.

Что было видно и что происходило на деле

Что видно на сайте и в кабинетеЧто происходило на деле
Покупателю показываются бонусыБонусы считал тестовый контур сервиса, в боевом кабинете их не существовало
Кнопки трёх способов оплаты на местеВсе три платёжные системы стояли в тестовом режиме: купить на сайте было нельзя
В кабинете сервиса видны события с сайтаСобытия приходили в тестовый кабинет, а менеджер сервиса смотрел в боевой

Обнаружилось это по чужому вопросу. Менеджер сервиса лояльности написал: "Не вижу, чтобы вам выдавался API-ключ". Он смотрел в боевой кабинет, а сайт к тому времени месяц работал с тестовым.

Из тестового режима интеграции выходили по очереди. Сначала в боевой режим перевели рассрочку, на следующий день - оплату картой и частями и онлайн-кассу, ещё через пять дней - программу лояльности.

Почему тестовый режим не заметен

У большинства сервисов, которые подключают к магазину, два независимых контура. Тестовый, его называют песочницей, нужен для отладки: у него свой адрес, свои ключи доступа и свой кабинет. Боевой устроен так же, только в нём настоящие деньги и настоящие покупатели.

Сайт может работать с одним контуром, пока вы смотрите в другой. Панель управления сайта разницы не показывает: ключ вписан, модуль включён, запросы уходят и получают ответы. Витрина тоже не показывает: песочница отвечает сайту так же, как боевой сервис.

Молчаливые поломки у платёжных интеграций встречаются и в боевом режиме. Мы разбирали случай, когда платёжный виджет показывал баллы и терял рассрочку без единой ошибки в консоли.

Проверка первая: живой запрос к обоим адресам сервиса

Однозначный ответ даёт сам сервис. Мы отправили с сервера сайта запрос с ключом магазина на оба адреса сервиса лояльности - тестовый и боевой.

Запрос с ключом магазина на оба адреса сервиса
Сервер сайта
ключ из настроек магазина
один и тот же запрос
Тестовый адрес
ключ принят
интеграция работает здесь
200
Боевой адрес
доступ запрещён
этот ключ здесь не знают
403
Код 200 значит, что сервис принял запрос. Код 403 - что отказал в доступе.

Двух запросов хватило, чтобы закрыть вопрос, в каком контуре живёт интеграция. Панель управления сайта такого ответа не даёт.

Владельцу для такой проверки доступ к серверу не нужен. Попросите подрядчика показать, что отвечает боевой адрес сервиса на ключ из настроек сайта. С оплатой проще: оформите заказ на небольшую сумму и оплатите его своей картой. В боевом режиме с карты спишутся деньги и на почту придёт кассовый чек. Нет списания или чека - оплата до боевого режима не доведена. Заказ потом верните: заодно проверите возврат.

Дальше мы восстановили хронологию по следам на сервере: когда появился модуль сервиса, когда ушёл первый запрос, менялся ли ключ.

Проверка вторая: довести функцию до суммы в чеке

Программу лояльности мы перевели в боевой контур. Ключ, адрес сервиса и код точки продаж меняли одним движением: если поменять их порознь, заказы и бонусы уезжают в разные точки кабинета. До и после перевода проверили живым запросом: боевой адрес принял ключ, первый расчёт корзины с витрины ушёл туда же.

Расплатиться бонусами после этого всё равно было нельзя. Списание бонусов на сайте применяет правило работы с корзиной внутри самого магазина, модуль сервиса только считает скидку. Правило выключили тремя неделями раньше, и тогда это было разумно: в песочнице бонусы ненастоящие, платить ими незачем.

Снаружи поломки не видно. Блок "Оплатить бонусами" работает, сумма скидки считается, а в итог заказа не попадает.

Отсюда вторая проверка. Сервис может отвечать по-настоящему, а функция до денег в чеке не доходит. Ловит это только сквозной сценарий: положить товар в корзину, применить бонусы, дойти до суммы к оплате и сверить цифру. Мы сверяли цену товара и итог корзины до включения правила и после.

Проверка третья: пройти путь покупателя заново в боевом режиме

Через неделю после перевода клиент прислал снимок экрана из кабинета сервиса: покупатель зарегистрировался на сайте, поле "Карта" пустое, бонусов ноль. За регистрацию на сайте обещана тысяча бонусов.

Сайт отработал штатно: передал сервису имя, телефон и почту, покупатель стал участником программы. Приветственные бонусы в боевом кабинете начисляет автоматическая рассылка сервиса, и доходит она только до тех, у кого есть карта лояльности. В розничном магазине карту выдают на кассе, и через минуту на неё приходит тысяча бонусов. Покупатель с сайта карты не получает. Выдать номер карты сайт не может: при регистрации сервис принимает от сайта только готовый номер.

В тестовом кабинете было иначе: бонусы приходили каждому, кто зарегистрировался на сайте, через минуту и без карты. Перед запуском сценарий проверили, и он прошёл. Настройки тестового кабинета в боевой не переехали.

За неделю без приветственных бонусов остались около десяти покупателей с сайта. Одна покупательница через день пришла в магазин и получила карту на кассе: через минуту ей начислили тысячу бонусов, через две она оплатила ими покупку. Остальным нужна настройка рассылки в кабинете сервиса, а пропущенные бонусы начисляют вручную.

Проверка ключа и адреса сервиса такого не показывает. После перевода в боевой режим каждый обещанный покупателю сценарий проходим заново, как покупатель: регистрируемся, ждём бонусы, оплачиваем ими заказ.

Ключ, который существует в одном экземпляре

Пока восстанавливали хронологию, нашлась ещё одна слабая точка. Ключ доступа к сервису существовал в единственном экземпляре - внутри базы сайта. Кто его выдал, не записано ни в переписке, ни в материалах проекта.

Такой ключ работает, пока сайт никто не переустанавливает. После переезда или смены подрядчика взять его неоткуда, и никто не помнит, кто его выдавал. Лечится это скучно - реестром доступов проекта. Ключи магазина мы туда внесли. По каждому ключу запишите: сервис, контур, кто и когда выдал, к кому идти за новым.

Три проверки одной таблицей

Что проверяемКак проверяемЧто нашлось в этом магазине
Сервис отвечает по-настоящемуЗапрос с ключом магазина на тестовый и боевой адрес сервисаТестовый адрес ключ принял, боевой отказал
Функция доходит до денегТовар в корзину, применить бонусы, сверить сумму к оплатеСкидка бонусами считалась, но в итог заказа не попадала
Сценарий проходит покупательЗарегистрироваться на сайте, дождаться бонусов, оплатить ими заказПриветственные бонусы приходили только владельцам карты

Сценарий с приветственными бонусами в этом магазине перед запуском прошёл - в песочнице. Поэтому список проходим дважды: до запуска в тестовом контуре и после перевода в боевой.

Встроенные средства 1С-Битрикс здесь не помогут: три модуля самостоятельной проверки смотрят на сам сайт - систему, безопасность и скорость. С каким контуром внешнего сервиса работает магазин, они не знают.


Цифр о продажах в этой истории нет: работа диагностическая. Её результат - магазин принимает настоящие оплаты, бонусы покупателю считает боевой сервис, а ключи записаны в реестре доступов. Как мы ведём магазины после запуска - на странице сопровождения интернет-магазина.

Вам сказали, что всё подключено?

Обсудим ваш магазин: посмотрим, с какими адресами сервисов работает сайт, и пройдём путь покупателя от корзины до оплаты.