• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

session失效,很奇怪的失效解决方案

php 搞代码 3年前 (2022-01-23) 18次浏览 已收录 0个评论

session失效,很奇怪的失效
这两天一直在写paypal, 现在就快把ipn.php整完了,但遇到一个问题让我很费解啊!
session在ipn.php里面只有一部分有效,看代码

PHP code

<!---ecms Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php//ipn.php全部代码session_start();include('ipnlistener.php');include_once 'lib/functions.php';ini_set('display_errors', 'Off');$db = new Connection();$connection = $db->connect();$listener = new IpnListener();$listener->use_sandbox = true;$order_time=$_SESSION['order_time_org'];$username=$_SESSION['user'];echo "$order_time, $username";//到这里位置以上,SESSION是可以用的 上面输出两个都能显示出来//下面就显示不出来了!这是为什么?try {    $verified = $listener->processIpn();} catch (Exception $e) {    // fatal error trying to process IPN.    exit(0);}if ($verified) {    // IPN response was "VERIFIED"    //send email form    $invoice_id=$_POST['invoice'];    $payment_status = $_POST['payment_status'];    $receiver_email = $_POST['receiver_email'];    $payer_email = $_POST['payer_email'];    //$order_time = $_POST['custom'];    //$whimwin_user=$_SESSION['user'];        //这里的$_SESSION['user']显示不出来啊!    //if($payment_status=="Completed")    //{            $query="UPDATE CART SET payment_status='paid' WHERE username='$username' AND order_time='$order_time' AND invoice_id='$invoice_id'";        $result=queryMysql($query);        i<p style="color:transparent">2本文来源gao!daima.com搞$代!码网</p><span>搞代gaodaima码</span>f($result)        {            $to="[email protected]";//payer_email            //subject            $subject="Whim Win paid successful!";            //from            $header="from: test ";            //message body            $message="Dear Member, \n\n";            $message.="this is you invoice id $invoice_id \n";            $message.="$payment_status, $order_time, $payer_email, $receiver_email, $username";            //send email            $sendmail=mail($to,$subject,$message,$header);        }    //}} else {    // IPN response was "INVALID"}$db->close();?>

——解决方案——————–
先测试一下
try {
print_r($_SESSION);
$verified = $listener->processIpn();
print_r($_SESSION);
} catch (Exception $e) {
// fatal error trying to process IPN.
exit(0);
}

——解决方案——————–
不要去管他,自己缓存一下
先调通了再说
try {
$mysession = $_SESSION;
$verified = $listener->processIpn();
$_SESSION = $my_session;
} catch (Exception $e) {
// fatal error trying to process IPN.
exit(0);
}
——解决方案——————–
你这个ipn.php文件是支付成功的verify页面吧?我有看到你update支付状态的sql语句。
如果我猜的没错,那么你要搞清楚的一点是,客户支付的过程是走浏览器,所以cookie头可以续传,但是paypal请求你这个页面通告你支付结果这个流程,是通过palpay服务端完成的,比如我们php常用的curl。所以如果你不是显式的传给paypal当前的cookies,然后paypal请求的header头里带上这个cookies,怎么可能读到session呢。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:session失效,很奇怪的失效解决方案
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址