Я пытаюсь использовать 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. "', я раньше сообщал мне, было ли зарегистрированное значение VALID или INVALID log.Первые несколько раз он регистрировался дважды, затем я выяснил, почему он это сделал, но теперь он регистрирует его один раз, но просто "". $ Payer_email. "'???
У меня проблема с электронной почтойсейчас.остается только то, почему PayPal возвращает INVALID, когда транзакция была завершена?Это потому что это песочница PayPal?
Кто-нибудь знает, что может быть причиной этого, или у кого-то была эта проблема? ??