1

我正在尝试使用 Liveperson REST API,我使用以下 php 代码:

$authorization = "LivePerson appKey=MY_APP_KEY";
$accept = "application/xml";
$contentType = "application/xml";


$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "C:/dev/wamp/exported.crt");

curl_setopt($ch, CURLOPT_URL, "https://dev.liveperson.net/api/account/1234?v=1");
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Authorization: '.$authorization,'Accept: '.$accept,'Content-Type: '.$contentType));
curl_exec($ch);
$response = curl_getinfo( $ch );
var_export($response);
curl_close($ch);

请求失败,我已经尝试了以下

任何帮助将不胜感激!

4

2 回答 2

2

尝试getcwd()从代码中的第 9 行删除。您使用的是相对于您当前工作目录的完整路径“C:/dev/wamp/exported.crt”,这是错误的。:)

希望这能解决它

于 2012-05-01T14:45:45.590 回答
0

从您的请求中删除 CA 证书:

# curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "C:/dev/wamp/exported.crt");

实际上,您必须在此处定义证书颁发机构(在您的情况下为 VeriSign)的公钥/证书文件。Liveperson的证书肯定是错的。

检查证书是否对您的问题负责:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

此设置当然不是您的项目的建议,但它可能有助于识别问题。如果认证过程以某种方式负责,您应该成功连接到 Liveperson 的 API 主机。

如果认证过程确实负责,请尝试下载 [VeriSign 的公共根证书] 并将其用作 CAINFO:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_CAINFO, "C:/dev/wamp/verisign_root.crt");
于 2012-05-01T14:50:12.183 回答