попробуйте повторить $_POST['payment_status']
.payment_status - это переменная ipn, отправляемая paypal вашему сценарию ipn.если платеж завершен, он будет напечатан как завершенный, иначе нет.
следующий код показывает срок действия IPN, а не платежа.
if (strcmp ($res, "VERIFIED") == 0) {
// IPN VERIFIED
}
else if (strcmp ($res, "INVALID") == 0) {
// IPN INVALID
}
РЕДАКТИРОВАТЬ 1:
$ _ Массив POST равенразделить здесь, вам не нужно разбивать его самостоятельно:
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
просто примите значения переменных в следующем формате:
// assign posted variables to local variables
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
вы увидите, что переменная размещенаPayPal с именем payment_status
.
попробуйте добавить эту строку echo $_POST['payment_status'];
на свою страницу ipn и посмотрите, что она печатает, если она будет напечатана завершенной, это означает, что ваш платежный статус успешно завершен.
Надеюсь, это поможет.