1

私は正しく理解できないように見える問題を抱えています。オファーを選んで購入できるウェブサイトを手に入れました。この手順の手順は次のとおりです。

1) 顧客が気に入ったオファー (index.php) を選び、(buy.php) ページに進む

2) (buy.php) ページで、数量と支払い方法を選択します。

3) 顧客が購入を押すと、(payment.php) にリダイレクトされ、そこですべてのデータが再度検証され、データベースへの記録が行われます。Payment.php ページは、ユーザーを選択した支払いゲートウェイ (私の Web サイト外) に処理します。

したがって、問題は $_POST データを buy.php ページから payment.php にスワップでき、支払いページがデータが正しいと見なすことです。

支払いページに表示される価格が $array で許可されている価格の 1 つであるかどうかを確認する前に、問題はありませんでした。しかし今、割引を提供していますが、入ってくる金額が本当に正しいかどうかわかりません。

通常、これはすべて処理されますか? 私は支払いを扱うのが初めてです。

ありがとう。

4

2 に答える 2

2

支払いプロバイダーがこれを行う通常の方法は次のとおりです。

  • POST配列になるフォームがあります。
  • この配列にハッシュを使用して1つのフィールドを追加します。次のように文字列からこのハッシュを作成します。
    • シークレット文字列を定義します(ある種の「ソルト」ですが、異なります)
    • すべてのPOSTキーをアルファベット順に並べ替えます。
    • 次のような文字列を作成します。
    • key = value.secretString.key2 =value2.secretString...など
    • 文字列をハッシュして投稿に送信します。
    • (明らかに、秘密の文字列を送信、表示、または公開しないでください)

これで、POSTを受け取ったら、秘密の文字列を使用して、それに付随するハッシュを再作成し、取得したハッシュと比較できます(もちろん、POSTでもハッシュしないでください)。等しい場合、値は改ざんされていません。そうでない場合は、支払いを拒否する必要があります。

投稿には日付、ユーザー/注文IDなども含めるため、別の注文の投稿に変更することはできません。投稿の値の1つを変更すると、HASHも変更する必要がありますが、ユーザーはそれを作成できないため、これは変更されません。

于 2011-03-11T22:15:14.887 に答える
2

価格を含む製品 ID のデータベース テーブルと、金額 (またはパーセント) を含む割引のテーブルを試してみてください。ユーザーが注文を送信したら、製品の ID とそれぞれの数量を割引の ID とともに支払いスクリプトに送信します。最終的な価格計算を処理します。

于 2011-03-11T22:00:57.833 に答える