Чтобы убедиться, что запрос поступает от PayPal, попробуйте разрешить IP-адрес:
if (preg_match('~^(?:.+[.])?paypal[.]com$~', gethostbyaddr($_SERVER['REMOTE_ADDR'])) > 0)
{
// came from PayPal
}
Вы можете (и должны) также запросить https://www[.sandbox].paypal.com/cgi-bin/webscr/
с теми же данными, которые вы получили в POST, и добавить к запросу пару cmd
=> _notify-validate
ключ-значение, если ответ VERIFIED
, данные действителен.
См. Также этот вопрос: PayPal IPN Security