web-dev-qa-db-ja.com

単一数量のアイテムのオンライン支払いを処理するにはどうすればよいですか?

限定絵画など、数量が限られている商品のeコマース決済を確実に処理する方法を実装したいと思います。支払いはPaypalとクレジットカードで受け付けられるのが理想的です。理想的には、「先着順」で機能し、一部のオンラインファッションストアのようにカートにアイテムを追加した場合にアイテムをロックアウトするだけではありません。

ただし、主な問題は、ユーザーを支払いソリューションにリダイレクトすると、ユーザーを制御できないことです。

アイテムに何らかの形のロックを実装したとしても、つまり、ユーザーがそれをカートに追加し、他のユーザーのために一時的に30分間ロックされます-以下のワークフローを考えると、この問題は依然として続くと思います:

  • ユーザーAは、数量が限られているアイテムA(1)をカートに追加します。アイテムはウェブサイトから30分間削除されます
  • ユーザーAはPaypalで支払いに行きます。
  • 何らかの理由で、UserAはPaypalですぐに支払いをしませんが、セッションをたとえば1時間存続させます
  • 30分後、ウェブサイトはアイテムAを在庫に戻します
  • ユーザーBがカートに追加
  • ユーザーBは支払いに進みます
  • ユーザーBがアイテムの代金を支払う
  • 継続的に更新されるセッションを持つユーザーAは、アイテムの支払いも行います。

これにより、同じアイテムを二重に購入することになります。

この問題を100%解決することは可能ですか?これが実際に起こるのではないかと私は強く疑っていますが、考えられるすべてのケースを処理したいと思います。

3
Karl Cassar

通常、支払い方法には、アプリケーションが支払いを受け入れる必要があるステップが含まれます。 Paypalでは、顧客があなたの店にリダイレクトされた後です。他のPSP(支払いサービスプロバイダー)には、承認または拒否できる何らかの通知があります。

この時点で、注文を履行するか、履行と支払いを拒否することができます。

PSPを選択するときは、APIドキュメントを調べて、この追加の確認手順が提供されているかどうかを確認してください。

それでも、カスタマーエクスペリエンスの観点からは最適ではありません。しかし、これがビジネスモデルである場合、注文が受け付けられない理由を非常に明確に伝える必要があります。

4
seong