2014-01-06 2 views
2

Я использую IPN песочницу для проверки некоторых процессов:IPN --- п.д.о. обработки ошибок

$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); 

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

+0

Кто-нибудь знает, как проверить ошибку и сохранить ошибку в переменной? – user3122124

+0

Прекратите копировать свои собственные вопросы. дубликат: [check statement error pdo] (http://stackoverflow.com/q/20749967/367456) - У вас уже есть ответ. Вы задаете очень много вопросов вне темы. Вы ведете себя так, как будто это веб-сайт службы, особенно для тех проблем, которые вы вводите или копируете код с помощью своего особого вида (не) понимания того, что вы делаете. Но этот сайт не для этого. Речь идет о программировании вопросов. Другие, возможно, рассказали вам об этом раньше: прочитайте раздел справки о том, как работает этот веб-сайт, и какие вопросы являются приемлемыми. – hakre

ответ

0

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

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

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

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

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