我的问题是我的 SESSION 变量在 Paypal IPN 过程中被破坏了。
我已经成功地编写了我的 IPN 监听器来与 Paypal 对话,并且我可以毫无问题地处理 Paypal POST 返回给我的预定义 IPN 变量。尽管如此,我还是无法访问在进行 Paypal 付款之前创建的 SESSION 变量。当我连接到 Paypal 时,我假设它们正在被销毁。
我有很多变量,所以只使用 Paypal 的“自定义”字段是不收费的。
例如,如果我想向客户发送一封电子邮件,其中包含他们在我网站的订购过程中创建的 SESSION 变量(名为 $_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: me@example.com";
$mail_To = "email@email.com";
$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);
?>
我的电子邮件从未包含我的 session 变量,这让我相信它们正在被销毁......请帮忙!
非常感谢,
大卫
最佳答案
您可以创建一个 session 保存处理程序来将所有 session 数据存储在数据库中。在 custom
字段中将 session ID 传递给 PayPal,并在从 PayPal 返回时恢复 session 。
从 http://nl.php.net/manual/en/function.session-set-save-handler.php 的示例开始
关于paypal - SESSION 变量在 Paypal IPN 过程中被销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4967465/