0

私は現在、Zend Framework アプリケーション内に Paypal Express Checkout を実装しています。2 つの単純なクラス Cart と CartItem で構成される独自のカート モデルを作成しました。これらは、数量を確認したり、合計金額を取得したりできます。

私は支払いシステムについてあまり知らず、Paypal しか使用していません (初めてのことです)。プロセスの最初に (Paypal にリダイレクトするとき) カートを入れて、paypal によって処理された現在の注文と Web サイト上の実際のカートとの間で矛盾が生じないようにします。

たとえば、ユーザーが新しいタブを開いて、PayPal での支払いプロセス中に製品を追加しようとした場合に発生する可能性があります。

カートがロックされている場合、ユーザーは、PayPal による支払いの処理が完了するか、注文をキャンセルするまで、カートに何かを追加または削除することはできません。

私の質問は、それが良いアプローチだと思いますか?

編集:データベースには何も保存せず、セッション中のショッピングカートのみがすべての注文がPaypalに保存されるため、2回保存したくない理由は、本当にシンプルなシステムです。

4

2 に答える 2

1

私はそれを別の方法で行いました。

ユーザーがサイトを閲覧すると、カートはセッションやCookieなどを使用して保存されます。

彼が「支払い」ボタンをクリックすると、カートの内容はorders一意のIDを持つデータ可能なテーブルに移動します。セッションまたはCookieを削除して、彼が注文に新しいものを追加できないようにします。一意のIDを使用してペイパルに渡します。支払いが完了すると、PaypalはIPNであなたに戻ってきて、あなたに一意のIDを返します。それから、あなたはそれが支払われて、あなたのテーブルにブール値か何かを置くことができることを知っていordersます。

ユーザーが支払いを行わない場合があり、支払いのない注文が発生する場合があります。1日より古い注文をチェックし、それらをテーブルから削除するcronが必要です。

于 2011-03-27T21:23:40.707 に答える
0

あなたのアプローチはいいと思います。ただし、商品をカートに追加できない理由をユーザーに伝え、カートのロックを解除する簡単なオプションを提供してください。

使用事例:

  • カートに入れる
  • 支払いを開始する
  • あ、靴下忘れた
  • 支払いタブを閉じる
  • 別のタブで開いたショップ
  • 靴下を追加
  • 「追加できません。ロックされています」
  • 支払いに戻ってキャンセルすることができず、カートに何も追加できません => 去ります
于 2011-03-28T08:26:16.300 に答える