バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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
居住地:
投稿: 3217
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
居住地:
投稿: 3217
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公式 Amazon Payプラグイン

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.