为什么我不能在我的 Paypal IPN 文件中设置 cookie

Why can't I set a cookie in my Paypal IPN file

我的 Paypal ipn 文件工作正常 - 验证后我可以将付款人添加到我的 sql 数据库并写入我服务器上的日志文件,但 setcookie 似乎不起作用。我想简单地设置一个标志,这样我就知道这个人已经付款了。 我还能如何设置标志,以便我的 Javascript 代码知道他们已付款?

我找到了这个解决方案,如果真的是服务器在您检查之前没有设置 cookie:

setcookie('uname', $uname, time()+60*30);
$_COOKIE['uname'] = $uname;

如果有帮助的话。

IPN 请求是由 PayPal 服务器发出的,而不是由用户的 Web 浏览器发出的。您不能在未发出请求的用户代理中设置 cookie!

要将 PayPal 用于会员系统,您需要做几件事:

  • 有一个使用数据库的用户登录系统。希望你已经有了这个!在包含用户的数据库 table 中包含一个已付款列。

  • 在付款中包含一些数据,用于识别正在付款的用户。例如,在 invoice 字段中包含用户 ID。

  • 收到经过验证的 IPN 后,从 invoice 字段中读取用户 ID,并更新数据库中的相应行。