我正在开发一个WordPress插件,供客户与Rightmove的Realtime Data API进行交互。我已经从Rightmove发送了示例PHP代码来使用。为了与Rightmove的API进行交互,您需要生成并从Rightmove获得安全证书。我已被发送并拥有密码。在执行curl之前,代码使用证书上的stat()函数。下面是代码(出于显而易见的原因划掉密码)。
$url = 'https://adfapi.adftest.rightmove.com/';
$ch = curl_init();
$cert = plugins_url("safetech-righmove-realtime-data-feed-realhomes/safetech.pem");
if (!stat($cert)){
die('No cert');
}
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_VERBOSE => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSLVERSION => 5,
CURLOPT_SSLCERT => $cert,
CURLOPT_SSLCERTPASSWD => 'xxxxxxxx'
));
if(!curl_exec($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);
如果stat失败,它会停止代码并打印" No cert"。这正是发生了什么。我已将证书上传到plugins文件夹,可以通过手动转到浏览器中的URL来访问它。所以文件显然存在。
如果我注释掉if语句并只执行curl,Rightmove会返回一个身份验证错误,暗示证书没有被使用?我尝试过使用file_exists()函数,但仍然返回" No cert"错误。
.pem文件具有读取权限。
知道是什么导致了这个问题吗?我几个小时都在尝试各种各样的事情而没有结果。