2

カスタム ショッピング カートを使用したシナリオMVC アプリケーション。ショッピング カートは PayPal と統合され、クライアント情報、製品アイテム、価格 (各アイテムと合計価格) などの販売データを渡しますが、クレジット カードやペイパルの情報は渡しません。これはペイパルで設定されます。

問題Paypal では、カート アップロードを使用してカスタム ショッピング カートと統合する方法について説明しています 。やり方の詳細。

しばらくして、MVC-Paypal インタラクションを行う方法の例を見つけました (カートのアップロードではなく、構成の問題です) 。 -in-mvc3-and-razor.html

このソリューションの問題点は、セキュリティ上の問題があるように見えることです。機密データはビューに設定され、非表示のフィールドでクライアントに送信され、投稿は JavaScript によって設定されるため、これは容認できませんか? それとも私はこれを間違って見ていますか?

意図したソリューション

  1. ユーザーがショッピング カーを見てチェックアウト ボタンをクリックすると、myserver.com /Controller/Action に投稿され、名前、住所などのクライアント データが渡されます。
  2. コントローラ アクションmyserver.com/Controller/Actionはポスト サーバー サイドを構築し、価格やペイパル マーチャント固有の情報などのより機密性の高い情報をクライアント ポスト データ情報に追加し、リクエストをペイパルにポストするか、ペイパル Web サービスを呼び出します。
  3. Paypal はトークンまたはその他の情報を返し、myserver.com /Controller/Actionはクライアントを Paypal にリダイレクトして支払いを行います。

質問 私の意図した解決策は可能ですか? クライアントからの投稿に応答して、コントローラーで何らかの処理を行い、その処理の結果で Paypal を投稿/呼び出し、最終的に Paypal の応答をクライアントに渡して、Paypal と直接やり取りするにはどうすればよいですか? そうしないと、「安全」であることがわかりません。

そうでない場合は、確かに誰かが同様のことをしており、正しい方向に私を向けることができます:-)

4

1 に答える 1

0

あなたがここで何をしようとしているのかはある程度理解できますし、その質問に答えることができると思います. これがまったく意味をなさない場合は教えてください...

したがって、顧客はリソース mysite.com/Cart/Checkout にアクセスします。コントローラーはモデルをインスタンス化し、オブジェクトをビューに渡します。ビューは値を適切にバインドします。

顧客が [PayPal で支払う] をクリックすると、mysite.com/Cart/ExpressCheckout にリダイレクトされます。コントローラーはモデルをインスタンス化し、モデルはカート セッション データ (アイテム、金額など) を利用して SetExpressCheckout 呼び出しを処理し、モデル (またはコントローラー、この部分は少しあいまいです) は顧客を pp.com/ にリダイレクトします。 cgi-bin/webscr?cmd=_express-checkout&token=EC-12345566788

顧客はすべての情報を入力し、完了すると、mtsite.com/Cart/ConfirmOrder にリダイレクトされます。このリソースでは、モデルは GetExpressCheckoutDetails 呼び出しを処理し、返されるすべてのデータのプロパティを設定します。コントローラーはオブジェクトをビューに渡し、ビューは適切にバインドします。

これが安全でない理由はありますか?これは安全であり、Microsoft MVC3 のすべての標準に準拠している必要があります。意味的にリダイレクトを行う部分を除いて、これがコントローラーまたはモデルで行われるかどうかはわかりません。私はそれがコントローラーになると思います。

于 2013-02-13T19:02:37.030 に答える