CRM Online SOAP Endpoint


CRM Online SOAP Endpoint

我有一个要求,需要将CRM Online连接到Drupal网站。 由于我没有编写自定义Web服务的好处,所以我使用了CRM SOAP接口和PHP。

几个月来一直工作正常,但是在上周,这已经停止工作了。 我可以检索身份验证所需的令牌,但是我发送的任何请求都会导致空白响应。

有没有其他人遇到过这个问题,或者可以指出我最好的方向来弄清楚发生了什么。

我已经找到了答案。

以下是我的代码快照

$cURLHandle = curl_init();
curl_setopt($cURLHandle, CURLOPT_URL, $soapUrl);
curl_setopt($cURLHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cURLHandle, CURLOPT_TIMEOUT, 60);
curl_setopt($cURLHandle, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($cURLHandle, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($cURLHandle, CURLOPT_SSLVERSION, 3);
curl_setopt($cURLHandle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($cURLHandle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($cURLHandle, CURLOPT_POST, 1);
curl_setopt($cURLHandle, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($cURLHandle);
curl_close($cURLHandle);

我需要在这里修复两件事。 首先,当这里出现问题时,我什么也没做,我真的应该更换这条线

$response = curl_exec($cURLHandle);

有了这个

if( ! $response = curl_exec($cURLHandle)) 
{ 
    trigger_error(curl_error($cURLHandle)); 
}

其次,似乎正在使用的SSL版本已被修改。 通过更改此行

curl_setopt($cURLHandle, CURLOPT_SSLVERSION, 3);

到版本 4 而不是 3,它开始工作! 因此,我只是完全注释掉了这一行,而不是这个。

希望这对其他人有所帮助!