2013-02-26 70 views
1

我有一个简单的PHP PayPal ipn监听器,它将原始POST数据插入到一个SQLite(v2)数据库中。它正在工作。然后......它停止工作。 (我不记得对它进行任何修改)。它使用Paypal提供的一个基本的PHP示例,使用CURL与PayPal进行通信(接下来是db插入)。它现在只是提供503服务不可用错误。 它工作(减去实际上做任何事:)),如果我注释掉最后一行,那简单包含“sqlite_exec(...)”。PHP + PayPal IPN + SQLite =一个神秘的503错误?

另外,一个MySQL插入工作正常。
邮件结果也适用。

SQLite数据库显示正常。另一个脚本正常读取&更新。

Web主机在服务器端看不到任何问题。

任何人都可以理解这一点吗? 或者也许有办法将POST数据发送到另一个脚本,以便它自己单独处理,而不是完全作为一个页面处理?

更新:我试图插入的是“原始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); 
+0

确保你的'监听器'正在被'paypal'调用。 – 2013-02-26 06:11:02

+0

只要sqlite插入不是脚本的一部分,一切都会正常工作。 MySQL插入没问题。电子邮件是可以的。沙箱,生活,或只是访问网址......没关系,只是没有与SQLite插入。即使这样做,直到它没有。 – Ael 2013-02-26 08:32:38

回答

1

从什么时候你得到这个错误? Paypal最近做了一些IPN更改。

请检查此链接:

https://www.x.com/content/bulletin-ipn-and-pdt-scripts-and-http-1-1

http://www.tipsandtricks-hq.com/forum/topic/paypal-ipn-and-pdt-changes-effective-from-1st-february-2013

请让我们知道您要插入到数据库的内容。

+0

今天提到的一切都已经完成并经过测试。所以它必须是2月25日发生的变化:)(我将更新关于插入的帖子...) – Ael 2013-02-26 08:42:13