【问题标题】:PHP + PayPal IPN + SQLite = a mysterious 503 error?PHP + PayPal IPN + SQLite = 一个神秘的 503 错误?
【发布时间】:2013-02-11 11:59:09
【问题描述】:

我有一个简单的 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);

【问题讨论】:

  • 确保listener 正在被paypal 调用。
  • 只要 sqlite 插入不是脚本的一部分,一切正常。 mysql插入没问题。发邮件没问题。沙盒,直播,或者只是访问网址......都可以,只是没有使用 sqlite 插入。即使这样也有效....直到它没有。

标签: php sqlite paypal-ipn http-status-code-503


【解决方案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

请告诉我们您要插入数据库的内容。

【讨论】:

  • 今天提到的一切都刚刚完成和测试。所以它必须是 2 月 25 日发生的变化 :) (我会更新关于插入的帖子......)
猜你喜欢
  • 2012-05-27
  • 2016-05-29
  • 2017-01-02
  • 1970-01-01
  • 2014-12-14
  • 2015-03-13
  • 2017-04-20
  • 2014-06-07
  • 1970-01-01
相关资源
最近更新 更多