корзина иногда делает продажи за 0 $ ... как устранить неполадки? - PullRequest
1 голос
/ 20 марта 2009

Я не использую готовую корзину, я ее программирую сам. Он прекрасно работает в 99% случаев, но примерно раз в пару месяцев заказ проходит за 0 долларов. Я не могу понять, почему. Я делаю пробную покупку с тем же продуктом и той же информацией, но не могу получить ее за 0 долларов США. Я не уверен, как решить эту проблему, у меня есть заявление об отказе от ответственности, что мы не соблюдаем ошибочные цены. Клиент хочет, чтобы это прекратилось. Я использую PHP, чтобы сделать все это. Так как я не могу сам продублировать происходящее, мне трудно понять суть проблемы. Может кто-нибудь дать совет, как устранить эту проблему?

Спасибо !!

Ответы [ 6 ]

3 голосов
/ 20 марта 2009

Я бы начал с использования обширной регистрации заказов. Каждый клик, каждый вход, каждый SQL-запрос. Затем, когда это произойдет, снова просмотрите журналы этого заказа, чтобы увидеть, что произошло.

Есть несколько возможностей, которые приходят на ум. Во-первых, у вас есть временная ошибка в запросах для получения итогов по элементам. Может быть, когда запрос не удается, вы просто по умолчанию 0,00. Например, что происходит, когда они набирают -1 для количества или вставляют какой-то текст, например «ABC»

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

Что бы это ни было, оно обнаружится при правильной регистрации.

3 голосов
/ 20 марта 2009

В конечном счете, вы захотите выяснить, почему это происходит. Не видя ваш код, я не могу вам сильно помочь с этим. Однако в краткосрочной перспективе почему бы просто не добавить проверку работоспособности в конце процесса проверки?

if ( $final_price < 1 ) {
    do_epic_fail(); // Show an error, whatever.
}
1 голос
/ 20 марта 2009

Ваш код использует данные $ _SESSION? Если пользователь должен был ждать очень долго, некоторые необходимые данные могут истечь, но проверка все еще может продолжаться.

Как уже говорили другие, трудно комментировать дальше без исходного кода.

1 голос
/ 20 марта 2009

У вас есть URL на сайт?

В противном случае я могу только догадываться, что где-то вы позволяете данным, переданным пользователем, определять цену (например, скрытое поле или параметр), которую пользователь может переопределить.

Убедитесь, что вы передаете идентификатор продукта в код на стороне сервера, и умножьте цену на сервере * на объем заказа. (например, никогда не доверяйте вводу пользователя)

0 голосов
/ 20 марта 2009

Если окончательная цена равна 0, возможно, проверьте заказ еще раз, чтобы увидеть, содержит ли он какие-либо элементы. Я мог видеть, что у меня может быть заказ на ноль, если у вас есть какие-либо бесплатные товары или специальные акции, так что, возможно, это путь.

На этот вопрос сложно ответить, не видя вашего источника.

0 голосов
/ 20 марта 2009

Публикуете ли вы информацию о сумме в платежном шлюзе со стороны клиента (скрытые поля формы)? Если это так, то его можно легко переопределить с помощью панелей инструментов браузера, таких как веб-разработчик и т. Д.

Всегда размещайте платежные реквизиты со стороны сервера.

...