2016-05-29 3 views
1

電子商取引サイトで問題が発生しています。SecurePay支払いゲートウェイでチェックアウトするときにカートアイテムを追加できる場所を構築しようとしています。チェックアウトのジレンマ中にカートアイテムを追加する

ユーザーが[今すぐ支払う]ボタンをクリックすると、サイトからSecurePay支払いページにリダイレクトされ、クレジットカード情報が入力されます。ここでは、ユーザーが別のページを開き、支払い情報が支払いゲートウェイに既に送信された後にカートアイテムを追加/削除することが可能です。ショッピングカートは、ユーザーを覚えておくための一意の識別子としてクッキーを含むデータベースショッピングカートです。

問題は、支払いゲートウェイに送信されたSecurePayフォーム内の商品データの入力項目がないことです。注文に関する限定情報、つまり出荷を含む注文の総額(別途送料の合計を送信することはできません)、参照番号(請求書番号)、通貨タイプ(AUD)、割増率などです。したがって、注文が成功した後、ユーザーショッピングカートに基づいてすべてを処理しなければならず、私のサイトにリダイレクトされます。ユーザーがオフサイトで支払いをしている間にカートアイテムを追加/削除すると、請求書が生成され、注文完了ページに在庫が反映されます。

私はちょうどこれと戦う方法がわかりません。

私の可能なシナリオ:

ユーザーがチェックアウトページに当たったとき、私は、彼らがチェックアウトページ以外のページをヒットした場合、それをアンロックした後、カートをロックします。しかし、ユーザーがチェックアウトプロセスから完全に外れることなくアップセリングの可能性はなく、ユーザーがサイトに戻るとカートがまだロックされている可能性があるシナリオについても心配しています。プラス、おそらく、ちょっと混乱しているように見えるかもしれません。

2つのランダムな電子商取引サイトをテストしましたが、チェックアウトプロセスの「今すぐ支払う」段階で、別のページのカート項目を追加することも可能でした。ページを更新。私は実際にアイテムを支払って確認しませんでしたが、私はそれが私の問題とどのように違うのか分かりません。

誰にも提案はありますか?

答えて

0

参照番号を送信できる場合は、その番号を使用して注文を生成してください。ユーザーが支払いをするたびに、アイテムをバスケットに入れて注文を作成し、その番号をSecurePayに送信します。支払いが完了したら、その注文を支払ったものとしてマークします。彼らがバスケットの内容を変更した場合、古い参照番号は依然として元々バスケットに入っている製品を参照し、再度チェックアウトすると正しい項目を含む新しい注文が作成されます。

+0

申し訳ありませんが、古い参照番号をどういう意味ですか?ユーザーがチェックアウトプロセスを開始すると、私は一時的な注文書と請求書番号を生成し、SecurePayへの参照として請求書番号を送信するので、ユーザーがサイトにリダイレクトされたときに注文を指すことができます。 SecurePayは1つの参照番号のみを許可します。たぶん私は一時的な順序を更新し、ユーザーが支払うために行くときに配列としてバスケットの内容と数量を格納することができますし、順序だけでなく、ユーザーのバスケットをループループではなく、製品の項目と数量を取得する配列をループします – Bezzzo

0

ユーザーがサイトにリダイレクトされたときに、安全な支払いが課金された金額を含む一部の情報を返す可能性があるというオプションがあります。それで、あなたはカート内にあるものに対してその数字を確認して確認することができます。

または、私はセキュリティで保護された有料のデベロッパーページを見ていますが、顧客があなたのウェブサイトを離れることのない2つの方法があります。 https://www.securepay.com.au/developers/products-and-services/accepting-e-commerce-payments/

はオーストラリアであなたは - はいあなたはまた、ストライプを見ることができれば、それは私が最初に私がアップセルについて学んまでの行動のこの種のバグだと思ったhttps://stripe.com/au/pricing

0

方が簡単かもしれません。だから私の解決策(これまで必要だった場合)は、すべてのチェックアウトプロセスが更新ではなく新しい注文であることを確認することです。フックを追加すると、新しい注文についてユーザーに知らせることができ、現在カートに入っているアイテムを破棄(削除)するオプションが与えられます。

+0

またこれを読んでみてください

+0

コメントありがとう。私が思いついた解決策は、 '注文'テーブルに 'product_array'という列を作成し、ユーザーが「今すぐ支払う」をクリックすると、ショッピングカートの内容を区切り文字付きの文字列として保存することでした。支払いが成功したら、その文字列を配列に展開し、ショッピングカートではなく注文を処理します。この方法で、ユーザーがホストされた支払いページに進むと別のタブからカートを操作しようとすると、それは無関係になります – Bezzzo

関連する問題