我有一个简单的 php Paypal ipn 侦听器,它将原始 POST 数据插入SQLite (v2)数据库。它正在工作。然后......它停止工作。(我不记得对其进行了任何更改。)它使用 Paypal 提供的基本 php 示例,该示例使用 CURL 与 Paypal 进行通信(随后是 db insert)。它现在只是给出一个503 Service Unavailable错误。如果我注释掉最后一行,它可以工作(减去实际上做任何事情:)),那个简单包含“sqlite_exec(...)”。
或者,MySQL插入工作正常。
邮寄结果也有效。
SQLite 数据库显示正常。另一个脚本正常读取和更新。
Web 主机在服务器端看不到任何问题。
任何人都可以理解这一点吗?或者也许有一种方法可以将 POST 数据发送到另一个脚本,以便单独处理它,而不是完全作为一个页面处理?
更新:我要插入的是“原始帖子数据”字符串......
$raw_post_data = file_get_contents('php://input');
...如 php 示例代码下的第一行所示:https ://www.x.com/developers/PayPal/documentation-tools/code-sample/216623 。我的脚本是一样的,除了底部有一个插入,基本上看起来像这样:
$dbloc = "/db/ipn.sqlite";
if($db = sqlite_open("$dbloc", 0666, $sqlite_error)){}else{die ($sqlite_error);}
$datetime = date("Y-m-d H:i:s");
$data = $raw_post_data;
$sql="INSERT INTO Paypal (entrydate,verified,data) values ('$datetime',$verified,'$data')";
sqlite_exec($sql,$db);