クレジット決済サービスで「認証に失敗しました。お手数ですが入力内容をご確認ください。」

「認証に失敗しました。お手数ですが入力内容をご確認ください。」
とうまくいかない。

決済会社から支給された店舗番号とかテストカード番号も間違っていないのに。。。

data/log/site.logをtail -fで追っていたら、
どうやら400 Bad Requestとレスポンスが返ってきてる。
(ちなみにこのアプリケーションログ、logrotateしないといけないのかなと思って
ソース追ってみたけど、どうやら自動的にアプリ側でローテートしてるっぽい。よかった。)


なるほどねー。443ポートにHTTPSじゃなくてHTTPでリクエストしてますよってことか。


決済モジュールのソースを追ってみると、PEARHTTP_RequestでパラメータをPOSTしてたけど、そこでうまくいってなかった。




PHPHTTPSページを取得するためには、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

もう一回やったら無事オーソリいけたー!!!