バージョン選択

フォーラム

メニュー

オンライン状況

63 人のユーザが現在オンラインです。 (52 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 63
もっと...

サイト内検索

質問 > フロント機能 > 助けてください

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tallman
投稿日時: 2017/2/8 12:28
対応状況: −−−
新米
登録日: 2017/2/8
居住地:
投稿: 3
助けてください
https://fastpay.yahoo.co.jp/docs/ec_cube
に従ってプラグインを導入しました。yahooアカウントにログインしている状態ならば決済ができるのですが、yahooアカウントにログインしていないとcomplete.phpの画面に推移した時点で「モジュールファイルの取得に失敗しました。 この手続きは無効となりました。」と表示され、決済が完了しません。
fastpayに問い合わせても、適当に片付けようという意図が見え見えの回答しか返ってきません。何度か繰り返して質問しましたが、無視しているのでしょうか、返事がありません。
そこで、eccubeフォーラムの方々にお聞きするしかないと考えました。
システム要件は以下のとおりです。
eccube:2.13.2
サーバー: サクラvps
php:5.5.30
ウェブサーバ:Apache/2.2.15
os :centos release 6.8
db:MySQL 5.5.47

「モジュールファイルの取得に失敗しました。 この手続きは無効となりました。」と表示されるので調べてみたらdata/class/pages/shopping/LC_Page_Shopping_LoadPaymentModule.php/に以下のコードがあるのを発見しました。
$module_path = $this- getModulePath($order_id);
if ($module_path === false) {
$msg = 'モジュールファイルの取得に失敗しました。 この手続きは無効となりました。';
SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', true, $msg);

return;

なので、$module_path === false)になっている?と考え、getModulePathを調べました。
public function getModulePath($order_id)
{
$objPurchase = new SC_Helper_Purchase_Ex();
$objPayment = new SC_Helper_Payment_Ex();

$order = $objPurchase->getOrder($order_id);
$payment = $objPayment->get($order['payment_id']);
$module_path = $payment['module_path'];
しかしyahooにログインしているとエラーにならないのがなぜだかかわかりません。これ以上、一人で悩んでも解決の糸口が見えそうにないので投稿しました。よろしくお願いします。
tao_s
投稿日時: 2017/2/9 14:36
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: 助けてください
おそらく、データベースにpayment_idが正常に登録されていないか、モジュールのDB上のデータがおかしく、
$objPayment->get($order['payment_id']);

が失敗しているものと思われます。
dtb_paymentだったかな?決済モジュールの情報が登録されているテーブルの値と、決済モジュールの該当コードを確認してみてください。


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

tallman
投稿日時: 2017/2/9 23:30
対応状況: −−−
新米
登録日: 2017/2/8
居住地:
投稿: 3
Re: 助けてください
fastpayについて
こんなに早く回答が来るなんて素晴らしいです。ありがとうございます。

決済モジュールの情報が登録されているテーブルの値は
mysql> select * from dtb_payment where payment_method = "Yahoo!ウォレット FastPay";で調べてみました。payment_idは9でした。
決済モジュールの該当コードはどうやって調べればいいのでしょうか?
宜しくお願い致します。
yuh
投稿日時: 2017/2/13 22:01
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 助けてください

mysql> select * from dtb_payment where payment_method = "Yahoo!ウォレット FastPay";で調べてみました。payment_idは9でした。

そのデータのmodule_pathからデータをたどって該当のモジュールをチェックしてみてください。
もしかしたら、テストサーバー等で開発してDBをコピーして本番サイトへ移行とかしましたか?
その場合module_pathがテストサイト用になっているため、本番用ではパスが違う事でそのエラーが発生します。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,712名です
総投稿数は109,949件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.