Я надеюсь, что кто-то может указать мне правильное направление.
Я создал прослушиватель IPN на сайте, и в настоящее время он отлично работает для подписчиков и создает их ПИН-код, добавляет к своим логинам (электронная почта и случайно сгенерированный ПИН-код) БД без проблем. После этого они могут войти в область загрузки после получения электронного письма с подробной информацией.
Регистрация работает отлично - однако, когда они отписываются , Paypal явно отправляет уведомление, а IPN просто выдает новые имена входа, и я не знаю, как его кодировать, чтобы отправить сообщение «Извините вас» оставляю письма и удаляю их из БД.
Любая помощь будет высоко ценится!
Сценарий ниже;
<?php
mysql_connect("xxxx", "xxxx", "xxxx") or die(mysql_error());
mysql_select_db("xxxx") or die(mysql_error());
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// post back to PayPal system to validate
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// PAYMENT VALIDATED & VERIFIED!
$email = $_POST['payer_email'];
$password = mt_rand(1000, 9999);
mysql_query("INSERT INTO users (email, password) VALUES('". mysql_escape_string($email) ."', '".md5($password)."' ) ") or die(mysql_error());
$to = $email;
$subject = 'xxx Download Area | Login credentials';
$message = '
Thank you for your purchase
Your account information
-------------------------
Email: '.$email.'
Password: '.$password.'
-------------------------
You can now login at xxxxx';
$headers = 'From:xxx@xxx.co.uk' . "\r\n";
mail($to, $subject, $message, $headers);
}
else if (strcmp ($res, "INVALID") == 0) {
// PAYMENT INVALID & INVESTIGATE MANUALY!
$to = 'paypal@xxx.co.uk';
$subject = 'xxx Download Area | Invalid Payment';
$message = '
Dear xxx,
A payment has been made for the Download area on xxx.co.uk but is flagged as INVALID.
Please verify the payment manually and contact the buyer.
Please contact xxx at xxx on xxx if you need additional help, the buyers email is below;
Buyer Email: '.$email.'
';
$headers = 'From:noreply@xxx.co.uk' . "\r\n";
mail($to, $subject, $message, $headers);
}
}
fclose ($fp);
}
?>