1

サイトに Authorize.Net DPM (Direct Post Method) 支払いゲートウェイを設定しています。根本的に理解できていないことがあり、ピースを結ぶことができません。

DPM の基本的な操作は、加盟店サイト (私のサイト) がクレジット カード フォームを提供することです。そのフォームは Authorize.Net に直接投稿されます。CC およびその他の投稿された詳細が承認されると、Authorize.Net は結果を私のサイトに投稿します。これをコールバック投稿と呼びます。さて、ここが私にとって物事があまり結びつかないところです。

コールバック POST は Authorize.Net から直接送信され、ユーザーとセッションを共有しないため、POST ハンドラーにはポストされた情報のみが含まれます。金額 (x_amount) と Authorize.Net によって生成されたトランザクション ID (x_trans_id) は、事前に合意されたシークレットと Authorize.Net アカウントのログイン ID でハッシュされます。これは、そのコールバックを提供するシステムの信頼性を確認するために使用できます。私が言えることは、送信者が事前に合意された秘密を知っていることを確認しているだけです。

したがって、コールバックで信頼できる唯一のデータは、金額とゲートウェイが生成したトランザクション ID です (これは、その ID が私のサイトで利用できる最初のポイントであるため、その値は無意味です)。

私が見ることができないのは、承認の結果をエンドユーザーが支払っているトランザクションに結び付ける方法です。POST には、変更されていないと信頼できる他のデータはなく、販売者が生成した ID (x_fp_sequence と x_timestamp の組み合わせ) は渡されません。

コールバックでできることを期待しているのは、カード承認の結果を取得し、結果が信頼できることを確認し、ユーザーがフォームを承認する前にデータベースに保存されている保留中のトランザクションに結び付けることです。 .Net、トランザクションが完了として自信を持ってマークできるようにします。しかし、どのように?


私は SagePay Server ゲートウェイを使用しましたが、これにもコールバックがあります。ただし、コールバックには、結果を処理中のトランザクションに結び付けるために必要なすべてのフィールドが含まれており (マーチャントが生成したトランザクション ID が含まれます)、重要なことに、信頼する必要があるすべての POSTed フィールドのハッシュを提供して、チェックできるようにします。 .

それで、私は何を見落としていますか?問題の説明に役立つ場合は、サンプル データを提供できます。私は OmniPay を使用しており、このゲートウェイのドライバーを拡張しています。

4

0 に答える 0