2011-07-09 128 views
1

我正在嘗試使用paypal ipn讓會員在我的網站上購買高級會員使用立即購買按鈕。當我第一次嘗試時,它根本不起作用。經過一些更改後,我能夠成功接收付款。唯一的問題是假設通過ipn進入我的數據庫的數據是...不知怎的,不對。電子郵件地址是正確的,但txn_id錯了,沒有插入日期。事務結束時提供的事務ID與插入到我的數據庫中的ID不匹配。php paypal ipn奇怪的回調值

即使事務已完成,它仍會將我發送到return_cancel url。

表columns- ID(自動遞增),txn_id(PayPal交易ID),電子郵件

// 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沙盒的東西?

有沒有人知道這可能是什麼原因,或者有誰有這個問題呢?

+0

許多可能性與很少的信息有很好的發揮與貝寶沙箱 – 2011-07-09 04:24:42

+0

你可以給一些可能性?我已經檢查了語法,我在我的PayPal帳戶中啓用了ipn,並且在具有paypal buy now按鈕的表單中,我真的迷失在這裏。 – cbr0wn

+0

什麼會導致事務完成,但返回無效? – cbr0wn

回答