Обработка PayPal IPN: необходима? Могу ли я использовать другой метод? - PullRequest
1 голос
/ 11 августа 2010

Чтение документации для разработчиков PayPal (а это много документации). Я не уверен, является ли IPN обязательным или я могу просто проигнорировать его.знать, если платеж был правильным.Я думал сделать что-то вроде этого:

  • Создать новый платеж (через веб-сервис) с другим кодом в returnUrl и cancelUrl.Эти коды генерируются случайным образом для каждого платежа и хранятся в БД.

  • Когда пользователь завершит платеж (OK или KO), PayPal перенаправит свою страницу на мой сайт, и я смогу узнать, верен ли код.

  • Если есть проблема (пользователь закрывает окно, ответ не приходит, коды не совпадают ...) будет обрабатываться вручную при просмотре транзакций на сайте PayPal.

Как вы думаете, это нормально?

Спасибо.

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Paypal спроектировал свою систему так, чтобы она была максимально логически защищена. Я бы не стал перестраивать систему, которую они долго разрабатывали и о которой думали. Вы просто игнорируете так много функций безопасности, которые существуют для вашей выгоды.

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

Или хакер может угадать ключ возврата. Он должен быть длинным и очень рандомизированным, если это инкрементный ключ, у вас снова будет супер легко взломанная система.

Для подтверждения платежа IPN необходим. Не используйте ярлыки, делайте это правильно, когда есть деньги.

1 голос
/ 11 августа 2010

Нет, я думаю, это звучит ужасно.

Пользователь может пропустить этап оплаты и просто отредактировать вместе необходимый URL-адрес, а затем вставить его в адресную строку браузера. Это дало бы им бесплатный продукт.

Вы можете использовать API-интерфейсы PayPal SOAP для проверки транзакции после получения URL-адреса. Вы просто не можете доверять этому URL-адресу вслепую, как только получите его.

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

Важно, чтобы вы убедились, что вам заплатили правильную сумму. (Если вы заботитесь о том, чтобы вам заплатили правильную сумму.)

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

...