Web Payments 標準と HTML 変数を使用して、Web サイトを Paypal に統合することをテストしています。
IPN 通知を処理する単純な PHP スクリプトを作成しました。
Paypal のドキュメントによると、受信したデータを Paypal に pingすると、Paypal サーバーは単純な ' VERIFIED ' または ' INVALID ' 応答を返します。
私のハンドラーでは、これら 2 つのキーワードの大文字と小文字を区別する文字列比較を行っています。これらの既知のキーワードのいずれかが見つからない場合は、エラーとして扱われます。
<?php
$fp = fsockopen ($socket_url, 80, $errno, $errstr, 10);
if (!$fp){
// SOCKET ERROR
return false;
}
else {
fputs ($fp, $header . $req);
$is_ok = false;
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp("VERIFIED",$this->ipn_response)==0) {
//do something ...
}
// if the IPN POST was 'INVALID'
else if (strcmp ($res, "INVALID") == 0) {
fclose ($fp);
return false;
}
else {
echo "Unknown response from Paypal: $res";
fclose ($fp);
return false;
}
}
fclose ($fp);
return true;
}
?>
私のエラー メッセージは、Paypal から「HTTP/1.1 200 OK」応答を受信していることを示しています。
Paypal からの不明な応答: 「HTTP/1.1 200 OK」
PayPal API が変更されましたか、それとも何か間違っていますか?