Labo

EC-CUBE3 分室

【3.0.15】クレジットカードでの注文取りやめについて

2018年01月20日 / 投稿者名:chiharu


今回はお客様環境にて発生した問題?です。
EC-CUBEに関しては 2系、3系を問わず決済代行モジュールが存在しており有難く思います。
それだけ数が存在していると決済モジュールの中には思うような仕様ではない場合があります。
今回もそんな決済モジュールについてです。
・・・まぁ、決済代行会社様に喧嘩を売るつもりは無く、感謝していますのでどの会社さんのモジュールかは敢えて伏せさせて頂きます(笑)
 
今回の問題?について実は以前に書いた内容と少し繋がっている話ではあります。
EC-CUBEの受注ステータスには「8 購入処理中」になっていると受注管理画面にて受注情報を表示しないと云う少し癖のあるステータスがあります。
理解して使用する場合には非常に便利ですが「受注データが無くなった」という問い合わせに繋がるステータスです。
 
EC-CUBEに関してクレジット決済を行う場合、仕様上の流れでクレジット決済が完了するまでに受注データが作成されます。
その為、大手さんの決済代行モジュールを使用する場合、決済待ちの場合などに「8 購入処理中」ステータスに変更してくれる機能があります。
 
良くあるのがクレジットカード情報の入力画面まで進めてから、入力を取りやめてしまうパターンです。
こんな時は受注データは作成されているのですが実際の受注情報として取り扱ってはいけません。
クレジットカードでの支払いをする場合は決済承認が通るまでお金が支払われないからです。
その為に中途半端な受注データを受注管理画面に出さない様にすることができるため実際のご要望は多い処理となります。
 
通常であれば上記のように非常に便利な機能なのですが、クライアント様からクレジット決済に関して以下のようなご要望を頂きました。
 「クレジット支払いを途中で止めた受注を受注管理画面に表示したくない」
 
あれ?
その機能は標準で搭載されているのじゃないの?
 
と云うことでクライアント環境を確認してみると受注画面に中途半端な受注データが表示されています。
???、我に返って受注データを確認してみると状況がすぐに分かりました。
受注ステータスが「7 決済処理中」になっています。
・・・うん、消えてくれないよね(笑)
 
と云ってもそのまま放置する訳にもいきません。
決済モジュールの内容を確認させて頂いても「8 購入処理中」に置き換わるような処理が見当たりません。
どうしようかなと悩んだのですが取り急ぎ以下のような対応で難を逃れることが出来ました。
 
 ■定義ファイルのコピー
 
  該当のファイルをコピーします。
  /src/Eccube/Resource/config/constant.yml.dist
 
  
  コピー先は以下のフォルダです。
  /app/config/eccube
  ※ファイルをコピーする際にファイル名を変更する必要がありますので注意してください。
   constant.yml.dist → constant.yml
 
 
 ■該当ファイルの変更
 
  該当ファイルの以下の部分を変更します。
  149行目

order_pending: 7

  ↓

order_pending: 8

 
 
まぁ、簡単な解決方法ですが「7 決済処理中」になるのが問題なため、決済処理中になる場合も「8 購入処理中」にしてしまおうと云うことです。
幸いクライアントの決済方法にコンビニ支払いなどの決済まで時間のかかる支払方法は無かったので出来る力技ですね(笑)
 
上記の対応にしてしまえば、クレジットでの支払いを行う場合、決済が終わるまで受注データを出さない形になります。
とりあえず何とかなったようで良かったですが、本当に正しい対応なのかは謎です(笑)
 
 
「決済代行会社も大変なんだろうなぁ」としみじみ思った瞬間でした。
と云うことで今回は終了とさせて頂きます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。