私は PHP でオークション Web サイトを運営しており、顧客が入札した金額に関係なく、すぐに支払いを希望しています (落札できなかった入札はすべて後で返金します)。私の商品が現在 10 ドルで、顧客 A と B がいるとします。
A が $15 の入札をした場合、私は A にクレジット カード情報をすぐに入力して、カードから $15 を請求するように要求します。クレジット カードの処理が完了するまで、入札は入札としてカウントされません。
A がクレジット カード情報を入力しているときに、B も入札を行ったとします。A は最初にクレジット カード情報を入力し、[送信] をクリックしました。B の入札額が 15 以下の場合、B に対して「クレジット カード情報を入力しているときに入札額が高くなり申し訳ありません」などのプロンプトが表示されます。B の入札額が 15 を超えていた場合、もちろん B のカードからその金額が請求され、最新の価格が B の入札価格になります。
ここでの問題は、私のサイトが A のカードに 15 ドル (たとえば Paypal としましょう) を請求するリクエストを送信している間、B は同時に支払いを行うことができないということです (そうしないと、両方の人のカードに請求することになります)。サーバーが B の「支払いの送信」要求を処理できるようになる前に、B は A の支払いが完了するまで待たなければなりません。そして、私のサーバーがリクエストを処理するとき、B の入札額が送信された最新の支払い (A による $15) よりも高いか低いかを確認する必要があります。
基本的に、Aの支払いがPaypalに送信され、Paypalからの応答を待っているときに、他のすべてのユーザーの「支払いの送信」機能を「ロック」したいと思います。どうすればこれを達成できますか?