ipn --- обработка ошибок pdo

Я использую ipn sandbox для проверки некоторых процессов:

$business = $_POST['business'];
$receiver_email = $_POST['receiver_email'];
$receiver_id = $_POST['receiver_id'];
$txn_id = $_POST['txn_id'];
$txn_type = $_POST['txn_type'];
$verify_sign = $_POST['verify_sign'];

$stmt = $dbh->prepare("INSERT INTO transactions (business, receiver_email, receiver_id, txn_id, 
                                     txn_type, verify_sign) 
                                     VALUES (?, ? , ? , ? , ? , ?)");
$stmt->bindParam(1, $value1);
$stmt->bindParam(2, $value2);
$stmt->bindParam(3, $value3);
$stmt->bindParam(4, $value4);
$stmt->bindParam(5, $value5);
$stmt->bindParam(6, $value6);

$value1 = $business;
$value2 = $receiver_email;
$value3 = $receiver_id;
$value4 = $txn_id;
$value5 = $txn_type;
$value6 = $verify_sign;
$stmt->execute(); 

Так что это часть моего ipn-скрипта, но он не обрабатывается, в моей таблице ничего нет. Я не могу повторить или распечатать ошибку, потому что ее ipn..but: я мог бы написать ошибку в этом файле журнала:

$logfile = fopen("logfile.txt", "a"); 
$error = date("d.m.Y H:i:s")." - ".$errormsg.".\r\n"; 
fwrite($logfile, $error); 
fclose($logfile); 

Но что там написать, кто-нибудь может мне помочь? Привет

1 ответ

Проверьте историю IPN в учетной записи продавца, чтобы увидеть, что он показывает. Это подтвердит, что IPN (или нет) действительно отправляются. Если они будут отправлены, вы, вероятно, увидите какой-то код ошибки вместо 200 OK.

При разработке для IPN мне нравится создавать свою собственную HTML-форму со множеством скрытых полей, которые соответствуют тому, что я ожидаю получить от реального IPN PayPal. Установите действие формы для прослушивателя IPN, а затем вы можете загрузить его в браузере, отправить его и увидеть результат на экране. Это может очень помочь с тестированием и устранением неисправностей. Как только вы все заработаете таким образом, вы можете вернуться к тестированию реальных транзакций в песочнице и получить тот же результат.

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

Если вы сохраняете свой собственный файл журнала, лучшая информация, которую вы можете получить, это именно те поля, которые вы получаете в необработанных данных IPN. Самое первое, что вы делаете в своем скрипте, это выгрузите все значения $_POST в файл журнала, чтобы вы могли видеть параметры.

Что касается ошибок и вещей, ваш веб-сервер уже делает это. Просто посмотрите на ваши настоящие файлы журналов Apache (или IIS), и вы сможете увидеть, что происходит в любой момент, когда запускается ваш скрипт IPN. Он покажет вам код ошибки и сообщение, которое вы обычно видите на экране.

Другие вопросы по тегам