5

だから、これは私にとって新しいものです。私の Paypal IPN はしばらく機能していましたが、今日エラーが発生し始めました。

PayPal で検証するためのポストバック中に (cmd=_notify-validate を追加)、PayPal レスポンダは「いいえ、それは私からのものではありません」と言います。この特定のエントリの唯一の奇妙な点は、(私が思うに) ユーザーがアドレスを指定した方法です。

123 アドレス ストリート
#789

他のすべては正常に見え、IPN ハンドラーは他の通知を非常にうまく処理しています。

このようなものを見た人はいますか?

4

3 に答える 3

4

さて、私は私のエラーを見つけました、そしてはい、それはアドレスの改行に関連しています。

基本的に私はこれをしていました:

foreach ($post_array as $name => $value) {
  $value = urlencode($value);
  $post_string .= $name . '=' . $value . '&';
}
$post_string .= "cmd=_notify-validate";

をに変換する必要がある場合は/n/r/n次のようになります。

foreach ($post_array as $name => $value) {
  $value = urlencode(str_replace("\n", "\r\n", $value));
  $post_string .= $name . '=' . $value . '&';
}
$post_string .= "cmd=_notify-validate";

今PayPalは幸せです。

ルため息。

于 2010-11-22T19:09:27.480 に答える
0

私はこのバグに半日を費やしたばかりなので、もう少し情報があります。

これは、私も使用している CodeIgniter フレームワークによって導入されたバグのようです。CodeIgniter は新しい行を標準化しています https://github.com/EllisLab/CodeIgniter/blob/2.1.4/system/core/Input.php#L707

これは IPN 応答を壊すようで、上記の回答がそれを修正する最善の方法です。

$value = urlencode(str_replace("\n", "\r\n", $value));
于 2014-05-01T03:13:27.963 に答える