1

維持している Web サイトに支払いゲートウェイを実装する必要がありますが、これまでにこのようなことをしたことがありません。以前は、支払い処理を実装するために、サイトはトランザクションを構築し、それを支払い処理業者に直接送信して結果を待ちました。サイトがクレジット カード情報の収集、トランザクションの構築、および要求/応答を処理したので、前の開発者がまだカバーしていないことについて心配する必要はあまりありませんでした。

支払いゲートウェイを実装していますが、チェックまたは検証する必要があるものはありますか?

このプロセッサーの仕組みは、非表示フィールドに注文 ID、金額、通貨などを含むフォームを作成することです。そのフォームはゲートウェイにポストされ、そこで処理が処理されます。その後、ショッピング カートを更新して注文を完了することができるサーバーにフォームがポストされます。

私が考えられる唯一のことは、ユーザーがフォーム フィールドを変更してからゲートウェイに送信することです。100ドルのアイテムを追加して変更するなど

<input name="amount" value="100.00" type="hidden"> 

<input name="amount" value="0.01" type="hidden"> 

そのため、郵便物を受け取ったら、支払った金額が未払いの金額と同じであることを確認する必要があります. 私が見逃しているものは他にありますか?実装のドキュメントには、上記のようなシナリオについても言及されていません。そのため、他のものを見逃していて、サイトがさらなる悪用にさらされているのではないかと少し心配しています。

4

3 に答える 3

0

まず、Capital G に同意する必要があります。クライアント ブラウザーを介してフォームの送信を試みて処理するよりも、サーバー間接続を作成する方がはるかに簡単です。

確認すべきこと: ゲートウェイに送信した後、クライアントはサーバーへのポスト バックを開始しますか、それともゲートウェイ サーバーがそれを処理しますか? クライアントがそれを開始した場合、ゲートウェイに行かずに注文が完了したことをあなたに投稿するのを妨げているのは何ですか? 支払いが行われたと主張するクライアント POST を受け入れる前に、支払いが実際に行われたことを確認するために、ゲートウェイに対して Web サービス リクエストを行う必要があるようです。

通信にダイジェストを追加していただけますか? ゲートウェイとの共有シークレットがある場合は、クライアントを通過した場合でも、双方向のダイジェストを含めることで、共有された情報の整合性を検証できます。

わかる?

カール

于 2010-08-24T23:43:38.610 に答える
0

まず、支払いゲートウェイを実装しているとは思いません。1本しか使っていないようです。これが間違っている場合は、この回答の残りを無視してください。できたら削除します:)

シンプルな HTTP フォームから支払いゲートウェイを使用する

一例として、Google チェックアウトでは、説明したような「署名のないカート」を使用できます。もう 1 つのオプションは、Web サービス インターフェースを介して投稿し、正しいエラー チェックなどを行うことです。HTML フォームで注文を送信すると、Google Checkout は販売者に「カートが署名されていない」ことを警告します (後で管理画面で画面)。これは、カート内の情報、特に価格が信頼できないことを意味します。エンドユーザーがクレジットカードを入れたという事実は、基本的に、取引が彼/彼女に問題がないという事実を保証します. したがって、最終的な合計、または未払い額、またはあなたのビジネスが何であるかに到達するために使用された数値を確認するだけで済みます. したがって、あなたがしていることは低レベルでは問題ありません。

Web サービスを使用してサービスに送信し、カートなどに安全に署名する必要がある理由は... 番号が間違っている場合はどうしますか? エンドユーザーに電話して状況を説明しますか? 詐欺を想定できないため、これは少し注意が必要です。ユーザーが実際にあなたを詐欺したくないのにカートが変更される奇妙な理由がたくさんあります.

于 2010-08-24T23:53:32.250 に答える
0

ここで行っているこの「サードパーティ」コンジットアーキテクチャを処理する専用のWebサービスを作成する方がよいと思います。基本的に仲介者とHTMLフォームを再生することは、必要でない限り、私にとって不必要なオーバーヘッドのように感じます.その特定の方法で行うには、Web サービスに移行します。

そうは言っても、それを他のクライアントアプリケーションと同じように扱い、彼らがあなたに与えるものは何でも信用せず、操作を実行する前に必要に応じて情報を検証してクレンジングしてください。

また、ミドルウェア システムにログインするためのサポートを構築または統合することをお勧めします。これにより、問題が発生した場合に、問題を把握し、将来のためにそれらを追跡する方法、バグ修正、サポート コールなどを行うことができます。

おそらく明らかですが、注文番号を確認してください。ユーザーはそこに必要なものを何でも入れることができます。もう一度、データを確認してクレンジングし、本当に奇妙な状況をログに記録します。

于 2010-08-24T18:40:20.220 に答える