友人に頼まれ、初めてECサイトを構築しています。
決済サービスのAPIを用いてクレジット決済を実行するにあたり、決済とDBへの注文データの格納のフローについて質問がございます。
現在実装してみたのが、
- 注文確認画面にて実行ボタンを押し、クレジット決済のAPIを叩いて決済を実行する
-1. 決済に成功したら注文データを生成しDBへ格納する
-2. 失敗した場合、画面にメッセージを表示してやり直させる
と言うフローなのですが、1と2の間にブラウザバックをしたりタブを閉じたりされてしまうと決済だけが実行されて注文データが作成されないと言ったケースが発生してしまいます。
そのため、
- 注文確認画面にて実行ボタンを押し、注文データを作成する
- 仮注文データの作成後、クレジット決済のAPIを叩いて決済を実行する
-1. 決済に成功したら1の仮注文データを本データとしてステータスを変更する
-2. 失敗した場合、1の仮注文データを消しつつ画面にメッセージを表示してやり直させる
と言うフローも考えてみたのですが、この場合も2と3の間に同様の操作をされると注文データと決済がひもづかずに結局決済が浮いてしまいます。
一般的なECサイトを見ると「決済中は戻ったりブラウザを閉じたりしないで」と言ったメッセージを表示しているのを見かけますが、注意喚起をしてそれをさせないと言う方法しかないものなのでしょうか?
上記は我流で考えた実装のためそもそも検討違いなことをしていましたら大変お恥ずかしいのですが、一般的にはどのように実装されるものか、また改善策などございましたらご教示いただければ幸いです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。