Я пытаюсь использовать paypal ipn, чтобы участники на моем сайте покупали премиум-членство с помощью кнопки «Купить сейчас». Когда я впервые попробовал это, это не сработало вообще. После некоторых изменений я смог успешно получать платежи. Единственная проблема заключалась в том, что данные, которые должны были войти в мою базу данных через ipn, были... как-то не так. Адрес электронной почты был правильным, но txn_id был неправильным, и дата не была вставлена. Идентификатор транзакции, указанный в конце транзакции, не соответствует идентификатору, вставленному в мою базу данных.
Кроме того, несмотря на то, что транзакция завершена, она все равно отправляет меня на URL-адрес return_cancel.
Столбцы таблицы: идентификатор (автоматически увеличивается), txn_id (идентификатор транзакции PayPal), электронная почта (покупателя).
// assign posted variables to local variables
$txn_id = $_POST['txn_id'];
$payer_email = $_POST['payer_email'];
$user_id = mss($_POST['custom']); //user id
$curdate = date("Y-m-d H:i:s");
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
$update_prem = mysql_query("UPDATE `users` SET `accountype` = '2' WHERE `users`.`id` ='".$user_id."'");
$log_query=mysql_query("INSERT INTO `log` (`id`, `txn_id`, `date`, `email`) VALUES ('','".$txn_id."', '".$curdate."','1".$payer_email."')");
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
$log_query=mysql_query("INSERT INTO `pplog` (`lid`, `txn_id`, `date`, `email`) VALUES ('','".$txn_id."', '".$curdate."','000".$payer_email."')");
}
}
fclose ($fp);
}
Кроме того, в коде, где указано «1».$payer_email.» и «000».$payer_email..», я давал мне знать, является ли зарегистрированное значение ДЕЙСТВИТЕЛЬНЫМ или НЕДЕЙСТВИТЕЛЬНЫМ журналом. Первые несколько раз он регистрировался дважды, потом я понял, почему он это сделал, но теперь он регистрируется один раз, но только "".$payer_email."'???
У меня теперь проблема с электронной почтой. единственное, что осталось, это почему PayPal возвращает INVALID, когда транзакция была завершена? Это потому, что это песочница PayPal?
Кто-нибудь знает, в чем может быть причина, или у кого-нибудь была такая проблема??