すでにオーダーIDが存在しています。設定を確認してください。
この文章をすでに決済が完了しているという意味に捉えていたが、違っていた。
誤った理解
決済完了後にブラウザの戻るボタンで前画面に戻って、
再度、[決済]ボタンを押した場合にこのエラーが発生すると思い、
エラーメッセージの文章を以下のように変更していた。
決済はすでに完了しています。
正しい仕様
実際は、決済は完了していようがいまいが関係ない。
同じオーダーIDを二度送信することがエラー原因だった。
カード番号を間違えて入力した人が、決済エラーの画面を見て
ブラウザの戻るボタンを押して、
カード番号の入力画面に戻ってしまった。
そして、カード番号を再入力して[決済]ボタンを押すと、このエラーが発生。
カード番号を間違えたので入れ直したら、「決済はすでに終了しています。」と
表示され、びっくりされたはず。
しかしながら、ブラウザの戻るボタンを押すのは禁じ手で、こちらも困ってしまう。
何とかならないものか。
対案1
カード番号の入力画面が表示される都度、オーダーIDを発行すれば、
二重送信は発生しなくなる。しかし、そうすると決済完了後に
ブラウザの戻るボタンでカード番号の入力画面に戻って、
再度の決済が可能になってしまう。
これはまずい。
対案2
エラー画面からカード番号の入力画面に戻らせないようにするしかない。
カード番号入力画面の一つ前の画面に戻るためのボタンをエラー画面に追加する。
そして、「ブラウザの戻るボタンは押さないでください。」と注意書きをする。
これでブラウザの戻るボタンを押す確率は低くなる。
最後に
ブラウザの戻るボタンをすべてのブラウザで殺せれば良いのだが、
それができない。
不完全なことは承知の上で対案2を採用する。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image