クレジット決済サービスで「認証に失敗しました。お手数ですが入力内容をご確認ください。」
「認証に失敗しました。お手数ですが入力内容をご確認ください。」
とうまくいかない。
決済会社から支給された店舗番号とかテストカード番号も間違っていないのに。。。
data/log/site.logをtail -fで追っていたら、
どうやら400 Bad Requestとレスポンスが返ってきてる。
(ちなみにこのアプリケーションログ、logrotateしないといけないのかなと思って
ソース追ってみたけど、どうやら自動的にアプリ側でローテートしてるっぽい。よかった。)
なるほどねー。443ポートにHTTPSじゃなくてHTTPでリクエストしてますよってことか。
決済モジュールのソースを追ってみると、PEARのHTTP_RequestでパラメータをPOSTしてたけど、そこでうまくいってなかった。
PHPでHTTPSページを取得するためには、PHPにopensslライブラリが組み込まれている必要があります。
PHPコマンドの場合、
% php -m
で組み込まれているライブラリ群が確認できます。
ブラウザ経由ですとで確認できます。
はい。確認したところばっちり組み込まれてませんでした。
ということで、--with-opensslをつけてもう一回PHP入れ直し。
# ./configure \ --prefix=/usr/local/php-5.2.6 \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --with-mysql=/usr/local/mysql \ --with-mysql-sock=/tmp/mysql.sock \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=/usr/local/mysql \ --with-curl=/usr \ --with-curlwrappers \ --enable-zip \ --with-zlib=/usr/ \ --with-zlib-dir=/usr/lib \ --with-bz2=/usr \ --with-libxml-dir=/usr \ --with-gd=/usr \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-xpm-dir=/usr/X11R6 \ --with-freetype-dir=/usr \ --with-t1lib=/usr/local \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --enable-mbstring \ --with-mcrypt=/usr/local \ --with-xsl=/usr \ --enable-zend-multibyte \ --with-openssl=/usr # make # make install
もう一回やったら無事オーソリいけたー!!!