使用IPN完成paypal付款后删除cookie

时间:2017-08-29 11:49:44

标签: php cookies paypal

我正在创建一个差不多完成的支付系统,唯一剩下的就是删除用于交易的所有cookie。

现在我可以删除所有cookie,如果我将删除功能添加到我的某个网站页面并将其设置为刷新,这确实有效,但是需要用户返回该页面开始,有些用户可能会使用paypal支付关闭浏览器的费用,因此下次打开网页时,cookie仍然有效。

我试图删除IPN文件中的cookie,其中paypal使用它与网页进行通信,但我似乎无法将其删除,因为我无法刷新页面,是否有其他方法可以删除cookie?< / p>

PHP

foreach ($_COOKIE as $key => $value){
    setcookie( $key, $value, time()-(100000 * 60), '/' );
}
if(count($_COOKIE) !=0){
    // I also tried this method, refreshing the IPN file but it didnt work.
    header("Refresh:0");
}

2 个答案:

答案 0 :(得分:1)

你的方法错了。您应该跟踪数据库中的事务,而不是cookie。 Cookie可用于会话。

然后,一旦您收到PayPal的付款确认,您就可以通过IPN页面关闭数据库中的交易。

换句话说,IPN页面由PayPal调用,从不会看到客户浏览器,因此无法删除那里的cookie。

答案 1 :(得分:0)

来自setcookie()的PHP手册评论部分:

http://php.net/manual/en/function.setcookie.php#109173

想要删除Cookie吗?

许多人以复杂的方式做到这一点: setcookie(&#39; name&#39;,&#39; content&#39;,time() - 3600);

但是,当客户的时间错误时,为什么要让它变得如此复杂并且冒着不起作用的风险呢?为什么要用时间扭曲();

以下是取消设置Cookie的最简单方法: setcookie(&#39; name&#39;,&#39; content&#39;,1);

多数民众赞成。