Отклонение запроса IPN PayPal по соображениям безопасности - PullRequest
1 голос
/ 20 июня 2020

Когда я получаю IPN от PayPal (или аналогичной службы), чтобы указать на продажу, они просят:

  1. Отправить обратно 200 OK
  2. Отправить обратно тело запроса .

Как вы знаете, клиент может легко поиграть с числами и установить цену 0, заказав товар стоимостью 100 долларов, или просто получить поддельное сообщение с поддельной продажей.

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

Кажется, я не могу на самом деле отправьте 400 вместо 200 OK.

Я прочитал это Как явно отклонить запрос IPN и оказалось, что вы не можете действительно отклонить после того, как сравните запрос платежа с вашим DB и обнаружил, что что-то не так.

Итак, как я могу убедиться, что распродажа соответствует действительности c?

1 Ответ

2 голосов
/ 21 июня 2020

Лучшее решение - использовать интерфейсный интерфейс на стороне сервера в сочетании с двумя маршрутами на вашем сервере для «Настроить транзакцию» и «Захватить транзакцию»: https://developer.paypal.com/docs/checkout/reference/server-integration/. Тогда вам IPN не нужно вообще ни для чего.

Однако, если вы собираетесь использовать IPN, это описано здесь: https://developer.paypal.com/docs/api-basics/notifications/ipn/

Существует этап проверки, на котором вы публикуете сообщение IPN. обратно в PayPal , чтобы проверить, действителен он или нет. Это ответ на ваш вопрос.

Если то, что вы хотите выполнить sh, - это отказаться от транзакции из-за неверной суммы или описания, на этом этапе уже слишком поздно в случае транзакции типа продажи. Все, что вы можете сделать, это оформить возврат через API.

...