Я установил соединение API на своем локальном компьютере с демонстрацией oroCRM, которое я также установил в локальной среде. Проверено и все работает. Я отправил свой код на сервер, и он должен сделать то же самое, но подключиться к oroCRM, установленному на другом сервере, на каком-то хосте sub.domain.com. В этой ситуации я получаю сообщение об ошибке: Не удалось разрешить хост аутентификации
WSSE:
$userName = 'your username';
$userApiKey = 'your apiKey';
$nonce = base64_encode(substr(md5(uniqid()), 0, 16));
$created = date('c');
$digest = base64_encode(sha1(base64_decode($nonce) . $created . $userApiKey, true));
$wsseHeader = "Authorization: WSSE profile=\"UsernameToken\"\n";
$wsseHeader.= sprintf(
'X-WSSE: UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"',
$userName,
$digest,
$nonce,
$created
);
CURL:
$headers = $oroWsse->getHeaders();
$headers[] = "Content-Type: application/vnd.api+json";
$headers[] = "Accept: application/vnd.api+json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'something.something.com/api/contacts');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$result = curl_exec($ch);
$error = curl_error($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$returnData = array(
'code' => $httpcode,
'error' => $error,
'result' => $result
);
Я не получаю http-код, я получаю 0.
Ребята, вы не представляете, что может go не так в этой ситуации? Кстати, хост доступен, поэтому я использую oroCRM в этом домене, он правильный. Спасибо!