2011-02-11 75 views
1

我的問題是我的SESSION變量在Paypal IPN流程期間被銷燬。在Paypal IPN流程期間SESSION變量被破壞

我已經成功地編寫了我的IPN監聽器來與PayPal交談,並且我沒有任何操作PayPal POST返回給我的預定義IPN變量的問題。儘管如此,我無法訪問Paypal付款前創建的SESSION變量。我認爲,當我連接到PayPal時,它們正在被銷燬。

我有很多變數,所以使用Paypal的'custom'字段是不合適的。

舉個例子,如果我想發送一封電子郵件包含一個會話變量客戶(名爲$ _SESSION [「ORDER_TYPE」]),他們在我的網站上訂購過程中創建的:

<?php 

//enable sessions 
if (!isset($_SESSION)) { 
    session_start(); 
} 

**** Accept payment/verify using paypal listener etc**** 

// If everything is successful and the payment is accepted then send an email containing some previously stored session variables 

    $mail_From = "From: [email protected]"; 
    $mail_To = "[email protected]"; 
    $mail_Subject = "Your payment has been made successfully」 ; 
    $mail_Body = "you have successfully made a ". $_SESSION['order_type']."order"; 
    mail($mail_To, $mail_Subject, $mail_Body, $mail_From); 

    ?> 

我的電子郵件從不包含我的會話變量,導致我相信它們正在被銷燬......請幫助!

非常感謝,

大衛

+1

可能的重複:http://stackoverflow.com/questions/1838585/passing-custom-variables-to-paypal-ipn – mindas 2011-02-18 21:53:25

回答

1

會議從例如

開始是唯一的客戶端。您的PayPal IPN監聽器處理從Paypal發送的消息,這不是來自您的瀏覽器。所以從技術上講,它與您的付款過程不在同一個「會話」中。您的付款過程中設置的每個會話變量在IPN偵聽器代碼中都是不可見的。

要解決此問題,您可以將所有變量與「交易ID」一起存儲到付款流程中的數據庫(或文件)中。然後在基於該事務ID的IPN偵聽器中檢索它們。