SOY Shopで運営しているショップサイトで、クレジットカード支払いは成功しているのに、注文受付の処理が終了しなくて、注文を見落として大問題となったという事案が発生した。

SOY Shopはリリースしてから10年以上経過したが、こんな話ははじめてで、未だに原因が分からない。

スマホからの注文であったので、WiFiとセッション絡みだと予想している。


利用していたクレジットカード支払いモジュールには、APIの方のオーソリの登録の後にSOY Shop側で一度リダイレクトを行った後に注文受付をするという仕様であったため、スマホ側で処理の遅延や時々あるとされるセッションの喪失が注文受付前に発生すると冒頭の症状に陥る。


Android版のChromeでアクセスした時にPHPのセッションが突然切れる症状で苦戦したの記事の時に気付いて改修していれば今回の問題は発生しなかったと自身の未熟さが悔やまれる。


WiFi + セッションの問題だと当たりを付けて、クレジットカード支払の仕組みを改修した他にそれでも問題が再発した時の為に下記の機能を追加した。

冒頭のクレジットカード支払いは成功したが、注文受付の処理に失敗した場合、SOY Shopでは注文状況が仮登録で、支払い状態が支払確認済みの注文のデータが挿入される。

であれば、上記の条件の注文を全てアラートで出力してしまえば、誰かが問題を発見出来る可能性が高まる。




というわけで、問題の注文があれば、新着ページにエラー通知を出力する機能を追加してみた。

ただ、この機能では、時々しか注文がないサイトでは有効ではないので、もう一工夫が必要になるが、一旦はここまでにしておく。


当機能は新着注文一覧表示プラグインの機能として実装している。

SOY Shopの管理画面の新着ページをプラグイン化しました


今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。

https://saitodev.co/soycms/soyshop/