godsplane
@godsplane

Какой принцип безопасности при создании ссылки на оплату?

Делаю интернет-магазин. Next.js + random backend headless. Все данные о товарах, корзине и тд получаю из апишки.

На этапе чеккаунта у меня форма с данными юзера + total price и товары которые я получил из api, но в момент отпарвки формы данные же могут быть подменяны?И например товаров нв 100к поменять прайс на 1 рубль и оплатить все за 1 рубль.

Как мне получать total с апишки и отправлять эти данные с клиента без возможности подмены?
Я могу проверять что-то на сервере, но что именно?Получается цену мне передавать не надо, а только список продуктов и уже на сервере считать total price, после этого генерировать ссылку на оплату?
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Получается цену мне передавать не надо, а только список продуктов
Именно. С фронта должны приходить id товаров и количество. Окончательный расчёт цены выполняет бэк. Он же формирует чек и отсылает его в платёжную систему, перебрасывая клиента на переданную страницу оплаты. И в бэк же возвращается callback от платёжной системы с подтверждением транзакции.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Everything_is_bad
Я могу проверять что-то на сервере, но что именно?
это давно поборено у платежных систем, подписывай передаваемые данные, тогда изменение любого параметра, приведет к несовпадению подписей
А так ссылку на оплату должен сделать сервер, а не клиент.
Ответ написан
@maksam07
товаров нв 100к поменять прайс на 1 рубль

ну вы еще оплату на джаваскрипте пропишите по типу let paid = true/falseи тогда точно красота будет.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы