PayPalオートメール

cURL関数がおかしい?

2012年09月06日
PayPalオートメール】のユーザーさんから、どうしても動かないとの連絡がありました。
外からあれこれ調べてみたのですが、どうしても原因がわかりませんでした。

結局そのユーザーさんのサーバーアカウントをお借りして調べることになりました。

色々な情報を吐かせながら、どこが原因で動かないのか切り分けをしていくと、どうやら【PayPalオートメール】からPayPalへ接続するところで躓いていることがわかりました。

PayPalオートメール】はPHPのcURL関数を使って、PayPalにSSL接続をしています。
どうも【curl_setopt】関数がおかしい動きをしているようなのです。

PayPalからサンプルとして提供されているソースを基盤に作っているんですがね・・・

まず、
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
を走らせるとエラーで止まります。
仕方ないのでコメントアウトして走らせてみました。

他の色々なオプションを設定して、
curl_exec($ch);
を実行します。エラーが起こった場合、falseが返ってくるそうなのですが、何も返ってきません。
curl_errno($ch);
でエラー番号が、
curl_error($ch);
でエラーメッセージが取得できるので、出力させてみました。
すると、
Unknown SSL protocol error in connection to www.sandbox.paypal.com:443
のメッセージが・・・
何じゃ?

そのサーバーの別のアカウントで全く同じソースを走らせてみたのですが、何の問題もなく、あっけないほどあっさりと、走りました。

ということは、動かないそのアカウントが何かおかしくなってる?
PHPのマニュアルを見ると、【CURLOPT_SSL_VERIFYPEER】は【7.10 以降、デフォルトでインストールされています。】とあります。もしかして、バージョンが違う???
でもバージョンの違いで【Unknown SSL protocol・・・】というのもおかしいかな。
バージョンによって設定しなければいけないオプションが違う??

【CURLOPT_SSL_VERIFYPEER】オプションは動かさなくても、【Unknown SSL protocol・・・】エラーが出るので、今のところどうにもならないか・・・

まぁこれ以上は私には無理と判断したので、サーバーの管理者も巻き込んでもらうことにしました。

ユーザーさんからも、他のサーバーにインストールしてみたら、すんなり動いたと連絡がありました。

一体何なのか。すっきりしないです。