【PHP】下らねぇ質問はここに書き込みやがれ 69
■ このスレッドは過去ログ倉庫に格納されています
0278nobodyさん
2008/06/06(金) 21:58:27ID:liAI2iTpショッピングなどので注文ボタンを連続して押すと注文データが二つ出来てしまうという件です。
webで検索するとJavaScriptの方法があるのですが、それですとJS無効にしている人には対応ができません。
それで、トランザクションIDなどを発行して、formにhiddenで埋め込んで、送信されてきたIDとセッションに保存されたIDを比較するというやり方が
あると思うのですが、それでも、0.1秒くらいの間隔で連続送信された場合、セッションの処理が追いつかず二度受付がされてしまいます。
お金が絡むことなので、かなりシビアな管理が必要なのですが、どのような方法がありますでしょうか?
私が考えたのは、一回送信したら送信完了画面の表示処理になるまでロックするとか。
そうすると、ロックの解除タイミングが難しく異常終了した場合に、永遠にロックがされてしまい、
OSのリブート以外復旧する方法がなくなってしまうのではないかと、危惧してしまいます。
又は、メールで一回確認メールを送りつけて、そのメールに記載されているURLをクリックすると
注文完了になる、というロジックも考えたのですが、そのような方式でやっているネットショップを、
10年間位ネット使用歴がありますが、見たことがありませんし、利便性が悪いこともわかります。
それで、別の方法として注文ボタンを押しても完了とはせずに、
手動でこちらが確認して注文確認のメールを送るという案も考えました。
が、それも前述と同様で手間がかかる上に、利便性が悪いということで躊躇しています。
あとは、二重注文を承知で、返品を受け付けるという処理があるのですが、
利便性はいいのですが、お客さまからの苦情がこないか不安です。
もちろん、二重注文の免責事項として注文ボタンの前に書きます。
結局、あれやこれや考えたのですが、結論が出ませんでした。お知恵を貸して頂けないでしょうか?
宜しくお願いします。
■ このスレッドは過去ログ倉庫に格納されています