0

IPN 経由で PayPal と通信するショッピング カートを設定中です。PHP と WordPress のシンプルな Paypal ショッピング カートを使用して、Micha Carrick の IPN を使用しています。数週間後、自分のニーズに対応するためにカートを修正しましたが、最後の不正チェックの実装に問題があります。3 番目の不正チェックは、支払われた金額が購入金額と等しいことを確認することです。私のストアには多数のアイテムが含まれているため、ミカ・キャリックが彼の例で行っているようにセット番号を使用することはできません。答えは PHP セッション変数を使用することだと思っていましたが、うまくいきませんでした。ショッピングカート内:

  $_SESSION['cart_total'] = $total+$postage_cost;

続いて、PayPal から返された支払額である mc_gross 変数を、ipn ファイル内の $_SESSION['cart_total'] 変数と比較しようとしました。残念ながら、これは成功していません。エラーチェックのためにセッション変数の値をipnエラーログに出力したところ、PayPalチェックアウトを完了するためにページを離れた結果​​、セッション変数が設定されていないか、少なくとも転送されていないようです。2 番目のセッション変数を出力しようとしましたが、これは正しく設定され、さまざまなメニューで使用されていることがわかっていますが、ipn ファイルにも値がありません。

この不正チェックを完了する方法について何か提案はありますか?

4

1 に答える 1

0

IPN リスナーは$_SESSION、ユーザーの変数にアクセスできません。セッションはユーザーとサイトの間で行われ、ペイパルには渡されません。Paypal に渡すことができる唯一の変数は、「カスタム」変数です。そこにいくつかの情報(注文したアイテム、合計など)を入れることができ、その「カスタム」変数がIPNリスナーに渡され、それを検証できます。

于 2013-01-31T02:31:48.577 に答える