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
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
複数銘柄を指定して株価チャートを一覧するツール公開
入力銘柄の5日間、3か月間、6か月間、1年間、2年間の株価チャートを一覧表示しますのでチャートで売買判断をするのに最適です。
-
-
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。
-
-
cURLを利用する際の注意点「
&」があるURLは「”」で囲むcURLでURLはダブルクォーテーションで囲む。LinuxでもWindowsでもコマンドでは「&」は意味を持つ文字のためエラー原因になる。クォーテーションは常につけておく方が無難。
-
-
Phpmailerでスパム回避!Gmail等のSMTPを経由するPHPのメールフォーム解説
お問い合わせ等のメールフォームから送ったメールがスパム扱いされる!その対策としてライブラリ「Phpmailer」を使う方法を解説。関数化していますのでコピペでOK。
-
-
配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例
配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。
-
-
CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説
CentOS6系、7系のPHPバージョンを5.3から5.6、7.0、7.1にアップする作業手順と解説。yum updateコマンドを使い作業時間は約10分。コマンドの解説や引数の意味なども解説しているので役に立つはず。
-
-
PHPで APIにアクセスする際などに使用する cURLのサンプルプログラム
PHPのcURLを使用して各種APIにアクセスするサンプルプログラムを作成し、その処理を解説。カオナビAPIのみならず、他の多くのAPIにアクセスする際にも使用できる。
-
-
PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある
PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。
-
-
ECCUBEでテンプレートファイルのファイルサイズは10MB以下のものを使用してくださいのエラーが出た場合
テンプレートをアップロードする際にファイルサイズが大きすぎてエラーが表示される際の対処方法解説。パラメータ設定で設定する制限について解説を行っています。
-
-
ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について
レンタルサーバでサーバ会社から割り当てられたURLで開発し、本番公開時にドメインを当てたらエラーが!そんな場合の対処方法の解説。対処方法は簡単ですが管理画面からは対応不可。