php paypal ipn странные значения обратного вызова

Я пытаюсь использовать 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?

Кто-нибудь знает, в чем может быть причина, или у кого-нибудь была такая проблема??


person cbr0wn    schedule 09.07.2011    source источник
comment
много возможностей с небольшим количеством информации, хорошо поиграйте с песочницей PayPal   -  person    schedule 09.07.2011
comment
Можете ли вы дать некоторые возможности? Я проверил синтаксис, я включил ipn в своей учетной записи PayPal и в форме, в которой есть кнопка PayPal Buy Now, я действительно потерялся здесь.   -  person cbr0wn    schedule 09.07.2011
comment
Также что может привести к тому, что транзакция будет завершена, но вернется как INVALID?   -  person cbr0wn    schedule 09.07.2011


Ответы (1)


В качестве альтернативы в Интернете доступно несколько классов интеграции PHP Paypal IPN. Пробовали ли вы какой-либо из них? Я связал 2 из них, посмотрите, поможет ли это.

http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

http://www.geniegate.com/other/paypal/

Надеюсь, это поможет.

person Sam    schedule 09.07.2011