長文失礼します
bubbleを使ってチケット販売サービスを作っています。
チケットは枚数限定(VIP席10枚など)で販売される予定のため、購入がバッティングした場合に
席数以上に販売してしまうことを防ぐ仕組みを考えています。
前提
・データ構成がイベント日程:チケット=1:Nになっている
・複数のチケットを1回の決済で購入可能
具体例
4/1
・VIP 最大10席
・A席 最大50席
4/2
・VIP 最大10席
・A席 最大50席
となっているときに、4/1のVIPと4/2のVIPを1回の決済で同時に購入できるようにしたいです。
bubbleでは排他はできないので、以下の実装を考えました。
1.チケット残数チェック
2.オーソリ(仮売上)実行 ★stripe画面
3.チケット残数再チェック
4.チケット販売確定
5.本決済
ユーザは2.でstripeの決済画面に飛ぶのでカードの情報を入力したりする都合上、1.のチェックを通過しても、2.で時間がかかって他の購入者に追い抜かれてしまう可能性があるため3.でも再度チェックを入れたいと考えています。
そこで、3.のチェックの時にLiftShifterを使い、購入予定のチケットの残数を確認しようとしたのですが、2.で一度stripeの画面に遷移しているため、3.の前にpage loadが走り、2.以降ではLiftShifterがエラーとなり使用できませんでした。
(LiftShifterはPage loadのワークフローではエラーになり動作しません)
教えていただきたいこと
page load後にエラーを出さずにLiftShifterを使って繰り返し処理を行う方法、もしくは、LiftShifter以外の方法でpage load後にエラーにならずに繰り返し処理が実行できる方法をご教授頂けないでしょうか。
試したこと
2.完了後にスリープを入れたり、ページロードが終わったことを確認してからLiftShifterを実行してみましたが、エラーは解消されませんでした。