ipnlistener.phpを使用するリスナー スクリプトで Paypal IPN システムを使用しています。ある日以来、Paypal は私のスクリプトに投稿データを送信していません。$_POST 変数が空であるため、コード自体に問題はありません。したがって、 &_POST 変数がない場合、何も処理できません。(サンドボックスとライブで試しました)
ipnlistener クラスが例外をスローします。
メッセージ「No POST data found.」を伴う例外「Exception」。
誰かがそれで同じ問題を抱えていますか?
前もって感謝します..
更新 1
また、ログ ファイルをスキャンしたところ、意味のないビュー ログが見つかりました。たまにこの例外が表示されます:
例外「Exception」とメッセージ「Invalid response status: 302」
しかし、リダイレクトはありません...
curl オプションを変更する必要はありますか?
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__)."/api_cert_chain.crt");
curl_setopt($ch, CURLOPT_URL, $uri); //$uri = https://www.paypal.com/cgi-bin/webscr
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded_data); // For paypal response encoded POST variables
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($req)));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $this->follow_location); // false
curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout); // 30
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl の代わりに fsockopen を使用しても問題ありません
更新 2
だから今日、ホストされたウェブスペースから自分の vm に切り替えました。ウェブサーバーからすべてをコピーして、もう一度試しました。ああ、それは動作します。正確な理由はわかりませんが、apache2 の設定に関係があります。ホストされている Web スペースで利用可能なすべてのログを確認しましたが、関連するものは見つかりませんでした。また、Web スペースで apache がどのようにコンパイルされているかもわかりません。バージョンやモジュールの複雑さがあると思います。PHPのバージョンは同じです...
誰かが解決策/理由を見つけたら、私に知らせてください:)
今まで……ありがとうございました……。