PayPal IPNの処理:必要ですか?別の方法を使用できますか?
-
27-09-2019 - |
質問
PayPal開発者のドキュメントを読む(そしてこれは多くのドキュメントです)IPNが必須かどうかはわかりません。
もちろん、支払いが正しいかどうかを知るために、他のメカニズムを実装する必要があります。私はこのようなことをすると思った:
ReturturlとCancelurlの両方で異なるコードを使用して(Webサービス経由)新しい支払いを作成します。このコードは、支払いごとにランダムに生成され、DBに保存されます。
ユーザーが支払い(OKまたはKO)を完了すると、PayPalはそのページを私のサイトにリダイレクトし、コードが正しいかどうかを知ることができます。
問題がある場合(ユーザーはウィンドウを閉じます、応答が到着しません、コードが一致しません...)、PayPalサイトのトランザクションを手動で検索します。
これは大丈夫だと思いますか?
ありがとう。
解決
いいえ、それはひどいと思います。
ユーザーは支払い手順をスキップして、必要なURLを一緒に編集してから、ブラウザアドレスバーに貼り付けるだけです。それは彼らに無料の製品を与えるでしょう。
PayPal Soap APIを使用して、URLを受信したらトランザクションを確認できます。あなたは、あなたがそれを受け取った秒で、そのURLを盲目的に信頼することはできません。
ユーザーが他の人の支払いのURLを送信し、その支払いのために2回製品を受け取ることができるように注意する必要があります。 (一度本当の受取人に、一度は詐欺師に...)
正しい金額が支払われたことを確認することが重要です。 (あなたが正しい金額を支払われたことを気にしていると仮定します。)
一般に、PayPalとインターフェイスする場合、使用する方法が何であれ、ソフトウェアのセキュリティと脅威のモデリングを理解することが重要です。そうでなければ、詐欺から安全になる可能性はほとんどありません。
他のヒント
PayPalは、システムができる限り論理的に安全になるように設計しています。私は彼らが長い間開発し、考えているシステムの再設計を開始しません。あなたはあなたの利益のためにそこにある非常に多くのセキュリティ機能を無視してください。
1つは、これらの2つのキーが任意の時点でRAW形式のクライアント側でアクセスバイルである場合、簡単にハッキング可能なシステムがあります。 To PayPalの支払いページをクリックしてから、実際に支払うことなくブラウザの返信アドレスを入力するだけで、システムは商品を派遣する前に手動で確認しない限り、システムは有効なトランザクションとして扱います(Egoodsは手遅れになりますけれど)。
または、ハッカーは返品キーを推測できます。それは、それが増分キーである場合、あなたが再び簡単にハッキング可能なシステムを持っている、長く、そして高度にランダム化されなければならないでしょう。
支払いを確認するには、IPNが不可欠です。ショートカットを服用しないでください。お金がかかっているときに正しくしてください。