2017-09-16 45 views
0

在成功的PayPal付款的那一刻我通過一個URL以paramater如:來自PayPal參數傳遞迴網站更新數據庫

mysite.com/membership.php?c=h7Y6734da 

我有一些代碼,代碼搜索,然後更新會員場在數據庫中。

if($_GET['c'] == 'h7Y6734da') 
{ 
    $sqlInsert = ("UPDATE Customer SET Membership_Status = 1 WHERE Id = :user"); 
    $preparedStatement = $db->prepare($sqlInsert); 
    $preparedStatement->execute(array(':user' => $userid)); 
} 

客戶會一直在點擊付款按鈕之前的頁面mysite.com/membership.php(其中他們的ID存儲在會話)。

我的數據庫沒有更新,我不確定爲什麼,我相信當從PayPal返回到頁面時,會話正在丟失,但我不知道我還能做什麼。

回答

0

你應該粘貼你所有的代碼信息,但我會盡力幫忙。

據我所知,您發送到PayPal的'返回網址'爲mysite.com/membership.php?c=h7Y6734da。我不認爲你的會話從Paypal返回時是無效的(你如何獲得會話用戶信息?在示例代碼中,我看不到它)。

你可以看看如何與付款數據傳輸交互寶的官方文檔:https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/paymentdatatransfer/

也許您必須啓用您的支付寶賬戶自動返回,否則將忽略返回現場。然後你沒有得到任何GET(並且你的代碼將永遠不會更新)。更多信息here

這可以解釋爲什麼你不能更新你的用戶信息。

如果您使用的是notify_url,如:

<input type="hidden" name="notify_url" value="mysite.com/membership.php?c=h7Y6734da"> 

IPN將在每次交易發生時被觸發無論用戶是否在完成付款後使得到你的網站。

通知URL僅用於IPN,它將覆蓋您的PayPal配置文件中IPN的任何設置。 PDT需要在您的PayPal帳戶配置文件中配置,以便將數據返回到您的返回URL。

希望它有幫助!如果不是,請嘗試使用完整的代碼示例和特定問題更新您的問題!