ここでPaypalIPNをテストしています。サンドボックスで設定しました。偽のIPNリクエストを送信していて、IPNを受信しています。次に、確認のために情報を返すように取得し、自分でチェックアウトできるようにテキストファイルに応答を書き込んでいます。IPNは正常に起動しており、応答はテキストファイルに書き込まれています。
問題が1つだけあります...応答が空白です。
応答は「VERIFIED」または「INVALID」として受信されることになっています。これらは2つの可能な応答のみです...したがって、何が起こっているのか=Sです。どんな助けでも大歓迎です。
コード全体は以下に掲載されています:
$ipn_post_data = $_POST;
$response = "";
// Choose url
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
// Set up request to PayPal
$request = curl_init();
curl_setopt_array($request, array
(
CURLOPT_URL => $url,
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => http_build_query(array('cmd' => '_notify-validate') + $ipn_post_data),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE,
CURLOPT_SSL_VERIFYPEER => TRUE,
CURLOPT_CAINFO => 'cacert.pem',
));
// Execute request and get response and status code
$response = curl_exec($request);
$status = curl_getinfo($request, CURLINFO_HTTP_CODE);
// Close connection
curl_close($request);
$fh = fopen( "ipntest.txt", 'a+' );
$date = date( "Y-M-j H:i" );
fwrite( $fh, $date . " Response: " . $response . "\n" );
fclose( $fh );
if($status == 200 && $response == 'VERIFIED')
{
// All good! Proceed...
}
else
{
// Not good. Ignore, or log for investigation...
}
テキストファイルの出力:
2012-Nov-26 23:24 Response:
2012-Nov-26 23:25 Response:
私は以前このコードを使用していましたが、1週間機能させようとしていたので、一時的な障害などではありません...
みんな乾杯。