PHP PayPal IPN странные значения обратного вызова - PullRequest
1 голос
/ 09 июля 2011

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

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

1 Ответ

0 голосов
/ 09 июля 2011

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

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

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

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

...