При оплате через Робокассу, если пользователь по какой-то причине не смог после успешной оплаты вернуться со страницы оплаты робокассы(тупит инет, глючит ПК etc) в магазин, и нажал “назад”, чтобы попасть в корзину и ещё раз нажал “Оформить заказ”, то уже оплаченный заказ удаляется из БД и оформляется заново.
Как воспроизвести проблему:
Оформляете заказ
оплачиваете через Робокассу
сразу после оплаты предотвращаете возврат в магазин(закрыли вкладку)
имеется ввиду, что Робокасса присылает данные по
/index.php?dispatch=payment_notification.result&payment=robokassa
но пользователь после этого не попадает сюда:
/index.php?dispatch=payment_notification.return&payment=robokassa
и идёт оплачивать корзину еще раз
Это глобальная проблема, по сбербанку кажется или яндекс, подобное писали когда много раз происходит оплата/отмена, не понимаю, почему не сделали банальную проверку защиту от таких вещей в самом движке.
Вообще почти у всех уже есть вебхуки или АПИ для запроса статуса платежа, почему их не интегрируют в систему?
Просто если вы делаете сами модули, будь добры поддерживаете их актуальными или откажитесь от них и пусть этим займутся нормальные разработчики и сделают модули пусть и платными, но рабочими на 100%.
Мало того, несколько раз сталкивались с ситуацией, когда клиент оплачивал заказ, возвращался в корзину, набивал ее другими товарами и оплачивал. В итоге получаем две оплаты и один заказ в БД.
Проблема в том, что при переходе на сайт платежной системы заказ не оформляется. Проблему поднимали ни раз и уже давно. Оформление заказа новое сделали, а проблема осталась. Видимо не достаточно логического “Нажал оформить заказ - заказ должен быть оформлен”. Обязательно нужно рыдать, кричать, умолять или еще чего-то там чтобы понять что проблема есть - при выборе онлайн-оплаты и нажатии на кнопку “Оформить заказ” - заказ не оформляется. Но если это не проблема, а фича, то про нее нужно упомянуть на сайте в описании CS-Cart
Да о чем речь, зайдите на мультивендер лендинг, один сайт уже сменил движок, другой продается, третий выглядит как обычный магазин на столько грустно что лучше не показывать его в портфолио движка. У меня складывается ощущение, что cs-cart это как фрукты на рынке покупать, на витрине красивые, а в пакет кладут что попало. А когда возмущаешься тебе говорят не нравится иди дальше.
Потому-что по факту заказ уже оформлен полностью, а при оплате там полузаказ оформляется, вообще странный механизм цс-карт незавершенных заказов, когда у заказа есть номер, но почему-то это не заказ, а незавершенный заказ. Ну нельзя же просто взять и сделать нормально.
Проблема в болванчиках сидящих в баг-трекере. Уж сколько раз тыкали, а всё одно по одному. Формальный подход без интереса приводит к тому что вместо того чтобы пользователи ПОМОГАЛИ выявлять баги разработчикам, получается кривое зеркало, где пользователи должны ДОКАЗАТЬ существование проблемы людям, не заинтересованным в выявлении. Уж сколько раз было что разработчики и в код тыкали и показывали что и на что исправить, а тема уходила в “Не воспроизводится”, потому что неквалифицированный сотрудник техподдержки не может понять написанного.
Все знают о проблеме, все выхватывали косяки, об этом писалось в баг-трекере, больше года назад… а воз и ныне там. Мне видится что в такой ситуации требуется менять ответственного за эту задачу сотрудника и, скорее всего и, его руководителя.
Вот тут нужно осторожно. Суть в том. Что покупатель может перейти к онлайн оплате (тут нужен order_id, это важно!). Он попадает на страницу шлюза. Тут он или потерял карту, или испугался формы, или вспомнил что лимиты меньше суммы заказа… закрывает вкладку и хочет выбрать другой способ оплаты.
Если по факту заказ уже оформлен, ему нужно додуматься добраться до личного кабинета и повторно оплатить заказ другим способом, если он найдёт это и если для его статуса это будет доступно.
В общем, можно исправляя одну ошибку, сделать другую. Важно понять каким должен быть алгоритм. Я, навскидку, тоже пока не вижу правильного решения, которое учтёт все возможные варианты на 100%
И с такой проблемой тоже сталкивались… Надо попробовать посмотреть, как делают большие известные магазины, которые такие проблемы у себя решили, ну и конкуренты по рынку CMS.
А еще не забыть(как в текущей версии модуля Сбербанк) - нельзя наобум генерировать id заказа и передавать в Сбербанк(или любую другую платежную систему) т.к. в случае незавершения операции позже не к чему даже обратиться чтобы проверить статус оплаты - там номер операции с рандомным постфиксом… Всегда должен сохраняться способ обратиться повторно по возможно уже переданному заказу, чтобы актуализировать его состояние. Стандартный модуль Сбербанка ведет себя неправильно - если заказ оплатили и после закрыли страницу эквайринга, CS-Cart уже никак не может актуализировать статус заказа, даже с доработками - нет ни номера заказа, ни id транзакции.
Когда заказ оформлен то у менеджера куча возможностей довести сделку до конца - контакты есть и есть 100% готовность клиента приобрести товар (он оформил заказ). А магазин может помочь, например если еще не оплачен то отправить не простое письмо (спасибо за заказ), а с инструкцией как оплатить и что делать если не получилось. Но пока заказ не оформлен менеджер не знает готов ли клиент приобрести товар. А звонить всем кто просто набирает корзину… кому такое понравится? ))
Купить в 1 клик так и работает - оставьте краткую заявку и мы поможем все оформить. Полное оформление заказа это тоже 1 клик только больше полей в форме и доп возможности, которые не должны негативно влиять на завершение оформления заявки (заказа).