1

生の POST データをSQLite (v2)データベースに挿入する単純な php Paypal IPN リスナーがあります。それは働いていた。それから...それは機能しなくなりました。(私はそれに変更を加えたことを覚えていません。) Paypal と通信するために CURL を使用して Paypal が提供する基本的な php サンプルを使用します (その後に db 挿入が続きます)。503 Service Unavailableエラーが発生するだけです。それは機能します (実際には何もしません:)) 最後の行をコメントアウトすると、そのシンプルには「sqlite_exec(...)」が含まれます。

または、MySQLの挿入が正常に機能します。
結果の郵送も同様に機能します。

SQLite データベースは正常に表示されます。別のスクリプトは、通常どおり読み取りと更新を行います。

Web ホストは、サーバー側で問題を認識しません。

誰でもこれを理解できますか?それとも、POST データを別のスクリプトに送信して、1 つのページとしてまとめて処理するのではなく、個別に処理する方法があるのでしょうか?

更新:挿入しようとしているのは、「生の投稿データ」文字列です...

$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);
4

1 に答える 1

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

データベースに挿入しようとしているものをお知らせください。

于 2013-02-26T06:13:34.417 に答える