0

Paypal からの IPN 応答を確認したいのですが、何らかの理由で応答を読み取ることができません。

これは私が使用しようとしているコードです:

$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

if(!$fp)die();

fputs($fp, $header . $postback);

$res=stream_get_contents($fp); #this triggers 500 error

接続を開きますfputsが、最後の行でハングアップし、かなりの量の待機後に戻ります500 error

何が問題なのですか?

注:行にコメントを付けてもfputs、まったく同じことが起こります。

ヘッダー:

$postback='cmd=_notify-validate&'.http_build_query($_POST);

// build the header string to post back to PayPal system to validate
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($postback) . "\r\n\r\n";

編集

curl を使用しようとしましたが、常に空の応答が返されます。

$ch = curl_init( 'https://www.sandbox.paypal.com/cgi-bin/webscr' );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postback);
$strCurlResult = curl_exec($ch);
curl_close( $ch );
echo $strCurlResult;

上記のコードは何も出力しません。

4

0 に答える 0