session失效,很奇怪的失效
这两天一直在写paypal, 现在就快把ipn.php整完了,但遇到一个问题让我很费解啊!
session在ipn.php里面只有一部分有效,看代码
php codeconnect();$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); if($result) { $to=xxxx@gmail.com;//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呢。
