質問 > フロント機能 > 購入処理でエラーが発生しました。とエラーが出ます。 |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
468 |
投稿日時: 2020/5/17 12:45
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 購入処理でエラーが発生しました。とエラーが出ます。 >管理画面には入金待ちステータスで登録がありました
管理画面では購入処理中ではなく入金待ちになっていたという事でしょうか? 決済方法はデフォルトの銀行振込や代引きではなく、 プラグインで追加された決済方法だったりしますか? (クレジットやAmazonPay等) 私が回答しているのはデフォルトの環境を想定しており、クレジット決済等プラグインが関わってきているのであれば、想定が全く異なってきます。 >追いかけ方がよく分かってないのですが具体的にどのようにして追いかけていけばいいのでしょうか? 私がよくやる方法は ソース上の気になる所でexitを書いて処理が通っているか? エラーが出る前に止まるか? 等を確認しています。 例えば、今回の話であればご注文の確認画面→注文完了画面でシステムエラーが発生しているようですので /src/Eccube/Controller/ShoppingController.php function confirm()を調査していきます。 1回目はfunction confirm()に処理が入っているかどうかを確認する為に functionの開始直後にexitを入れます。
↓
ここで画面が真っ白になれば、ここまで処理が通っていると考えます。 次に一旦、上記の変更を元に戻して、 入力値チェックでエラーが起きているか、通過しているか確認する為に 入力値チェックの直後にexitを入れます。
↓
ここで画面が真っ白になれば、入力チェックは正常に処理されていると考えます。 もし、エラー画面が表示されるようであれば、 入力値チェックでのエラー、もしくは最初にexitを書き加えた場所から今回のexitを書き加えた場所の間で 何かしらエラーが発生していると考えます。 このような感じで一つ一つどこを処理が通っているか確認していきます。 本番稼働中の環境で強制的に処理を止められないのであれば、 log_info('function confirm開始通過'); log_info('入力チェック通過'); のようにログを出力させて、ログがどこまで出ているか確認する方法もあると思います。 ※ログを出力させるほうが一度の更新で対応できるので効率的だと思いますが 私は一気にやろうとすると混乱するので1ステップずつ確認しています。 こういった処理のデバッグが正しいとは思いませんが 今までの経験からいうと、いくら面倒臭くても結局1つ1つ調べていく泥臭い作業が早く解決すると思います。 (ECCUBEの処理の流れも理解できると思います)
|
フラット表示 | 前のトピック | 次のトピック |