バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > バグ報告・利用に関する質問 > 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について

バグ報告・利用に関する質問

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
cosmonaut
投稿日時: 2019/8/26 11:10
対応状況: 確認中
新米
登録日: 2019/8/21
居住地:
投稿: 6
3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
▼テンプレート
[EC-CUBE] EC-CUBE3.0.17
[PHP] 5.6.40
[データベース] MySQL 5.7
[WEBサーバ] Nginx
[導入プラグインの有無]
クーポンプラグイン(https://www.ec-cube.net/products/detail.php?product_id=1069)
クロネコヤマト カード・後払い一体型決済サービス(3系)(https://www.ec-cube.net/products/detail.php?product_id=1247)
[カスタマイズの有無] あればカスタマイズ内容を記載(できるだけ具体的に)

[現象]

EC-CUBE3系にて、クーポンプラグインと、クロネコヤマトプラグインを併用した際に起こるバグのようです。

以下の流れでエラーが発生します。

1. 非会員で購入開始
2. クーポンを利用
3. カード決済画面への繊維でエラー発生

同様の質問を発見しました。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=22565&forum=16
上記フォーラムを参考に修正いたしましたが、非会員でのみ未解決のようでした。
こちら詳しい方がいましたらご教示いただけますと幸いです。


以下エラー文です。
-----

AuthenticationCredentialsNotFoundException in AuthorizationChecker.php line 57:



以下エラーログです。
-----

front.INFO [87dbb2a5] [85f73be5] [NULL] [Event:Plugin\Coupon\Event\{closure}:126] - Coupon trigger onShoppingConfirmInit start [POST, /index_dev.php/shopping/confirm, ::1, http://localhost:8004/index_dev.php/shopping, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36]
front.ERROR [87dbb2a5] [85f73be5] [NULL] [LogListener:onKernelException:115] - Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException: The token storage contains no authentication token. One possible reason may be that there is no firewall configured for this URL. (uncaught exception) at /Applications/MAMP/htdocs/demo_ec-cube/vendor/symfony/security/Core/Authorization/AuthorizationChecker.php line 57 {"exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\AuthenticationCredentialsNotFoundException(code: 0): The token storage contains no authentication token. One possible reason may be that there is no firewall configured for this URL. at /Applications/MAMP/htdocs/demo_ec-cube/vendor/symfony/security/Core/Authorization/AuthorizationChecker.php:57)"} [POST, /index_dev.php/shopping/confirm, ::1, http://localhost:8004/index_dev.php/shopping, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36]
nanasess
投稿日時: 2019/8/26 16:46
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 2015
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
こちらの修正で直ると思います。次のバージョンで反映されます
https://github.com/EC-CUBE/coupon-plugin/pull/117


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

cosmonaut
投稿日時: 2019/8/26 21:44
対応状況: −−−
新米
登録日: 2019/8/21
居住地:
投稿: 6
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
ご返答ありがとうございます。

こちら確認させていただきコード修正を行ったのですが、非会員の場合のみまだエラーが発生しておりました。

自分の環境が悪いのでしょうか。。。
EC-CUBE3.0.17をインストールして、該当プラグインを2ついれた状態で発生しております。
nanasess
投稿日時: 2019/8/27 9:22
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 2015
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
ちなみに、CouponPlugin/Event.php 142行目付近の以下のコードを削除すると発生しなくなりますでしょうか?


if ($app->isGranted('ROLE_USER')) {
    $Customer = $app->user();
} else {
    $Customer = $app['eccube.service.shopping']->getNonMember($this->sessionKey);
}


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

cosmonaut
投稿日時: 2019/8/31 10:14
対応状況: −−−
新米
登録日: 2019/8/21
居住地:
投稿: 6
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
遅くなりました。

上記5行をコメントアウトしたところ、デバッグモードで

ContextErrorException in Event.php line 175:
Notice: Undefined variable: Customer

のエラーが発生し、L175は

$validationMsg = $app['eccube.plugin.coupon.service.coupon']->couponValidation($Coupon->getCouponCd(), $Coupon, $Order, $Customer);

こちらです。


度々すみませんが確認いただけますと助かります。。
nanasess
投稿日時: 2019/9/2 13:12
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 2015
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
AuthenticationCredentialsNotFoundException が catch できてない感じですね、、
事象をみるかぎりは、会員購入でも発生しそうですが、非会員だけというのがよくわからない感じです。。

try/catch を使用せずに、CouponPlugin/Event.php 142行目付近の以下のコードを、

if ($app->isGranted('ROLE_USER')) {
    $Customer = $app->user();
} else {
    $Customer = $app['eccube.service.shopping']->getNonMember($this->sessionKey);
}


以下に書き換えてみるといかがでしょうか?

if ($app['session']->has('_security_customer')) {
    $token = unserialize($app['session']->get('_security_customer'));
   $app['security']->setToken($token);
   $Customer = $app->user();
} else {
   $Customer = $app['eccube.service.shopping']->getNonMember($this->sessionKey);
}


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

cosmonaut
投稿日時: 2019/9/4 10:35
対応状況: −−−
新米
登録日: 2019/8/21
居住地:
投稿: 6
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
ご回答ありがとうございます。

try catchをやめて上記のコードで試してみましたが、最初と同じエラーが発生しました。


$app->isGranted('ROLE_USER')がelseの時の動作がうまくいっていないってことでしょうか?
自分には難易度が高くなんども申し訳ありません・・
nanasess
投稿日時: 2019/9/4 13:13
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 2015
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
if ($app['session']->has('_security_customer')) { のコードは、 $app->isGranted() を使用しないように改修したコードです。

AuthenticationCredentialsNotFoundException が引き続き出るようでしたら、どこか別の場所で $app->isGranted() を呼んでしまっているのだと思われます。
何かお心当たりありますでしょうか?


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

cosmonaut
投稿日時: 2019/9/5 10:57
対応状況: −−−
新米
登録日: 2019/8/21
居住地:
投稿: 6
Re: 3系 クーポンプラグインとヤマト決済の併用による例外エラー発生について
クーポンのプラグインのコードを確認したところ下記に箇所で使用されておりました。

もしかして非会員に関してはこのどちらかでエラーがでているということでしょうか?

Controller/CouponController.php L281

if ($app->isGranted('ROLE_USER')) {
                    $Customer = $app->user();
                } else {
                    $Customer = $app['eccube.service.shopping']->getNonMember($this->sessionKey);
                    if ($Coupon) {
                        if ($Coupon->getCouponMember()) {
                            $form->get('coupon_cd')->addError(new FormError('front.plugin.coupon.shopping.member'));
                            $error = true;
                        }
                    }
                }


Service/CouponService.php L273

if ($this->app->isGranted('ROLE_USER')) {
            $CouponOrder->setUserId($Customer->getId());
        } else {
            $CouponOrder->setEmail($Customer->getEmail());
        }
}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は54,332名です
総投稿数は94,197件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2015
4
468
1918
5
yuh
1610
6
umebius
1410
7
red
1376
8
h_tanaka
940
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
781
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 437


ネットショップの壺

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

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