2

PayPal IPN リスナーを改善しています。仕様を読みましたが、未解決の質問がまだいくつかあります。ご存知のように、通知を受け取った場合は、別のチャネルで PayPal に接続し、受信したデータを送信する必要があります。PayPal は VERIFIED または INVALID で応答します。場合によっては、PayPal は、当社からの回答を受け取るまで通知を再送信します。また、PayPal には「IPN 履歴」というデバッグ ページがあります。

INVALID を受け取ったことが少なくとも 1 回あり、「IPN 履歴」には通常のステータス「送信済み」が表示されました。

質問 1: PayPal は、メッセージが正しく送信されたかどうかを判断するために、2 番目のチャネルで接続しているかどうかを確認しないというのは正しいですか?

Q2: PayPal は、「IPN 履歴」に表示するステータスを決定するために、当社から受け取った http ステータス ヘッダー (「200 OK」など) のみを参照していると思います。これは正しいです?

Q3: また、PayPal は HTTP ステータス ヘッダーだけを見て、メッセージを再送信する必要があるかどうかを判断していると思います。あれは正しいですか?

私が受け取った無効な PayPal 支払いは、通常の支払いとして PayPal に表示されます。しかし、その後、追加の通知はありませんでした。

Q4: この動作は PayPal の内部の問題であると思います。これを行う適切な方法は、PayPal にエラーが発生したことを伝え、5 分後に別の通知を送信することです。あれは正しいですか?

Q5: その場合、INVALID を受信した場合、後で PayPal が通知を再送信するために、どの HTTP ステータス ヘッダーを PayPal に返送する必要がありますか?

ありがとう!

4

1 に答える 1

4

A1) 正解です。彼らは単にデータをスクリプトに POST し、サーバーから 200 OK が返された場合、検証のために POST を返すかどうかに関係なく、取引が完了したと見なします。

A2) 正解です。

A3) 正解です。支払いが本当に正当な PayPal 支払いであった場合、検証のために支払いを POST した方法に何か問題があるに違いありません。最初に送信されたものとまったく同じ形式である必要があります。

A4) POST バック データが同じようにフォーマットされている限り、無効にはなりません。しっかりとしたスクリプトをまとめれば、200 以外の特定のメッセージを PayPal に送り返して再試行する必要はありません。すべてが正しく構成されていれば、検証され、スクリプトは 200 OK で完了します。スクリプトに何か問題がある場合、無効になるか (ただし、200 OK を返すため、別のスクリプトを取得できません)、または 200 以外の値が返される可能性があります。この場合、後でデータが再送信されます。

A5) 200 以外のものを送り返すと再試行されますが、再試行中に多数の失敗が発生した場合は、遅延キューに入れられ、IPN をすぐに取得できません。いつものように、私はそれをお勧めしません。IPN スクリプトからの 200 以外の結果は避けたいと考えています。

于 2013-01-21T18:28:01.083 に答える