バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > ゼウス決済プラグイン 購入完了画面でのシステムエラー

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
camus
投稿日時: 2019/7/20 10:26
対応状況: 解決済
新米
登録日: 2019/7/19
居住地:
投稿: 4
Re: ゼウス決済プラグイン 購入完了画面でのシステムエラー
ありがとうございます!
まさにアドバイス通りでした。

現状ではOrderIDをセッションにいれているところは見つからず。
プラグインのPaymentController.phpのcompleteのところで、complete画面にリダイレクトする前に

$sessionOrderKey = 'eccube.front.shopping.order.id';
$app['session']->set($sessionOrderKey, $order->getId());

と入れてみたところ、問題なく動きました。
あまりプラグインに手を入れたくないんですが仕方ありません。



プラグイン自分で選んで入れたものではないので、ECCUBEのバージョンとあっているものかどうかも不明です。
他に報告がほとんどあがってないようなので、もしかしたらバージョンの相性の問題なのかもしれません。

ちなみにゼウスに問い合わせをしたところ、返答はありましたが、この件はきれいにスルーされたのであきらめました。
報告もしない予定です。


おかげで早期解決できました。
本当にありがとうございました。




468
投稿日時: 2019/7/20 8:33
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3073
オンライン
Re: ゼウス決済プラグイン 購入完了画面でのシステムエラー
EntityRepository->find(null) in ShoppingController.php line 336
↑ここの周辺を確認する必要があると思うのですが、
ここでOrderの取得を行うようなカスタマイズをされていますか?
(コンバージョン率を計測する為の処理など)

デフォルトのソースを確認すると
OrderIdはセッションから取り出してtwigに渡す形になっておりますが
OrderEntityを利用するような動きは無いように見受けられます。

もし、ここにOrderEntityを取得する処理があるのであれば、
条件となるOrderIdがセッションから取り出せていないのだと思います。

ゼウス決済プラグインのソースは見たことがないので何とも言えませんが
決済が完了して購入完了画面を表示する前にセッションを削除している、
またはセッションをセットしていないのではないでしょうか?

例えば、ShoppingController.php function confirm()では
受注メール送信前に以下のような記述がありますが
// 受注IDをセッションにセット
$app['session']->set($this->sessionOrderKey, $Order->getId());

ゼウス決済プラグインでは、このような記述が無いのかもしれません。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

camus
投稿日時: 2019/7/19 16:26
対応状況: −−−
新米
登録日: 2019/7/19
居住地:
投稿: 4
Re: ゼウス決済プラグイン 購入完了画面でのシステムエラー
とりあえず特にこちらで何も出力しないで実行してみました。

Whoops, looks like something went wrong.
1/1 ORMException in ORMException.php line 259: The identifier id is missing for a query of Eccube\Entity\Order

in ORMException.php line 259
at ORMException::missingIdentifierField('Eccube\Entity\Order', 'id') in EntityManager.php line 378
at EntityManager->find('Eccube\Entity\Order', array('id' => null), '0', null) in EntityRepository.php line 154
at EntityRepository->find(null) in ShoppingController.php line 336

at ShoppingController->complete(object(Application), object(Request))
at call_user_func_array(array(object(ShoppingController), 'complete'), array(object(Application), object(Request))) in HttpKernel.php line 144
at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 64
at HttpKernel->handle(object(Request), '1', true) in Application.php line 586
at Application->handle(object(Request)) in Application.php line 563
at Application->run() in index_dev.php line 117

何がなにやら・・です。
ShoppingController.phpのfunction completeでセッション削除前にIDとってますが、その前に消えちゃってるということでしょうか。
camus
投稿日時: 2019/7/19 15:22
対応状況: −−−
新米
登録日: 2019/7/19
居住地:
投稿: 4
Re: ゼウス決済プラグイン 購入完了画面でのシステムエラー
ありがとうございます。
なんとか見てみます。
468
投稿日時: 2019/7/19 11:48
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3073
オンライン
Re: ゼウス決済プラグイン 購入完了画面でのシステムエラー
ログに「The identifier id is missing for a query」とありますので
OrderIDがうまく取得できていないのでしょうか?

ORMExceptionが発生するまでの流れを確認できれば、
原因のある処理がハッキリするのではないでしょうか?

デバッグモードで該当のエラーを表示させると
ORMExceptionが発生するまでの流れ(スタックトレース)が画面に表示されるのではないかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

camus
投稿日時: 2019/7/19 10:54
対応状況: −−−
新米
登録日: 2019/7/19
居住地:
投稿: 4
ゼウス決済プラグイン 購入完了画面でのシステムエラー
※すみませんフォーラム選択間違えました。変更できないのでこのままで。質問:フロント機能です。

[EC-CUBE] EC-CUBE3.0.14
[レンタルサーバ] xserver
[PHP] PHP 7.1.28
[導入プラグインの有無] ZeusPayment
[カスタマイズの有無] 無し
[現象]
ゼウス決済プラグイン(ZeusPayment)で、購入処理中、
カード番号等を入力して確認画面から最後に「完了する」を押したあとにシステムエラーが出ます。
決済は完了していてログを見るとsuccessと返ってきています。
ECCUBE側ステータスは入金済となっています。
受付済メールも飛んでいます。


ログは次のようになってます。(適度に改行いれてます)

[2019-07-19 09:24:29,2] eccube.CRITICAL [eb8fae40] [2f7f36ea] [NULL] [LogListener:logException:112] - Doctrine\ORM\ORMException:
The identifier id is missing for a query of Eccube\Entity\Order (uncaught exception) at /xxxx/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php line 259 {"exception":"[object] (Doctrine\\ORM\\ORMException(code: 0):
The identifier id is missing for a query of Eccube\\Entity\\Order at /xxx/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php:259)"}
[GET, /shopping/complete, xxxx, https://xxx/shopping/zeus_payment, Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0]

[2019-07-19 09:24:29,211905] eccube.INFO [eb8fae40] [2f7f36ea] [NULL] [LogListener:logRequest:83] - > GET /shopping/complete [GET, /shopping/complete, xxxx, https://xxx/shopping/zeus_payment, Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0]


以前同じ質問(未解決)がありましたが、ゼウスに問い合わせたところ、そちらのECCUBE側の問題では?とのこと。
現象だけ見ると、確かに決算自体は問題なく、ECCUBE側の最後の完了ページがうまく表示されないだけのようなのですが。
どう調べて対応したらいいでしょうか?
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

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

統計情報

総メンバー数は72,983名です
総投稿数は102,061件です

投稿数ランキング

1
seasoft
7333
2
468
3073
3
AMUAMU
2712
4
nanasess
2174
5
umebius
2030
6
yuh
1612
7
red
1453
8
h_tanaka
1090
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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