現在、Paypal のサンドボックスを使用して、PHP で IPN スクリプトをテストしています。
毎回2回ヒットするように見えることを除いて、うまく機能しているようです。スクリプトが実行されたことを確認できるように、メール アラートを送信するコードを一番上に挿入しました。トランザクションごとにそのアラートを 2 回受け取ります。
スクリプト内のその行を除くすべてをコメントアウトすることもできますが、それでも 2 回表示されるので、問題が IPN スクリプトにあるのではなく、Paypal 側にあると確信できると思います。
これは、Paypal のアカウントの設定が間違っていることを意味するのか、理解していない Paypal の動作の通常の部分があるのか、何が起こっているのかわかりません。ただし、トランザクションごとに IPN スクリプトを 2 回実行するべきではないと確信しています。
IPN スクリプトが 2 回ヒットする理由はありますか? それについて私ができること、またはすべきことはありますか?
アップデート:
ダブルヒットは毎回確認しています。
実際、私が返す 2 つのメールには違いがあります。1 つには
payment_date
変数があり、2 つ目にはsubscr_date
変数があります。subscr_date
変数は、payment_date
.
起こっていることは、支払いに関する通知とサブスクリプションの開始に関する 2 つの通知を受け取っていることだけのように思えますが、それでも奇妙に感じます。IPN スクリプトについての私の理解では、その目的は、支払いの成功に基づいてデータベース (またはその他のもの) で変更を実行できるようにすることです。彼らが毎回私を2回攻撃するつもりなら、私が実行しようとしている変更は2回行われます.これは明らかに理想的なアプローチではないと思います.
また、お客様が購入しているのはサブスクリプションであるため、同じものについて毎回異なる名前で 2 つの通知を受け取っているようです。また、かなり奇妙です。
だから私はまだ疑問に思っています...これは正常ですか?コードが2回実行されないようにするにはどうすればよいですか?