Задать вопрос
@Batlab
PHP Senior | Python Middle | JS Junior

Как разобраться с оплатой на сайте?

Создаю коммерческий проект.
Нужно сделать, чтобы пользователь мог пополнять баланс в личном кабинете.
Встает вопрос, как это сделать?
Во всех платежных системах есть success url, на который перебрасывает после оплаты.
Это полезно, если продаешь конкретный товар, можно вставить ссылку на файлообменник и тд.
Но как сделать пополнение баланса?
Нужно знать айди пользователя, нужно знать сумму, на которую была произведена покупка и прочее, но в success url переменные не запихнешь, да и пользователь может так сколько угодно на такие url заходить и накручивать себе деньги.

P.s. простите за, возможно, нубскую тему и обьяснение, но я сталкиваюсь с таким первый раз и реально не понимаю, как решить такую тривиальную задачу.
  • Вопрос задан
  • 530 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Ahen
@Ahen
Универсальный дилетант
Пользователь не может знать адрес вашего обработчика, на адрес обработчика обращается сервер платёжки после определенного события. В доках всегда указано как защититься от скама, от фильтрации ip до шифрования.

Также всегда присутствует возможность задать пользовательский параметр, в вашем случае айди юзерам в вашей системе, значение параметра будет передано сервером платёжки на ваш обработчик.

Success URL это лишь адрес страницы, на которую пользователя перенаправит после платежа. На данной странице можно отобразить статус транзакции, ведь на ваш обработчик уже должны были прийти данные.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
1) Вы в своей БД заводите запись: пользователь P хочет пополнить баланс на сумму N. У записи должен быть ID.
2) Перенаправляете пользователя на форму оплаты суммы N, передавая также в скрытом поле ID (эта форма обычно - у платёжной системы).
3) После оплаты, платёжная система уведомит вас, что оплата по ID прошла (вызовом по заданному вами URL-у). Для безопасности, вы можете проверять у себя в скрипте, что вызов произошёл именно со стороны платёжной системы путём, например, проверки по IP (порой он оговаривается при подключении к платёжке). Либо же платёжка будет передавать секретный код, либо ещё как-то (опять же - зависит от платёжки).
4) Вы в БД помечаете транзакцию с переданным вам ID как выполненную и накидываете пользователю деньги в вашей системе.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
там еще есть callback url

туда много чего запихнешь
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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