paypal 開発者サイトの ipn.php サンプル コードの次の 2 行の目的は何ですか?
$response = curl_exec($request);
$status = curl_getinfo($request, CURLINFO_HTTP_CODE);
と をテストする$response
と$status
、値が返されますが@status
、値は0
あり$response
ません。
上記の 2 行を実行する前のすべてのコードを次に示します。
<?php
// Does this code actually run?
error_log("yes");
// Capture the post
$ipn_post_data = $_POST;
// Choose url
if(array_key_exists('test_ipn', $ipn_post_data) && 1 === (int) $ipn_post_data['test_ipn'])
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
else
$url = 'https://www.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);
Apache エラー ログにa が表示yes
されるので、paypal が IPN データをテスト サーバーに返すと、このファイルが実行されることがわかります。
ただし、$payment_status
ペイパルからの返信を確認すると、常に機能します。つまり、支払いが正常に機能した場合$payment_status
はComplete
、保留中の場合$payment_status
はサーバーへのペイパルの返信Pending
などです。したがって、コードは機能しますが、空白であるため$response
とが使用されている理由がわかりません。$status