3

注文リクエストを処理するシンプルなeコマースを構築しています(プリント回路基板を販売するため、これは別のeコマースです)。

したがって、大きな問題は次のとおりです。ユーザーがチェックアウトに入るとき、カートにアイテムが入っている状態で、どうすればよいですか。

  • 注文を完了し、セッションからのデータをデータベースに挿入してから、ステータスをに設定し pending、支払い会社からの支払いを待ちます(PayPalと同様ですが、ブラジルから)
  • または、ユーザーが製品の代金を支払ったとき(コールバックを受け取ったとき)にのみ注文する必要があります

これについての疑問は、支払いの前に注文を行うと、データベースに未払いの注文が大量に作成される可能性があるためです(一時的なクリーニングが機能するはずです)。

そして、支払い後に注文するのは難しいかもしれません。なぜなら、支払い会社は私にいくつかのフィールドしか返さないからです(そして私は各プリント回路基板にそれらの多くを持っています)。

たぶん私は「答え」を与えました、しかし私はこれについて本当に混乱しています、そして私は二番目の意見を高く評価するでしょう...

ありがとう

4

3 に答える 3

4

まあ、論理的に考えてみてください。注文時に、注文が最終的に完了するかどうかに関係なく、注文の情報を保存する必要があります。複数の理由があります:

  • ご注文の分析(支払いにいくつかかるかなど)
  • 支払いが必要なユーザーの保留中の注文を追跡します。

...他の用途の中でも。

このことから、保留中の注文を確実に保存したいと結論付けることができます。情報を別のデータベース/テーブルに保存しても意味がありません。

認識しておくべき重要なことの1つは、一度も通過しなかった保留​​中の注文でも他の目的に使用できるため、通過した残りの注文に含める必要があるということです。

于 2012-08-12T03:45:07.020 に答える
3

私が過去にしたことは次のとおりです。

  1. 彼らが「支払いの確認」をクリックした瞬間、私は注文を保留中のステータスでDBに追加します。
  2. 次のステップは、支払い会社と通信し、応答を取得することです。
  3. 支払いゲートウェイからの応答でステータスを更新します

このようにして、拒否されたトランザクション(たとえば、盗まれたカード)などの奇妙な不一致も追跡します。

于 2012-08-12T03:43:23.750 に答える
0

それは実際には設計上の選択ですが、ユーザーの未払いの注文を処理したくない場合は、ユーザーが支払った後に注文するのはかなり論理的です。

したがって、ユーザーは支払い->注文をdbに追加してから、必要なその他の情報を追跡します。

事前にデータベースに追加したい場所を私が考えることができる他の唯一の例は、たとえばウィッシュリストの場合です。

于 2012-08-12T03:46:28.703 に答える