@Erling

Редирект в Paypal после удачной оплаты и получение платежной инфо: как изменить метод?

Подключил систему paypal для оплаты. После успешной оплаты, ч\з 10 секунд происходит редирект на наш сайт со сформированным get-запросом, который уже добавляет на основе полученных данных соответствующую запись в нашу базу.

Вопрос:
Корректно ли это. Потому-что сейчас получается две проблемы:
1) Если человек не прождал 10 секунд и сразу закрыл страницу платежа Paypal, то он не вернется на нашу success.html и мы не получим подтверждения (которое формируется на основании посещенной success.html с параметрами, которые отдает уже Paypal, в т.ч. status=completed).

2) Можно абсолютно спокойно добавить в базу данных любую запись на основе данного get-запроса, что помоему является откровенной брешью. Если кто-то обнаружит данную лазейку, то может с легкостью заспамить базу миллионами записей или сделать какую-нибудь гадость. Можно ли изменить метод на post или вообще получать подтверждение каким-то другим, безопасным способом?

Подскажите, уважаемые разработчики, как это сделать лучше. Заранее благодарю!
  • Вопрос задан
  • 791 просмотр
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
1) вообще-то есть Callback URL,
внимательно документацию прочитайте, там еще API ключ есть севретный
кроме того, можно самим по АПИ же запрашивать Пейпал о транзакциях

2) ну так в любом веб- приложении так можно, но живут же как-то
Ответ написан
Adamos
@Adamos
Любая современная платежная система работает так:
- клиент на сайте хочет за что-то заплатить
- сайт формирует заказ под уникальным номером, сохраняя, кто, что и за какую сумму оплачивает
- клиент отправляется на сайт платежной системы с номером заказа и его ценой
- если клиент оплатил этот заказ, платежная система возвращает его на сайт, но это НЕВАЖНО
- потому что некоторые платежи могут час идти от клиента до платежной системы (хотя к PP это, может быть, и не относится)
- когда ПС удостоверится, что клиент оплатил заказ, она дергает скрипт на нашем сайте, сообщая ему, что заказ номер такой-то проплачен такой-то суммой. Тут может быть предварительное подтверждение, что этот заказ стоит именно столько - только при этом условии с клиента вообще что-либо снимется. Но в любом случае информацию о том, что заказ проплачен, на сайт приносит не браузер пользователя (это дырища), а сервер ПС
- когда клиент заходит после этого на сайт, сайт уже в курсе, что этот клиент проплатил этот заказ, и действует соответственно

Любые прочие "быстрые кнопки" или велосипеды - это несерьезно и, вполне возможно, уязвимо для халявщиков.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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