PayPalからリクエストを受け取るPayPalリスナーがいますHTTP POST
(またはPayPalのドキュメントに送信内容が示されているようです)。リスナーはPayPalによる検証のために情報を送り返し、情報が検証されるとデータベーストランザクションを実行します。これは通常のPayPalIPNプロセスであり、検証部分は正常に機能します。
PayPalから取得する配列の値の1つはPOST
、トランザクション番号を追跡するために通過するものです。だから私は次のような呼び出しを行います:(実際のコードではありません;私はSQLインジェクションを完全に知っています)
UPDATE transactions SET status='paid' WHERE id=$_POST['invoice']
問題:リスナーにいくつかの入力を含むフォームをポイントして入力を偽造すると、すべてが正常に機能しますが、PayPalから実際のPOST配列を取得すると、データベースが実行されません。実際のPayPalデータを取得するときに変数が設定されていることを知ってい$_POST['invoice']
ます。それをテストしましたが、84などの有効な値があるため、トランザクションが実行されない理由がわかりません。トランザクションの上下の行は両方とも実行されます。
実際のコードを投稿する必要があるかもしれませんが、PayPalからリクエストを受け取ったときにトランザクションを実行しないようにPHPを構成できる可能性はありますか?私が言ったように、PayPalはHTTP POST
リクエストを送信しているので、私の偽のフォームと見分けがつかないはずですが、何かが間違っています。