先日、HTTP_Request2を2.4.1にバージョンアップしたらクレジット決済が出来なくなって超焦った話を書きました。
【PHP】PEAR/HTTP_Request2がバージョンアップしててハマった話 – NOBODY:PLACE
結果的にはダウングレードして対応したのですが、いつまでもそのままでいるわけにもいかないので、テスト環境を用意して対応を模索していました。バージョンアップしたことで新たに必要な設定が増えたのではないか、そんな予測を元に、HTTP_Request2のコードを読みながらコードを変更していたのですがなかなか正解に当たらない。なんなんだ。
半ば諦め気味に利用するアダプタを
Socket
から cURL
に変えたら……動きました。マジか。書き換え前
$request = new \HTTP_Request2();
$request->setMethod(\HTTP_Request2::METHOD_POST);
$request->setConfig('ssl_verify_peer',false);
書き換え後
$request = new \HTTP_Request2();
$request->setMethod(\HTTP_Request2::METHOD_POST);
$request->setAdapter('curl');
$request->setConfig('ssl_verify_peer',false);
ChangelogsにSocketまわりのことがあれこれ書いてあったので、その辺で何か挙動が変わったのかも知れません。きちんと調べればSocketで動作する適切な設定も見つかるのかも知れませんが、、ドキュメントも「2.2.1」から更新されてないしもう探すの面倒。これでいいやー。
というわけで、解決しました。