Как я могу препятствовать тому, чтобы пользователи переопределили общую стоимость в корзине при представлении как скрытое поле ввода?

У меня есть серьезные проблемы с принятием платежей.

Я передаю общую сумму в скрытом поле

<input type="hidden"
  name="checkout-flow-support.merchant-checkout-flow-support.shipping-methods.flat-rate-shipping-1.price"
  value="129.00"/>

Некоторые пользователи изменили это значение на 2 поджигателей использования и отправили форму. Вместо того, чтобы получить 129$, мы только получили 2$.

Я понятия не имею, как продолжить двигаться это, любой помогает мне быстрый.

7
задан hobodave 6 May 2010 в 06:25
поделиться

3 ответа

Я передаю общую сумму в скрытом поле

Не делайте этого!

Поскольку вы знаете, какие товары пытается приобрести пользователь, рассчитайте стоимость на стороне сервера.

9
ответ дан 6 December 2019 в 14:01
поделиться

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

3
ответ дан 6 December 2019 в 14:01
поделиться

С поставщиками платежных услуг (PSP) общая схема взаимодействия обычно выглядит примерно так:

1) Ваш сервер связывается с PSP и устанавливает транзакцию, указывая требуемую сумму и данные вашего счета PSP.

2) PSP отвечает идентификатором транзакции, который вы затем добавляете в форму. Этот идентификатор транзакции не содержит никакой информации о ценах - это просто идентификатор записи транзакции, которую ваш сервер создал в PSP.

3) Посетитель заполняет форму, которая отправляется в PSP. Затем они перенаправляют посетителя обратно на ваш сайт.

4) Ваш сервер запрашивает сервер PSP и проверяет, что транзакция прошла успешно (т.е. метод оплаты посетителя одобрил транзакцию с PSP и т.д.)

Связь между сервером и PSP обычно осуществляется с помощью библиотеки, такой как curl.

Google предоставляет ряд библиотек / примеров того, как правильно обрабатывать транзакции (и большинство других PSP делают то же самое, по моему опыту): http://code.google.com/apis/checkout/samplecode.html

Точные детали взаимодействия могут варьироваться в зависимости от PSP, но в основном не должно быть никакой необходимости в том, чтобы "общая сумма" когда-либо проходила через форму, отображаемую посетителю. Все это делается от сервера к серверу, чтобы посетитель не мог изменить детали.

3
ответ дан 6 December 2019 в 14:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: