3

実行する IPN スクリプトがあり、しばらくの間動作しています。最近HTTP/1.1 302 Moved Temporarily、応答として を受け取り始めましたが、その理由を特定できません。

以下は、PayPal への投稿と応答の取得に関連するコードです。

$sd = @fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);
if(!$sd) {
    $error = 'Error opening socket connection to PayPal: '.$errstr;
    quit($error, $errno);
}

$req = 'cmd=_notify-validate';
foreach($_POST as $key=>$value) $req .= "&{$key}=".urlencode(stripslashes($value));

// post back to PayPal to validate
$header  = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: ".strlen($req)."\r\n";
$header .= "Host: http://www.paypal.com/\r\n";
$header .= "Connection: close\r\n\r\n";

fputs($sd, $header.$req);
$response = '';
while(!feof($sd)) $response .= fgets($sd, 4096);
fclose($sd);

すべての接続、転送、および応答が機能することに注意してください。エラーが発生しません。しかし、PayPal からの応答は、ドキュメントに記載されているように VERIFIED または INVALID を提供せず、HTTP 302 エラーを提供するという点で正しくありません。

4

2 に答える 2