0

ASP.NET Web サイトで PayPal の Web Payment Standard を使用しています。

私がしていることは、ユーザーが「今すぐ支払う」ボタンをクリックすると、codebhind で次のことを行います。

  1. DB ステータスの変更
  2. PayPal フォームの生成、アイテムの非表示フィールド
  3. ScriptManager.RegisterClientScriptBlock() を呼び出して、PayPal フォームを PayPal に送信する JavaScript 関数を呼び出します。

ユーザーが Web ブラウザーで停止を押してから、非表示のフォームの値を編集してからフォームを送信できるのではないかと心配しています。これを防ぐ方法はありますか?またはより良い代替手段はありますか?

よろしくお願いします!

4

2 に答える 2

3

PPスタンダードはやっていません。私は Gateway と Pro/Express Checkout を使用しましたが、かなり時間がかかりました。それでも、あなたの質問はより「一般的な」方法で処理できます...

残念ながら、あなたの計画はあなたを保護するものではありません.Web上の他のHTMLフォームと同様に、HTTPリクエストとレスポンスは、すぐに利用できるツールを使用して検査および改ざんされる可能性があります.

改ざんを防ぐ一般的な方法は、任意のクライアント/ブラウザーから送信された値をサーバー側で検証することです (経験則では、「誰も信用しない」)。あなたのシナリオでは、サーバー側で物事を行っていますが、それはまだデータの実際の送信ターゲットである PayPal の前です。実際にデータを「ターゲット」に送信するステップは依然としてブラウザ/クライアントです。いわば問題があります。検証されるデータは、あなたのシステム以外のシステムを対象としています (そのため、PayPal に対して検証することはできません)。

署名や暗号化などの追加のセキュリティ層がない限り、常に改ざんに対して脆弱です (表示は当然のことであり、表示される可能性があります)。

信じられませんが (間違っている可能性もあります)、PP Standard には、データを POST するためのサーバー間オプションがあります。これにより、クライアント/ブラウザからデータが完全に「隠蔽」され、何も表示されず、改ざんされなくなります。データ転送はバックグラウンドで行われます - クライアント/ブラウザはそれについて何も知りません。

ただし、彼らのPayPal Payments Standard および Button Manager APIは、これを行うための適切で安全な方法のようです。

本質的に、「暗号化されたボタン」と呼ばれるものをその場で作成します。この方法では、データを検査する人にとって意味不明なデータのように見えます。これは、データを適切に復号化できるため、PayPal にとってのみ意味があります。それが、データが改ざんから保護/保護される方法です(表示ではありませんが、表示されるのは意味不明です)...

ひ...

更新

また、データの保存には PayPal IPN を検討する必要があります。ボタンをクリックしたすべての人が実際に支払いを完了する(または正常に支払うことができる)という上記の仮定を行っています(私はそう思います)。IPNを使用すると、支払いが成功した後にのみPayPalからのデータを「リッスン」します(注文関連のデータや在庫の更新などを保存する場所です)....

于 2012-04-20T07:03:22.900 に答える
0

私は PHP で作業していますが、NVP API を使用すると、paypal でのみ使用できるトークンを使用してリダイレクトするリンクを取得できます。すべてのリンクは のようhttps://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=TOKENになります。ここで、TOKENは以前に PayPal API を呼び出して取得したトークンです。

ExpressCheckout 用にのみ開発しました。ここで API を確認できます。

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_reference

于 2012-04-20T10:57:23.827 に答える