【发布时间】:2012-11-14 12:41:27
【问题描述】:
我只是在这里测试 Paypal IPN。我已经用沙盒设置了它。我正在向它发送虚假的 IPN 请求,它正在接收 IPN。然后,我让它返回信息以供验证,并将响应写入文本文件,以便我自己检查。 IPN 正常触发,响应正在写入文本文件。
只有一个问题...响应是空白的。
响应应该被接收为“已验证”或“无效”,这是仅有的 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:
我之前一直在使用这个代码,我已经尝试让它工作一个星期,所以这不仅仅是暂时的失败或什么......
大家好。
【问题讨论】:
-
试试这个库:github.com/Quixotix/PHP-PayPal-IPN我在开发的某个时候遇到了同样的问题......我退出了故障排除并开始使用那个很棒的库。
-
这很可能只是一个 https 的东西。你确定 curl_exec() 的返回值了吗?也许是假的?
-
为那个 eldblz 做大事,这让我的生活变得轻松多了。问题是我没有 CA 文件。请参阅我在下面发布的答案。
标签: php curl paypal paypal-ipn