GMOペイメントゲートウェイのjava.io.IOExceptionのエラー
2016/04/02
GMOペイメントゲートウェイでjava.io.IOExceptionのエラー
java.io.IOExceptionのエラーとは?
ECCUBEを利用して ECサイトを構築しています。
決済モジュールとして GMOペイメントゲートウェイを導入することにしました。
マニュアルに従って導入しましたが、結果通知プログラムから送信されてくるメールが「Error report」となっていました。
タイトル「Error report」
以下、本文。
——————————————————-
「PGマルチペイメントサービス」の結果通知にて、エラーが発生しました。
Shop ID = [tshop01010101]
Day Time = [2015-01-01 01:01:01.01]
Error = [送信に失敗しました。 発生例外[java.io.IOException]]
——————————————————-
java.io.IOExceptionの原因と解決方法
java.io.IOExceptionのエラーの原因と解決方法について、マニュアルには下記の様に記載されています。しっかり書かれています。
——————————————————-
・結果通知プログラムファイル:
pg_mulpay_recv.php に実行権限(パーミッション)が付与されているか 。
・結果通知プログラムファイル:
pg_mulpay_recv.php が 外部からアクセス可能な状態となっているか。
IPアドレスや、基本認証によるアクセス制限をされている場合は、
結果通知を受信いただくことができません。
※ 結果通知通知プログラムの保存場所
EC-CUBEインストールディレクトリ/html/user_data/pg_mulpay_recv.php
——————————————————-
原因と解決方法を要約すると
【原因】
決済モジュールからメールを送信するため「pg_mulpay_recv.php」を実行しようとしましたが、正常に実行することができませんでした。
【解決方法】
- パーミッションを変更する
- アクセス制限を解除する
【対象ファイル】
{ECCUBEルート}/html/user_data/pg_mulpay_recv.php
開発中の場合は、開発中なので Basic認証を設定して開発を行っている場合も多々あると思いますが、Basic認証を設定していると外部からアクセスできないのでエラーになりますよ、という内容です。
IPでの制限をしている場合も同じです。
もう一つの可能性としては、「ECCUBEの新規追加ページがInternal Server Error・Not Foundに」で紹介しましたが、決済モジュールを追加すると新規でプログラムファイルが設置されますので、「pg_mulpay_recv.php」のパーミッションが正しい設定になっていない場合もあります。
今回私が遭遇した不具合はこの両方だったワケなのですが、「ECCUBEの新規追加ページがInternal Server Error・Not Foundに」が発生していた同じ案件でしたので、パーミッションにばかり気を取られてしまい、Basic認証を設定していたことをすっかり忘れてしまっていた、ということが原因でした。
ネットで調べると、「サポートに問い合わせてみると良さそうです」と言う回答がありましたので、サポートにメールで問い合わせをすると、わざわざ不具合の原因も調べてくれました。
レスポンスも早かったですね。
そして、お恥ずかしいばかりの原因でした...
java.io.IOExceptionの原因と解決方法
今回の不具合はさておき、クレジットカード決済の動作確認を行うにはクレジットカード番号が必要です。
ですが、GMOペイメントゲートウェイではテスト用のカード番号の提供などはありませんが、適当な番号を入力してもカード番号の妥当性チェックではじかれてしまいます。
とは言え、自分のクレジットカード番号を利用するなんてことは考えられないワケで、どうしようかと悩んでいた時に下記のサイトを発見しました。
https://webpay.jp/docs/mock_cards
テスト環境で使用できるテスト用のカード番号の情報を提供してくれています。
これを使って決済モジュールの設定が正しいかどうかの確認が行えます。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)
PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。
-
-
カオナビAPI Ver.2.0のtokenを取得する PHP+cURLのサンプルプログラム
PHPのcURLを使用してカオナビAPIのアクセスに必要なtoken、シートの情報を取得するサンプルプログラムを作成。cURLの処理は関数化しているため他のAPIでも流用できる。
-
-
sleepの秒指定は整数のみなので1.5秒はsleep、usleepを組み合わせる
PHPのプログラム処理を遅延させる「sleep()」は整数秒単位。「usleep()」は1秒未満のマイクロ秒単位。では「1.5」秒はどう表現するのか。「sleep()」「usleep()」を組み合わせる。その解説。
-
-
ECCUBE mtb_constants initパラメータ設定の項目を追加する方法
ECCUBEのパラメータ設定で設定できる項目を追加する方法を説明します。
-
-
SEO対策用タイトル、ディスクリプションの文字数カウントツール
SEO対策に使える文字数カウントツールで文字数の条件の説明も行っています。
-
-
ECCUBEの管理画面のSSL設定をインストール後に変更する方法
ECCUBEをインストールした後から管理画面のSSL設定を変更する方法を解説します。config.phpファイルのHTTPS_URLとADMIN_FORCE_SSLの値を変更すればOK。
-
-
ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について
レンタルサーバでサーバ会社から割り当てられたURLで開発し、本番公開時にドメインを当てたらエラーが!そんな場合の対処方法の解説。対処方法は簡単ですが管理画面からは対応不可。
-
-
QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ
CakePHP2用のQRコード作成ライブラリ「cakePHP-QR-Code-Helper」をプレーンのPHPでも使うためのカスタマイズ方法を解説。1ファイルを設置するだけでQRコードが作れるため使い勝手がいい。
-
-
ECCUBEのポイント設定、ポイント付与率を一括で変更する方法解説
ECCUBEの商品個別に設定してあるポイントを一括で変更する方法を解説。ECCUBEには商品個別のポイントを一括して変更する機能がありません。SQLを作成して一括置換!
-
-
ECCUBEでテンプレートファイルのファイルサイズは10MB以下のものを使用してくださいのエラーが出た場合
テンプレートをアップロードする際にファイルサイズが大きすぎてエラーが表示される際の対処方法解説。パラメータ設定で設定する制限について解説を行っています。