質問 > フロント機能 > 決済の通知エラーについて |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
guisi1848 |
投稿日時: 2021/12/19 0:28
対応状況: −−−
|
常連 登録日: 2020/9/8 居住地: 投稿: 57 |
決済の通知エラーについて [EC-CUBE]4.0.5
[レンタルサーバ]さくらインターネット ビジネスプロ(テスト環境はスタンダード) [OS]Win10Pro [PHP]7.4.24 [データベース]MySQL5.7.36 [WEBサーバ]Apache/2.4.51 [ブラウザ]FireFox [導入プラグインの有無] (1)SEOAllOne (2)Google Analytics eコマース/拡張eコマースタグ設置プラグイン など多数 [カスタマイズの有無] 商品管理メニューの商品一覧画面で"商品説明(一覧)"項目を[+]クリックする前から開いているように改良 さくらインターネットのSSLの仕様が変わり、SNI SSLの対応となり、インターフェイス仕様のSSLが非対応となりました。 一方、決済会社として契約しているGMO-PGは決済通知プログラムがインターフェイス仕様しか対応しなくなり、カスタマセンターに聞きまくった結果、通知だけSSLを使用しないでHTTP方式で通信をすればエラーが出なくなる(通知には個人情報を含まないのでSSLにしなくても大丈夫)と聞いたため、htaccessでリダイレクト動作を変更すれば解決すると考えました。 しかし、それでも決済時に通知エラーが発生します。 EC-CUBEと直接関係ないかもしれませんが、詳しい方がいれば教えてください。 必要条件は、 1.httpでアクセスしてもhttpsにリダイレクトしたい 2.wwwがついていてもwwwなしに統一したい(できれば) 3.URL末尾の/(スラッシュ)はあってもなくても同じ動作(SSL対応)にしたい 4.決済会社の通知プログラムのURLはhttp://<ドメイン名>/gmo_payment_gateway/receive (https://にするとSSL仕様のため対応せず通知エラーが発生する) 以上を踏まえた.htaccessの設定教えていただけませんでしょうか。 【現在の.htaccessの冒頭】 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.html$ https://<ドメイン名>/$1 [L,R=301] RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} !(^<ドメイン名>/gmo_payment_gateway/receive) RewriteRule ^(.*)$ https://<ドメイン名>/$1 [L,R=301] </IfModule> |
468 |
投稿日時: 2021/12/20 2:17
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 決済の通知エラーについて eccube4系には.htaccessに関係無くeccubeの設定を判断してhttpsに強制リダイレクトする処理がありますので
その辺りを改修する必要が出てくると思います。 .envファイルの以下の項目がtrueになっている場合、 /src/Eccube/Kernel.php 164行目にある判定でSSLに強制リダイレクトしていると思います。 ECCUBE_FORCE_SSL=xxx セキュリティを考慮した場合、上記の設定はtrueが望ましいと思いますので /src/Eccube/Kernel.php 164行目にある判定に 例外処理として決済通知プログラムへのアクセスの時の判定を追加する必要があるかと思います。 ただソース本体に手を加える事になりますので、今後、バージョンアップを実施した際はカスタマイズ内容がリセットされる為 都度、改修を行う必要が出てきます。
|
guisi1848 |
投稿日時: 2021/12/20 10:22
対応状況: −−−
|
常連 登録日: 2020/9/8 居住地: 投稿: 57 |
Re: 決済の通知エラーについて 早速お返事ありがとうございます。
.envを調べてみたところ ECCUBE_FORCE_SSL=false になっていました。 一方、さくらインターネットのドメインの設定では サイトのオープン当初はHTTPS転送設定を「HTTPSに転送する」にしていましたが、SSLの仕様が変わって、通知エラーが発生した以降、「HTTPSに転送しない」にした上で、.htaccessでhttps://へのリダイレクトという方法に切り替えました。 ただし、この時に急きょ勉強した状態ですので、正しいのかどうかも自信がありませんが、ドメイン名だけを入力すると、もしくはhttp://で入力すると一応https://にはリダイレクトされてはいます。 この状態でも、ECCUBE_FORCE_SSL=falseは危険なのでしょうか? また、kernel.phpを改修しないと例外処理はできないのでしょうか? 最近、バージョンアップ時の不具合で大変なことが多く、できればsrcフォルダの中は改修したくない気持ちが強いです。 (4.0.6まではアップデートしたものの、それ以降はエラーで先に進まず頓挫しています。) |
468 |
投稿日時: 2021/12/20 11:23
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 決済の通知エラーについて >この状態でも、ECCUBE_FORCE_SSL=falseは危険なのでしょうか?
htaccessによる制御が正しく行えているという前提であれば危険は少ないかと思います。 (ここでいう危険とは閲覧者、または管理者がサイトにログインする際、httpでアクセスしている事に気付かないまま、ログインの操作を行う場合を危惧しています) 私はhtaccessはちょっとした記述ミスをする可能性が高い方法かと思っており、あまり頼らないようにしています。 私が理解しきれていないという理由もありますので、あくまで参考程度としていただければ幸いです。 ECCUBE_FORCE_SSL=trueの時の処理は ルーティングに関する処理なのでプラグイン等では挙動が変更できないのではないかと思います。 ECCUBE_FORCE_SSL=falseの環境で運用されているのであれば、htaccessで制御する事になるかとは思います。 肝心のhtaccessの書き方は私は分からない為、力になれず申し訳ございません。
|
guisi1848 |
投稿日時: 2021/12/20 11:31
対応状況: −−−
|
常連 登録日: 2020/9/8 居住地: 投稿: 57 |
Re: 決済の通知エラーについて
|
guisi1848 |
投稿日時: 2021/12/20 11:35
対応状況: −−−
|
常連 登録日: 2020/9/8 居住地: 投稿: 57 |
Re: 決済の通知エラーについて 入れ違いで返信してしまいました。
お詳しくないということであれば、この質問もご存じない分野かもしれませんが、おわかりであればよろしくお願いいたします。 |
guisi1848 |
投稿日時: 2021/12/20 11:53
対応状況: −−−
|
常連 登録日: 2020/9/8 居住地: 投稿: 57 |
Re: 決済の通知エラーについて ブラウザの表示したページ&キャッシュクリアで直りました。お騒がせしました。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |