Извините, на самом деле это не ответ на один вопрос, но я не смог правильно добавить свое предложение в комментарий
Попробуйте настроить дополнительную таблицу для целей тестирования, которая будет получать необработанный дамп ipnинформация для каждой транзакции.Затем вы можете посмотреть на то, что было получено, чтобы определить, почему оно не вставляется в вашу таблицу.
Для хранения всех необработанных данных вы можете сделать так:
$IpnSerialized = serialize($_POST);
$RawInsert = "INSERT INTO `IpnRaw` (`IpnDump`) VALUES ('{$IpnSerialized}')";
Кроме того, не добавляйте эхо или распечатки в сценарий обработчика IPN.Никто не увидит его в любом случае.
Возможно, вы захотите добавить несколько дополнительных полей в тестовую таблицу, где вы можете хранить маркеры прогрессии, чтобы увидеть, как далеко продвигается ваш скрипт перед бомбардировкой.